EGL로 생성된 Java 코드 또는 디버거로부터 원격 IMS 트랜잭션 호출
EGL로 생성된 Java™ 프로그램 또는 디버거는 IMS™ Connect를 사용하여 비대화식 단일 세그먼트 IMS 트랜잭션을 호출할 수 있습니다. 사용자는 각각 IMS에 고유한 세부사항을 포함하고 있는 별도의 입력 및 출력 레코드를 전달해야 하며, 연계 파트를 적절하게 설정해야 합니다.
다양한 IMS 액세스에 대한 세부사항은 "EGL로 생성된 Java 코드 또는 디버거로부터 원격 IMS 프로그램 호출"을 참조하십시오.
EGL 코드 작성
코딩 태스크는 입력 및 출력 레코드를 정의하고 이러한 레코드를 포함하는 call 문을 작성하는 것입니다.
입력 레코드는 IMS 트랜잭션이 IMS 메시지 큐로부터 검색할 것으로 예상되는 메시지와 일치해야 하며,
출력 레코드는 IMS 트랜잭션이 메시지 큐에 삽입하는 메시지와 일치해야 합니다. 예를 들어, 다음 코드는 트랜잭션 TXN1을 호출하며
IMS 헤더 정보 및 데이터를 모두 제공합니다.
inRec InputRecord;
outRec OutputRecord;
inRec.TRANSCODE = "TXN1";
call "TXN1"(inRec, outRec);
record InputRecord type BasicRecord
10 LL smallInt; // IMS LL field
10 ZZ smallInt; // IMS ZZ field
10 TRANSCODE char(8); // IMS transaction code
10 data; // user data
15 f1 char(10);
15 f2 char(20);
end
record OutputRecord type BasicRecord
10 LL smallInt; // IMS LL field
10 ZZ smallInt; // IMS ZZ field
10 data; // user data
15 f2 char(20);
15 f3 char(20);
15 f4 char(20);
end
표시되어 있는 바와 같이 call 문과 입력 레코드는 각각 트랜잭션 코드를 포함하고 있으며, 입력 및 출력 레코드는 각각 IMS LL 및 ZZ 필드를 포함하고 있습니다.
두 번째 예제에서 IMS 트랜잭션 TXN2는 MFS 맵 양식의 입력을 예상하고 있으며 MFS 맵을 사용하여 호출자에게 응답합니다. 레코드 파트는 다음과 같습니다.
record InputRecord type BasicRecord
10 LL smallInt; // IMS LL field
10 ZZ smallInt; // IMS ZZ field
10 MID-TRANSCODE char(8); // IMS transaction code
10. .. // Other MFS MOD header data
10 data; // user data
15 field1Attribute char(8);
15 field1Data...
end
record OutputRecord type BasicRecord
10 LL smallInt; // IMS LL field
10 ZZ smallInt; // IMS ZZ field
10. .. // other MFS MOD header data
10 data; // user data
15 field1Attribute char(8); // account for MFS attribute bytes
15 field1Data...
end
표시되어 있는 바와 같이 이 레코드에는 MFS에서 필요로 하는 데이터가 포함되어 있습니다.
연계 옵션 파트의 callLink 요소 설정
linkage 빌드 디스크립터 옵션은 호출 대상 트랜잭션의 callLink 요소를 포함하는
연계 옵션 파트를 참조해야 합니다. callLink 요소에 대해 작업할 때는 다음 작업을 수행하십시오.
- type을 REMOTECALL로 설정
- remotePgmType을 STATELESS로 설정
- remoteComType을 IMSTCP 또는 IMSJ2C로 설정
- conversionTable, location 및 serverID를 이러한 속성에 대한 참조 주제에 설명되어 있는 바와 같이 remoteComType 설정에 대해 적절하게 설정
런타임 및 IMS 계획 세부사항에 대한 이해
런타임 시의 프로세스는 다음과 같습니다.
- EGL로 생성된 Java 코드가 IMS 상호작용을 작성하고 입력 및 출력 레코드를 전달하며 해당 상호작용에 대한 실행 메소드를 호출함
- IMS Connect는 입력 데이터를 IMS 메시지 큐에 제공하고 IMS 트랜잭션은 I/O PCB에 GU 호출을 실행하여 이를 검색함
- IMS 트랜잭션은 입력 데이터를 처리한 후 I/O PCB에 ISRT 호출을 실행하여 메시지 큐에 출력 메시지를 삽입함
- IMS Connect은 출력 데이터를 실행 메소드에 리턴하며 실행 메소드는 이 데이터를 호출자에 리턴함
IMS Connect에서 Java 코드 및 IMS 트랜잭션과 상호작용하는 방식에 대한 추가 세부사항은 IMS Connect 문서를 참조하십시오.
EGL로 생성된 Java 호출은 기존 IMS PSB 또는 IMS 1단계 생성의 APPLCTN 및 TRANSACT 매크로의 변경을 필요로 하지 않습니다.