此页显示了在应用程序源代码分析过程中主机分析器生成的不同消息。消息用其标识符(在分析日志文件中引用)、描述和可能的修正进行记录。以下信息将帮助您验证分析。
Note regarding unresolved objects
未解析对象通常意味着存在直接或间接的丢失组件。区分有关联源文件的对象和没有源文件的其他对象很重要。你可以向应用程序团队询问第一个对象,但不能询问第二个对象。
例如,一个程序、一个副本、一次屏幕映射、一个JCL作业或一个JCL程序都有一个相关的源文件。如果它们涉及到一条指示它们未解析的消息,那么您可以立即假设它们丢失了。相反,数据结构、段落和DD名称没有源文件。相反,它们是在程序或副本中定义的。
为什么分析器找不到组件?因为它还没有被交付,或者因为分析器没有关于其位置的任何信息(源文件目录或工作文件夹)。在第一种情况下,您必须要求应用程序团队交付它。您将在分析日志的末尾找到丢失组件的完整列表。在第二种情况下,必须修改分析单元的参数。
您还可以使用CAST Enlighten工具查看丢失的组件。未知对象被分类在“未知”文件夹中,你可以通过对象浏览器轻易找到它们。
有应用程序和JCL作业调用的技术/系统/实用程序。主机分析器可生成关于它们的“未解析对象”消息。它们的名字通常以"DFH"、"DSN"、"IKJ"、"DFS" 或"IEB"前缀开始。"DFH" 程序专用于CICS,"DSN" 和"IKJ"程序通常专用于DB2,而"DFS"程序专用于IMS。JCL作业还可以调用如 IEB系列、IEF系列或 IDCAMS、 FILE-AID等实用程序……不要请求应用程序团队交付它们,因为它们没有相应的源文件。如果它们用于在JCL作业中运行另一个程序,那么应该更改分析参数。 否则,可以忽略这些消息。
标识符 | Mainframe.01 |
消息 | 已找到潜在递归副本'<COPYBOOK_NAME>'包含物。 |
严重程度 | 警告 |
解释 | COBOL分析器检测到源代码中包含潜在的递归副本(COPY指令)。意思是,副本A指的是副本B,而副本B指的是副本A。 |
用户操作 | 检查递归引用中涉及的副本是否是预期源文件。如果不是,则用合适的文件替换它们或删除创建递归引用的文件。 |
标识符 | Mainframe.02 |
消息 | 无法解析副本<COPYBOOK_NAME>。 |
严重程度 | 警告 |
解释 | 副本在源代码中被引用(COPY指令)但分析器无法找到它。当源文件未交付或分析器无法访问源文件时,就可能发生这种情况。 |
用户操作 | 在CAST Enlighten技术浏览器Unknown\Copybooks文件夹的对象列表中选择对象 <COPYBOOK_NAME>,以查看其引用位置。如果这是一个特定于应用程序的副本,则建议向应用程序团队请求。这可能会影响引用解析和数据组件周围可能需要的任何诊断规则。 您将在分析日志的末尾找到丢失源元素的完整列表。 |
标识符 | Mainframe.03 |
消息 | <OBJECT_TYPE> '<OBJECT_NAME>'解析不明。 |
严重程度 | 警告 |
解释 | 分析器找到一个源文件或一个名称中包含 '[', ']', '(', or ')'等字符的对象。删除这些字符会导致名称重复。当分析选项"Platform: IBM z/OS"被设置为真,且源代码来自另一个允许使用长名称的平台 ,也可生成此条消息。在这种情况下,名称被截断为8个字符,导致名称重复。名称重复会阻止解析引用。 |
用户操作 | 检查源文件和分析选项。 |
标识符 | Mainframe.04 |
消息 | 可能无法正确分析图片<PICTURE>。 |
严重程度 | 警告 |
解释 | COBOL分析器无法正确分析变量图片。这会影响与数据处理相关的质量规则。 |
用户操作 | 检查包含变量声明的源代码。如果图片正确,请联系CAST 支持。 |
标识符 | Mainframe.05 |
消息 | 无法解析包含文件 '<INCLUDE_NAME>'。 |
严重程度 | 警告 |
解释 | 在源代码中引用了(INCLUDE指令)副本,但分析器却无法找到副本。当源文件未交付或分析器无法访问源文件时,会出现这种情况。 |
用户操作 | 在CAST Enlighten技术浏览器 Unknown\Copybooks文件夹的对象列表中选择对象<INCLUDE_NAME>,查看其引用位置。如果这是一个特定于应用程序的副本,则建议向应用程序团队请求。这可能会影响引用解析和数据组件周围可能需要的任何质量规则。 您将在分析日志的末尾找到丢失源元素的完整列表。 |
标识符 | Mainframe.06 |
消息 | 找到未闭合的字符串。 |
严重程度 | 警告 |
解释 | 在源代码中找到了字母数字文本,但COBOL分析器无法到达字符串的末尾。 |
用户操作 | 打开源文件。查看它是否包含COBOL代码。 |
标识符 | Mainframe.07 |
消息 | 文件 '<FILE_NAME>'包含被 '#'替换的无效'0' 字符。 |
严重程度 | 信息 |
解释 | 在源代码中找到一个二进制字符,并用文本字符替换。 |
用户操作 | 没有要执行的操作。二进制字符已自动替换为ASCII字符。 |
标识符 | Mainframe.08 |
消息 | 在指定位置找不到高级用户配置文件。因此,无法分析JCL文件。请检查分析选项: |
严重程度 | 错误 |
解释 | 在分析设置中指定的文件夹中找不到"AdvancedJCL.xml"文件。这会阻止分析器解析JCL源文件。 |
用户操作 | 查看主机技术“平台设置”,指定AdvancedJCL.xml文件的正确位置,并重新启动分析。 |
标识符 | Mainframe.09 |
消息 | 无法解析<OBJECT_TYPE> '<OBJECT_NAME>'。 |
严重程度 | 警告 |
解释 | 分析器遇到对源代码元素的引用(例如:COBOL程序、JCL程序、CICS映射等),但在分析文件夹中找不到该引用。 |
用户操作 | 在CAST Enlighten技术浏览器Unknown\<OBJECT_TYPE>文件夹的对象列表中选择对象<OBJECT_NAME>,查看其引用位置。如果这是一个特定于应用程序的元素,则建议向应用程序团队索取它。它可以影响任何质量规则。 如果对象是一个程序,则可以通过它的PROGRAM-ID名称(这是最常见的情况)来调用它,而该名称与其源文件名称不同。在这种情况下,必须使用GREP工具来搜索它。 如果消息是关于一个DD名称的引用,则检查是否有一个调用程序和使用相同DD名称定义DD卡的JCL步骤。如果没有这种JCL元素,且有一个支持的批部分,则向应用程序团队请求它。请注意,如果为其发出消息的程序是子程序,则不支持此类链接的解析,您可以忽略该消息。如果程序是一个主批处理程序,并且有一个JCL步骤调用它,那么请联系CAST支持。 您将在分析日志的末尾找到丢失源元素的完整列表。 |
标识符 | Mainframe.10 |
消息 | 找到潜在注释。 |
严重程度 | 警告 |
解释 | 分析器在COBOL源代码中发现潜在的注释行。这可能是由于指标区域列不正确而导致的,且在预期位置未找到'*' 字符。 |
用户操作 | 查源代码和“指标区列”分析选项。您还可以检查相应的代码行是否来自一个副本。在这种情况下,更改副本行的缩进,使其与分析选项中指定的指示符域相匹配。 |
标识符 | Mainframe.11 |
消息 | 在DD卡中找不到DSN子句的引用。 |
严重程度 | 警告 |
解释 | JCL分析器找到一个DD卡,它参考了另一DD卡(其名称包含对应于同一作业或外部程序中的另一个步骤的前缀),但无法找到另一DD卡。 |
用户操作 | 检查包含引用的DD卡的JCL代码是否已交付,并且是否属于分析范围的一部分。这可能是JCL外部程序的情况。 |
标识符 | Mainframe.12 |
消息 | 分析 <FILE_TYPE> <OBJECT_NAME> (<FILE_NO>/<FILE_NB>。 |
严重程度 | 信息 |
解释 | 主机分析器开始分析文件。它还显示了文件编号<FILE_NO>与要分析的<FILE_TYPE>类型文件<FILE_NB>总数的比较。 |
用户操作 | 没有要做的。 |
标识符 | Mainframe.13 |
消息 | 无效的选项值: <ANALYSIS_OPTION>。 |
严重程度 | 错误 |
解释 | 未正确设置分析选项。这将阻止执行分析。 |
用户操作 | 检查分析设置并重新启动分析。 |
标识符 | Mainframe.14 |
消息 | 程序和PSB'<PSB_NAME>'之间可能不匹配。未找到PCB编号<NUMBER>。 |
严重程度 | 警告 |
解释 | PSB和COBOL程序中的PCB数目是不同的。这可能导致COBOL代码和IMS PCB之间的错误链接。 |
用户操作 | 检查PSB中的PCB列表以及PROCEDURE部分和DLITCBL条目或COBOL程序中链接部分指定的参数。两者必须具备顺序相同的同数量的PCB。 |
标识符 | Mainframe.15 |
消息 | 目前无法分析 <LANGUAGE_ELEMENT> 。 |
严重程度 | 信息 |
解释 | COBOL分析器不支持面向对象的COBOL编程语言版本,并且不会从源代码创建任何对象。 |
用户操作 | 从源文件文件夹中删除相应的源文件。 |
标识符 | Mainframe.16 |
消息 | 已找到潜在的递归INCLUDE指令 '<INCLUDE_NAME>'内含物。 |
严重程度 | 警告 |
解释 | COBOL分析器检测到源代码中包含潜在的递归副本(INCLUDE指令)。意思是,副本A指的是副本B,而副本B指的是副本A。 |
用户操作 | 检查递归引用中涉及的副本是否是预期源文件。如果不是,则用合适的文件替换它们或删除创建递归引用的文件。 |