IBM® z/OS® Connect는 z/OS 운영 체제에 있는 비즈니스 자산을 호출하는 데 사용되는 요청 및 응답 페이로드를
선택적으로 변환하는 기능을 제공합니다. z/OS Connect에 포함된 com.ibm.wsspi.zos.connect.DataXform SPI(Service Provider Interface)를
구현하여 특정 요구사항을 충족하도록 작성할 수 있는 메시지 페이로드 변환기를 작성할 수 있습니다.
이 태스크 정보
z/OS Connect가 제공하는 구현에서는 요청 및 응답 메시지가 JSON 형식이어야 합니다. 이 기능은
요청을 원시 언어 Cobol, PL/I 또는 C 구조체가 맵핑할 수 있는 바이트 배열로 변환하도록 지원합니다. 대상 프로그램의
in 및 out 매개변수 설명을 포함하는
이 언어 구조체 또는 카피북은 z/OS Connect 제공 유틸리티를 사용하여 바인딩 파일과 JSON 요청 및
응답 스키마 파일을 생성하는 데 사용됩니다. 이 유틸리티가 생성하는 바인딩 파일은
요청이 도착하고 응답이 리턴될 때 z/OS Connect가 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>
다음
zosConnectService 샘플 구성과 이전
zosConnectDataXform 샘플 구성을 사용합니다.
<!-- 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를
글로벌 사용을 위해 구성된 데이터 변환기의 ID로 설정하십시오. 글로벌 및 서비스 데이터 변환기가 둘 다 정의되고
구성된 데이터 변환기가 있는 서비스에 대한 요청이 수신되는 경우,
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>
예에서 디렉토리
/zosConnect/banking/bind,/zosConnect/banking/reqSchema 및
/zosConnect/banking/respSchema는 500밀리초마다 파일 업데이트를
위해 폴링됩니다. 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 연결 구성에서 문서를 참조하십시오.