发行说明、已知问题、局限性和影响单一服务项目的变通方法

IMS SOAP 网关单一服务项目中的多段消息支持

Enterprise Service Tools IMSTM SOAP 网关单一服务项目包括对多段消息传递程序(MPP)的支持。通常在具有以下所有必备软件时,您将能够部署 Rational® Developer for System zTM 7.5 中生成的工件:
  • IMS SOAP Gateway V10.2
  • IMS V10R1 IMS Connect
  • PTF for IMS V10R1 IMS Connect APAR PK69366
  • PTFs for Enterprise COBOL for z/OS® APAR PK65058

IBM Rational Developer for System z 的“COBOL 编译型 XML 转换”已增强了错误检查功能,它可能会发出已更新的消息号(IGZ0280S 到 IGZ0298S)以及新的消息号(IGZ0299S 到 IGZ0303S)

问题描述:对于自底向上方案和中间会合方案中的 CICS®、IMS 和“批处理”运行时,IBM® Rational Developer for System z 的 Enterprise Service Tools 编译型 XML 转换可能会终止并且返回码为 280 到 303。转换器返回的 Language Environment® 消息已过时,或者在系统日志或控制台中显示“未能获取异常消息”。

解决方案:Rational Developer for System z 的“COBOL 编译型 XML 转换”已增强了错误检查功能,它可能会发出已更新的消息号(IGZ0280S 到 IGZ0298S)以及新的消息号(IGZ0299S 到 IGZ0303S)。请应用 APAR PK65058 的 PTF。

Web Services for CICS 方案中的其他映射支持

Web Services for CICS 方案具有对其他映射级别和运行时级别(2.2)的支持。要使用在此级别生成的工件,您需要应用了 APAR PK69738 的 CICS TS 3.2。

关于 PL/I 至 XML 类型派生的信息

从 PL/I 派生的 XML 类型主题中,表 6(PL/I 至 XML 类型)是错误的,应该忽略该表。

副本导致 Enterprise Service Tools 向导挂起

问题:当未解析必需的副本时,Enterprise Service Tools 向导将挂起。当 COBOL 导入器首选项页中的错误消息语言设置为 en_US 之外的任何语言时,将发生此错误。

解决方案:通过选择以下内容来更改错误消息语言

窗口 -> 首选项 -> 导入器 -> COBOL ->“更多 COBOL 选项”选项卡

中间会合导入源文件

问题:在中间会合式开发方案中,不支持通过导入源文件向导中的文件系统... 进行导入。

变通方法:将所有必需的文件都复制到一个常规项目中,然后通过选择导入源文件向导中的工作空间... 导入这些文件。

旧 WSDL/XSD 文件和新 WSDL/XSD 文件的自底向上冲突

问题:在自底向上式开发方案中,将生成的 WSDL/XSD 的旧版本与新生成的转换器配合使用可能会在运行时导致错误。例如,可能出现以下错误消息:IGZ0282S 在程序“PGMNAME”中无法完成 XML 至数据结构的转换,因为转换器无法识别 XML 文档中的元素名称。

解决方案:在自底向上开发方案中,生成 WSDL 文件(或 XSD 文件)和转换器后,您应该只将 WSDL 文件与和它同时生成的转换器配合使用。

COBOL COMP-3(PACKED DECIMAL)类型的 XML 模式数据类型映射

问题:在联机帮助主题“从 COBOL 派生的 XML 类型”中,包含 COMP-3(PACKED DECIMAL)的那一行应该为以下内容:
表 1. COBOL 至 XML 类型派生
COBOL 类型 COBOLUsageValue+ COBOL 模型类型属性 相应的 XSD 类型
packed-decimal 和 comp-3 -> packedDecimal packedDecimal
如果指定了小数点:

<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
   <xsd:minInclusive value="xx.x"/>
   <xsd:maxInclusive value="yy.y"/>
</xsd:restriction>
</xsd:simpleType>

或者,如果未指定小数点:

<xsd:simpleType>
   <xsd:restriction base="xsd:short">
     <xsd:minInclusive value="xxx"/>
     <xsd:maxInclusive value="yyy"/>
   </xsd:restriction>
</xsd:simpleType>

导入远程(z/OS Unix)WSDL 文件(它包含、导入或细分一个模式)的自顶向下/中间会合方案不受支持

问题:在 Web Services for CICS 单一服务项目中,如果正在使用 WSDL 文件(最初从远程位置导入,包含、导入或细分模式)运行“创建新的服务实现”(自顶向下)方案或“映射至现有服务接口”(中间会合)方案,那么此操作会失败并返回错误。

变通方法:将所有必需的文件复制到工作站或复制到工作空间中的一个常规项目,并使用 RMB -> 导入 -> 源文件将本地 WSDL 文件导入“Web Services for CICS 单一服务项目”,然后尝试自顶向下方案。

单一服务向导生成的 COBOL 转换例程仅在 z/OS 中运行

尽管工作站 COBOL 编译器在编译和运行时都支持 XML PARSE 语句,但单一服务向导生成的 COBOL 程序设计为只能在 z/OS 环境中运行。

XML 元素嵌套深度

问题:XML 至语言结构的转换器返回以下异常消息:

IGZ0291S 由于超过了 XML 元素最大嵌套深度,无法在程序
program-name 中完成 XML 至数据结构的转换。在具有字符内容
character-content 的元素 element-name 处发生错误。

变通方法:XML 至语言结构的转换器无法处理特定 XML 元素的嵌套深度。虽然允许嵌套级别超出原始 COBOL 结构的嵌套级别,但可以超出此限制。如果请求 XML 文档包含模式中不存在的元素,那么当该元素的嵌套级别太深时,它就会导致这种情况发生。

COBOL 数据结构中的 FILLER 项

问题:因为父项会随其基本项一起过滤掉,所以在数据结构选择页或映射会话编辑器中无法选择未命名的组及其基本项。

变通方法:编辑 COBOL 数据结构并对需要进行转换的组和/或基本数据项命名。为 COBOL 组命名会使其非填充符基本项成为可供选择的项。

OPT 编译器选项冲突

问题:如果在 JCL 中指定 TEST 选项作为编译选项,那么驱动程序和转换器程序中生成的 PROCESS 语句中的 OPT 编译器选项将与该选项冲突。

变通方法:如果要对生成的 XML 转换器程序进行调试,请在 Web service 向导中“生成选项”页面上的“指定与编译器相关的首选项”组中取消选中“优化”复选框。

包含 OCCURS DEPENDING ON 项的 COBOL 组的自动匹配映射

问题:如果 COBOL 数据项是 ODO 项或包含 ODO 项,那么除非在尝试执行“匹配映射”操作前手工映射 ODO 对象,否则无法对兼容的 XML 结构执行“匹配映射”操作。

变通方法:在尝试执行“匹配映射”操作之前,根据映射规则手工映射 ODO 对象。(在 XML 文档中,映射至 COBOL ODO 对象项的元素必须在映射至相应 COBOL ODO 主题的 XML 元素之前出现。)

“启用 XML”向导中的某些文本输入字段区分大小写

问题:在 Windows® 上,Eclipse 中的文件夹和文件名条目区分大小写。

变通方法:确保输入的文件夹和文件名具有一致性。例如,如果文件夹名称在工作台中显示为 MyFolder,那么必须在请求文件夹名称的输入字段中输入 MyFolder。如果输入 myfolder,那么工具可能会将此名称标记为无效或不存在的文件夹名称。

无效指针导致无限循环

问题:向 XML 转换器或驱动程序提供非空的无效指针会导致无限循环。

变通方法:XML 转换器尝试检测并报告调用程序传递的空指针。对于非空的无效指针,XML 转换器将可能遇到并返回保护异常(SOC4)。

对具有 SOAP for CICS 和 Web Services for CICS 的 DBCS 数据成员的支持

对 Enterprise Service Tools 单一服务项目中的 DBCS 数据项的支持要求请求和响应 XML 文档以 UTF-16 或 UTF-8 编码。如果 Web service 的目标运行时为 SOAP for CICS,请配置该功能部件以与 XML 转换器驱动程序交换以 UTF-8 或 UTF-16 编码的 XML。缺省情况下,Web Services for CICS 运行时将与客户机交换以 UTF-8 编码的 XML,而 XML 转换器驱动程序与 CICS 交换以 UTF-16 编码的 XML;当需要 UNICODE 时,UTF-16 是当前适用于 XML 转换器的最有效选择。对于每种运行时,可能需要使用转换映像配置 UNICODE 的 z/OS 支持,以支持 UNICODE 和 DBCS 主机代码页之间的转换。

“生成 -> XML 文件...”菜单项不遵循 XSD 模式限制

问题:生成 -> XML 文件...”菜单项不遵循 XSD 模式中的限制。对 Enterprise Service Tools 创建的 XSD 执行“生成 XML 文件”操作可导致生成无效的 XML 文件。

变通方法:编辑生成的 XML 文件,以使标记内容符合在 XSD 模式中指定的限制。

XML 和 Web Service 批处理器:配置 XML 中的无效条目可能会在批处理过程中导致空指针异常

问题:选项 XML 文件(Container.xml、PlatformProperties.xml 和 ServicesSpecification.xml)中的无效条目可能导致执行批处理器时出现空指针异常。

变通方法:遵循正确指定选项 XML 文件中条目的格式。

XML 和 Web Service 批处理器:为输入语言文件位置指定目录

可在“importDirectory”属性中将 COBOL 输入文件的位置指定为绝对路径,以驱动器说明开头(例如,C:\mypath\test)。

相反,如果希望指定相对路径(例如,为了可以在不更改 xsebatch 配置文件中的任何文件位置的情况下重新分配配置文件和 COBOL 源代码的位置),请尝试执行以下步骤:
  1. 省略服务说明文件内 InputOutputMessage、InputMessage 或 OutputMessage 元素中的 importDirectory 属性。
  2. 在 importFile 属性值中加上相对路径名。(例如,importFile="cobol_src/DFH0ACDT.cbl" 或 importFile="../cobol_src/DFH0ACDT.cbl"。)这些路径将相对于调用 xsebatch 的位置。
  3. 如果使用“..”退回到父目录,请确保 importFile 属性值中没有多个“..”。

例如,假定您有一个项目以及以下目录:

C:\workspace\account_details
- 主项目
C:\workspace\account_details\cobol_src
- 具有要导入的 COBOL 源文件的子目录
C:\workspace\account_details\xsebatch_config
- 具有 xsebatch 的 XML 配置文件的子目录

对于 cobol_src 目录中名为 DFH0ACTD.cbl 的 COBOL 源文件,可以使用以下 InputOutputMessage 元素:

<InputOutputMessage importFile="../cobol_src/DFH0ACTD.cbl"></InputOutputMessage>

或者,可以将 COBOL 源文件放置在调用 xsebatch 的同一目录中。

XML 和 Web Service 批处理器:指定混合大小写的数据名

即使 COBOL 数据名不区分大小写,仍然需要在说明 xml 文件中指定确切的大小写。例如,如果在 COBOL 数据源中,数据名为 MY-Data,那么在服务说明 xml 中必须将 nativeTypeName 属性设置为 nativeTypeid="MY-Data"。如果未指定确切的大小写,那么将找不到该数据名,并且在缺省情况下将使用第一个可用级别 01 数据名。

对象征常量 LOW-VALUES 和 HIGH-VALUES 的限制

象征常量 LOW-VALUE(S) 和 HIGH-VALUE(S) 可以存在于单一服务向导内使用的 COBOL 数据结构中,但其语义会被单一服务向导忽略,并且不会进入这些 Enterprise Service Tools 单一服务向导生成的工件中。

Enterprise Service Tools 单一服务项目名中的 GB18030 字符

问题:在 Enterprise Service Tools 单一服务项目名中使用来自 GB18030 代码页中的字符会导致对该项目中的文件运行 Enterprise Service Tools 单一服务向导时出错。

变通方法:在命名 Enterprise Service Tools单一服务项目时,不要使用 GB18030 字符。

没有始终清除临时文件

问题:运行 Enterprise Service Tools 单一服务向导后,您可能有时会注意到 Enterprise Service Tools 单一服务项目文件夹中遗留了临时文件(例如:~DF45B.tmp)。

变通方法:在运行 Enterprise Service Tools 单一服务向导之后,如果在 Enterprise Service Tools 单一服务项目中看到类似命名的文件,那么可以安全地删除它们。

没有始终清除临时项目

问题:运行 Enterprise Service Tools 单一服务向导时,您有时可能会注意到临时项目(例如:ESTProject 或 ESTProjectN,其中 N=1,2,3....)在 WSDL 生成期间会暂时出现在 EST Project Explorer 视图中。出现此项目可能会暂时切换到 EST Project Explorer 中其他项目的文件夹。当存在错误或在生成 WSDL 期间关闭了工作台时,这些临时项目会遗留在 EST Project Explorer 中。

变通方法:在运行 Enterprise Service Tools 单一服务向导之后,如果在工作空间看到类似命名的项目,那么可以安全地删除它们。

当迁移 V6.0 映射文件(.cmx 文件)时,.cmx 文件引用的源文件必须在同一个文件夹中

问题:旧映射文件的迁移过程要求引用的被映射源文件与映射文件位于同一个文件夹中。如果不满足该要求,那么映射迁移工具将失败,并且显示以下错误消息:“资源 ......[filename].mapping 不在本地”。

变通方法:将引用的源文件移至正在迁移的映射文件所在的文件夹。

在 Web Service 向导中浏览至远程位置会导致工作台锁定

问题:当连接名称较长时(如 ctfmvs08.rtp.raleigh.ibm.com),在 Web service 向导页中浏览至远程位置以找到目标文件夹(转换器文件夹、WSDL 或 WSBIND 文件夹)可能要花很长时间或者会锁定工作台。

变通方法:将连接名称重命名为较短的名称,如 ctfmvs08。

生成的 XML 模式中的全局元素名称在解释型 XML 转换与编译型 XML 转换之间不一致

问题:解释型 XML 转换和编译型 XML 转换在缺省情况下生成的 XML 模式中的 Web Service 消息根元素名称不匹配。您可能需要更改编译型 XML 转换的生成缺省值以与解释型转换情况匹配,如下面的“变通方法”部分中描述的那样。这将允许您在以后需要时将转换类型从解释型更改为编译型,而无需重新发布 WSDL 文件且无需更改 Web Service 的客户机的代码。

变通方法:生成工件以进行编译型 XML 转换时,您可以使用此向导更改根元素名称以与解释型 XML 转换匹配。这个称为“根元素名称”的新选项位于以下位置:

“生成选项”页面 ->“WSDL 和 XSD 选项”选项卡 -> 指定请求和响应 XML 模式属性组。

例如,名为 A-B-C 的 COBOL 组将导致解释型转换工件具有消息根元素名称“a_b_c”。缺省编译型转换工件将具有根元素名称“ABC”。如先前所述,在向导中可以将“ABC”更改为“a_b_c”,以便与为进行解释型转换而生成的 WSDL 匹配。

不允许在生成的 XML 转换器文件的名称中使用 DBCS 字符

问题:不允许在 z/OS 上的分区数据集成员的名称中使用 DBCS 字符。

变通方法:请在指定 XML 转换器文件时省略 DBCS 字符。另外,还请检查向导中建议使用的缺省文件名是否不包含 DBCS 字符。