定义 z/OS Connect 消息有效内容变换
IBM® z/OS® Connect 能够选择对用于调用 z/OS 操作系统上的业务资产的请求和响应有效内容进行变换。您可以通过实现 com.ibm.wsspi.zos.connect.DataXform 服务提供者接口 (SPI)(z/OS Connect 随附了该 SPI)来创建消息有效内容变换器,以满足特定需要。
关于此任务
z/OS Connect 提供了一个实现,它要求请求和响应消息格式为 JSON。此功能支持将请求转换为字节阵列,本地语言 COBOL、PL/I 或 C 结构可以映射字节阵列。通过使用 z/OS Connect 所提供的实用程序将目标程序或者副本的语言结构(包括 in 和 out 参数的描述)用来生成绑定文件以及 JSON 请求和响应模式文件。当请求到达和返回响应时,z/OS Connect 使用此实用程序所生成的绑定文件来完成将数据从 JSON 格式转换为本机数据格式以及从本机数据格式转换为 JSON 格式。您可以使用 z/OS Connect 提供的 REST API 调用来检索请求和响应消息的 JSON 模式。
z/OS Connect 提供了 zosConnectService 配置元素,使管理员能够配置一组适用于特定服务的属性。dataXformRef 是这些属性中的一个属性,它指向要用于特定服务的数据变换配置。此任务描述如何请求使用 z/OS Connect 提供的数据变换器。
过程
- 在 server.xml 文件中定义 zosConnectDataXform 元素。
<!-- z/OS Connect data transformation provider --> <zosConnectDataXform id="zosConnectXform" bindFileLoc="/zosConnect/banking/bind/" bindFileSuffix=".bnd" requestSchemaLoc="/zosConnect/banking/reqSchema" requestSchemaSuffix=".json" responseSchemaLoc="/zosConnect/banking/respSchema" responseSchemaSuffix=".json"/>
使用此示例,为完整起见,指定了所有文件位置相关属性定义(例如,bindFileLoc、requestSchemaLoc 和 responseSchemaLoc)。仅 bindFileLoc 和 requestSchemaLoc 属性定义是必需的。如果未配置 responseSchemaLoc 属性,那么会使用 requestSchemaLoc 属性的值。
使用相同示例,为完整起见,指定了所有后缀相关属性定义(例如,<bindFileSuffix>、<requestSchemaSuffix> 和 <responseSchemaSuffix>)。这些参数都是可选的。 如果未指定这些参数,那么预期 z/OS Connect 将装入的绑定和模式文件不会具有后缀。
z/OS Connect 预期根据配置数据变换相关文件具有特定格式。- 绑定文件:<serviceName><bindFileSuffix>
- 请求模式文件:<serviceName>_request<requestSchemaSuffix>
- 响应模式文件:<serviceName>_response<requestSchemaSuffix>
数据变换文件的名称为:<!-- z/OS Connect service definition --> <zosConnectService id="zosConnectCustomer" serviceName="customer" serviceRef="wolaCustomerCreate" dataXformRef="zosConnectXform"/>
- 绑定文件:customer.bnd
- 请求模式文件:customer_request.json
- 响应模式文件:customer_response.json
有关与 zosConnectDataXform 元素相关联的可配置属性定义的更多信息,请参阅 z/OS Connect 功能部件的文档。
- 更新 server.xml 配置中您想要对其启用 z/OS Connect 提供的数据变换的每项服务的 zosConnectService 元素。
<!-- z/OS Connect service definition --> <zosConnectService id="zosConnectCustomer" serviceName="customer" serviceRef="wolaCustomerCreate" dataXformRef="zosConnectXform"/>
- 可选:配置适用于所有服务的数据变换器。 将 zosConnectManager 元素的 globaDataXformRef 设置为所配置的数据变换器的标识,以供全局使用。如果定义了全局数据变换器和服务数据变换器,并且请求使用所配置的数据变换器来接受服务,那么 z/OS Connect 将使用特地为该服务配置的数据变换器。
<zosConnectManager id="zosConnectGlobalDefinitions globalDataXformRef="zosConnectGlobalDataXform"/> <!-- z/OS Connect data transformation provider --> <zosConnectDataXform id="globalDataXform" bindFileLoc="/zosConnect/banking/bind/" bindFileSuffix=".bnd" requestSchemaLoc="/zosConnect/banking/reqSchema" requestSchemaSuffix=".json" responseSchemaLoc="/zosConnect/banking/respSchema" responseSchemaSuffix=".json"/>
- 可选:配置 pollingRate 和 updateTrigger 之类的设置以对监视操作进行微调。 缺省情况下,将监视与数据转换定义相关联的目录以查找新文件和文件更新。有关这些配置属性的更多信息,请参阅 z/OS Connect 1.0 和 z/OS Connect 1.2 下的 zosConnectDataXform 元素部分。
<zosConnectDataXform id="globalDataXform" bindFileLoc="/zosConnect/banking/bind/" bindFileSuffix=".bnd" requestSchemaLoc="/zosConnect/banking/reqSchema" requestSchemaSuffix=".json" responseSchemaLoc="/zosConnect/banking/respSchema" responseSchemaSuffix=".json" pollingRate="500ms"> </zosConnectDataForm>
在此示例中,将按每 500 毫秒一次的频率轮询 /zosConnect/banking/bind,/zosConnect/banking/reqSchema 和 /zosConnect/banking/respSchema 目录以查找文件更新。如果未配置 pollingRate 和 updateTrigger 配置属性,那么将分别使用缺省值 polled 和 2 seconds。如果不需要监视文件,那么可通过将 updateTrigger 属性设置为 disabled 来禁用文件监视。如果想要触发某些文件的手动刷新,请将 updateTrigger 属性设置为 mbean 并使用文件通知 MBean(即 com.ibm.ws.kernel.filemonitor.FileNotificationMBean)来触发更新;例如:
String[] MBEAN_METHOD_SIGNATURE = new String[] {Collection.class.getName(),Collection.class.getName(),Collection.class.getName() }; JMXConnector jmxConnector = ...; MBeanServerConnection mbsc = jmxConnector.getMBeanServerConnection(); ObjectName fileMonitorMBeanName = new ObjectName("WebSphere:service=com.ibm.ws.kernel.filemonitor.FileNotificationMBean"); List<String> paths = new ArrayList<String>(); paths.add("/zosConnect/banking/bind/customer.bnd"); paths.add("/zosConnect/banking/reqSchema/customer_request.json"); paths.add("/zosConnect/banking/respSchema/customer_response.json"); Object[] params = new Object[] { null, paths, null }; mbsc.invoke(fileMonitorMBeanName, "notifyFileChanges", params, MBEAN_METHOD_SIGNATURE);
此示例使用 restConnector-1.0 功能部件触发 customer.bnd、customer_request.json 和 customer_response.json 文件的更新。有关如何创建安全 JMX 连接的更多信息,请参阅配置与 Liberty 的安全 JMX 连接上的文档。
子主题
创建绑定文件和模式文件以与 z/OS Connect 配合使用
z/OS Connect 能够选择对用于调用 z/OS 操作系统上的业务资产的请求和响应有效内容进行变换。z/OS Connect 提供了称为 BBGLS2JS 和 BBGJS2LS 的两个新的实用程序。

文件名:twlp_zconnect_msg_payload_conv.html