次のJCLおよびユーザー・イグジットのサンプルを使用して、BEA Tuxedo Mainframe Adapter for TCP (IMS)(以後TMA TCP for IMSと呼ぶ)製品を実行できます。
JCL配布ライブラリにはTMA TCP for IMS製品を実行するためのサンプルJCLが収録されています。インストール環境に応じた規則や標準手続きに従ってサンプルJCLを変更する必要があります。変更が必要な作業は次のとおりです。
リストD-1に、OTMAクライアントとして実行するときのサンプルJCLを示します。次のサンプルJCLは、TMA TCP for IMS製品と連携するようにときに、標準的なOTMA JCLをどのように変更するのかの参考に限定して使用してください。
//JOBNAME JOB ETC.
//***************************************************************
//* BRING UP BEA TMA TCP FOR IMS/OTMA *
//***************************************************************
//STEP1 EXEC PGM=BEATCPI,REGION=0M,TIME=1440
//STEPLIB DD DSN=hlq1.hlq2,DISP=SHR
//* Place the name of the authorized library in the STEPLIB DD above
//SYSTCPD DD DISP=SHR,DSN=TCPIP.DATA
//MSGLOG DD DISP=SHR,DSN=BEATCPI.MSGLOG
//MSGCAT DD DISP=SHR,DSN=BEATCPI.MSGCAT
//SVRLOG DD DISP=SHR,DSN=BEATCPI.SVRLOG
//CONFIG DD DISP=SHR,DSN=hlq1.hlq2.JCL(CONFIG)
//* Place the name of the Config file in the CONFIG DD above
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
OTMAを介したIMSクライアントとリモート・サービス間の通信を可能にするには、DFSYPRX0
とDFSYDRU0
という、IBM社から提供されているIBMユーザー・イグジットをインストールする必要があります。構成ファイルに定義されているとおりに個別のトランザクション(Tuxedo Mainframe Adapter OTMAクライアントの名前も同様)を認識するようにイグジットをカスタマイズしてください。構成ファイルの設定の詳細は、「Oracle TMA TCP for IMSの構成」の項を参照してください。IMSユーザー・イグジットの詳細は、IBM社のドキュメント『Open Transaction Manager Access Guide』を参照してください。
リストD-2は、IBM OTMA事前ルーティング・ユーザー・イグジットのサンプルで、データセットBEATCPI
のソースの中にあります。IBM DFSYPRX0
ユーザー・イグジットを使用すると、アプリケーション・リクエストの宛先をIMSが検索できるようになります。次のサンプルの中で太字になっている行は、IBM DFSYPRX0
ユーザー・イグジットのうち変更が必要な箇所です。
TITLE 'DFSYPRX0: OTMA PRE-ROUTING USER EXIT'
DFSYPRX0 CSECT
DFSYPRX0 AMODE 31
DFSYPRX0 RMODE ANY
********************************************************************
* *
* DESCRIPTION: OTMA PRE-ROUTING USER EXIT *
* *
***********************************************************@SCPYRT**
* *
* Licensed Materials - Property of IBM *
* *
* "Restricted Materials of IBM" *
* *
* 5655-158 (C) Copyright IBM Corp. 1991,1996 *
* *
***********************************************************@ECPYRT**
* *
* MODULE TYPE: DC *
* *
* PROCESSOR: ASSEMBLER H *
* *
* MODULE SIZE: SEE EXTERNAL SYMBOL DICTIONARY PRODUCED BY *
* ASSEMBLER *
* *
* ATTRIBUTE: REENTRANT *
* *
* ENTRY POINT: DFSYPRX0 *
* *
* ENTRY INTERFACES : *
* *
* STATUS: RELEASE 5.1 CHANGE LEVEL - 0 *
* *
* FUNCTION: THIS MODULE IS CALLED BY IMS WHEN AN APPLICATION *
* CALL (IE CHNG OR ISRT) RESULTS IN A SEARCH FOR *
* A DESTINATION. *
* DFSYPRX0 DETERMINES IF: *
* 1. IMS SHOULD SEARCH FOR THE DESTINATION *
* WITHOUT LOOKING AT ANY OTMA DESTINATIONS *
* (LEGACY PROCESSING). *
* 2. IMS SHOULD INCLUDE OTMA DESTINATIONS, *
* AND PROVIDE A DESTINATION CLIENT MEMBER *
* NAME IF NECESSARY. *
* *
* DEPENDENCY: IMS/ESA 5.1 *
* *
* MODULE TYPE: PROCEDURE *
* ATTRIBUTE: RE-ENTRANT *
* PROCESSOR: ASSEMBLER H *
* *
* REGISTERS: STANDARD ENTRY AND EXIT *
* *
* MODULE SIZE: SEE ASSEMBLER LISTING *
* *
* LINKAGE: BALR 14,15 *
* *
* *
********************************************************************
EJECT
***********************************************************************
* *
* INTERFACE: *
* *
* CONTENTS OF REGISTERS AT ENTRY: *
* R1 = ADDRESS OF STANDARD IMS USER EXIT PARMLIST *
* *
* STANDARD PARMLIST *
* --------- *
* | | *
* |---------| *
* | | *
* |---------| *
* | | DFSYPRX0 PARMLIST *
* +12 |---------| |---------------| *
* | |---->|INPUT LTERM | +0 *
* --------- |---------------| *
* |DEST NAME | +8 *
* |---------------| *
* |TRAN NAME | +16 *
* |---------------| *
* |FLAGS | +24 *
* |---------------| *
* |USER ID | +28 *
* |---------------| *
* |GROUP | +36 *
* |---------------| *
* |RESERVED | +44 *
* |---------------| *
* |CLIENT MEM NAME| +48 *
* |---------------| *
* |A(MCI) | +64 *
* |---------------| *
* |A(STATE DATA) | +68 *
* |---------------| *
* |A(USER DATA) | +72 *
* |---------------| *
* |RESERVED | +76 *
* |---------------| *
* |A(MEM OVERRIDE)| +80 *
* |---------------| *
* *
* *
* R13 = SAVE AREA ADDRESS *
* R14 = RETURN ADDRESS *
* R15 = ENTRY POINT ADDRESS *
* *
* *
***********************************************************************
EJECT
***********************************************************************
* *
* CONTENTS OF OTMA PRE-ROUTING USER EXIT PARMLIST: *
* *
* +0 = 8-BYTE NAME OF LTERM/TPIPE WHICH *
* INVOKED THE CURRENT TRANSACTION *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +8 = 8-BYTE DESTINATION NAME *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +16 = 8-BYTE TRANSACTION NAME *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +24 = 1-BYTE FLAG *
* X'80' - IF SET, INDICATES THAT AN INPUT *
* OTMA PREFIX EXISTS. THE MCI, *
* STATE DATA, AND USER DATA ARE *
* ACCESSIBLE IN THIS PARMLIST. *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +25 = SYNCRONIZATION LEVEL IF THE INPUT WAS *
* FROM AN OTMA CLIENT. *
* *
* +26 = 2-BYTE RESERVED *
* *
* +28 = 8-BYTE USERID *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +36 = 8-BYTE GROUP ID *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +44 = 4-BYTE RESERVED *
* *
* +48 = 16-BYTE NAME OF INPUT CLIENT MEMBER NAME *
* IF INPUT WAS FROM A CLIENT, BLANKS OTHERWISE. *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +64 = ADDR(MESSAGE CONTROL INFORMATION), *
* AVAILABLE FROM INPUT OTMA MESSAGE PREFIX. *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +68 = ADDR(STATE DATA), *
* AVAILABLE FROM INPUT OTMA MESSAGE PREFIX. *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +72 = ADDR(USER DATA), *
* AVAILABLE FROM INPUT OTMA MESSAGE PREFIX. *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +76 = 4-BYTE RESERVED *
* *
* +80 = ADDR(16-BYTE MEMBER OVERRIDE) *
* THIS FIELD IS USED WHEN THE TRANSACTION IS *
* INVOKED FROM A NON-OTMA LTERM, TO INDICATE *
* THE CLIENT NAME WHEN AN OTMA DESTINATION *
* IS DESIRED. *
* (LEFT JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN EXIT PARAMETER ONLY. *
* *
* *
* CONTENTS OF REGISTERS AT EXIT: *
* *
* R15 = RETURN CODE *
* *
* RETURN CODE CAN BE ONE OF THE FOLLOWINGS: *
* 0 : CONTINUE DEFAULT PROCESSING: *
* IF THE TRANSACTION WAS INVOKED FROM AN *
* OTMA TPIPE, THEN OTMA FIND-DESTINATION *
* PROCESSING SHOULD OCCUR. *
* IF THE TRANSACTION WAS INVOKED FROM A NON-*
* OTMA LTERM, THEN LEGACY FIND-DESTINATION*
* PROCESSING SHOULD OCCUR. *
* 4 : OTMA FIND-DESTINATION PROCESSING SHOULD *
* OCCUR. IF THE TRANSACTION WAS ENTERED *
* FROM A NON-OTMA LTERM, THEN A CLIENT *
* MEMBER NAME MUST BE PROVIDED IN THE *
* PRE-ROUTING PARAMETER LIST. *
* 8 : LEGACY FIND-DESTINATION PROCESSING *
* SHOULD OCCUR. *
* *
* *
* *
* REGISTER 13 IS THE ADDRESS OF SAVE AREA. *
* *
* NORMAL LINKAGE CONVENTIONS FOR REGISTER 13, 14 AND 15 *
* *
* *
* *
***********************************************************************
*
*
SAVE (14,12),,DFSYPRX0&SYSDATE&SYSTIME
SPACE 2
LR R12,R15 MODULE ADDRESSABILITY
USING DFSYPRX0,R12USING OTMAPARM,R10
LA R15,0 RC = 0
USING SXPL,R9
*
LR R9,R1 LOAD PARAMETER BASE
L R10,SXPLFSPL OTMA SPECIFIC PARAMETERS
CLC OTMDEST,MYPIPE SPECIAL DESTINATION?
BNE PRX01500 B NO
ICM R8,15,OTMCOVRD GET ADDRESS OF OVERRIDING NAME
BZ PRX01550 B IF NO ADDRESS
MVC 0(16,R8),MYCLIENT SET OVERRIDING CLIENT NAME
LA R15,4 ROUTE TO OTMA
B PRX01600 RETURN
*
PRX01500 DS 0H
CLC OTMTRANS,MYTRAN SPECIAL TRANSACTION?
BNE PRX01550 B NO
LA R15,8 INVOKE LEGACY PROCESSING
B PRX01600 RETURN
*
PRX01550 DS 0HPRX01600 DS 0H
*
RETURN (14,12),,RC=(15) RETURN WITH RETURN CODE IN R15
SPACE 2
REQUATE
SPACE 2MYPIPE DC CL8'BEAOPIPE' TEST TPIPE
END
MYTRAN DC CL8'BEACRP01' TEST TRANSACTION
MYCLIENT DC CL16'BEAOTMA01' TEST CLIENT
*
* DATA MACROS
*
DFSSXPL
BEAOTM
*
リストD-3は、前に説明したDSECT BEAOTM
マクロです。DFSYPRX0
イグジットに渡されるOTMAパラメータ領域用のDSECT
は、IBM社からは入手できません。
MACRO
BEAOTM
OTMAPARM DSECT OTMA SPECIFIC PARAMETER LIST
OTMLTERM DS CL8 ORIGINATING LTERM/TPIPE
OTMDEST DS CL8 DESTINATION NAME
OTMTRANS DS CL8 TRANSACTION NAME
OTMFLAGS DS X OTMA FLAGS
#OTMINP EQU X'80' INPUT OTMA MSG PREFIX EXISTS
OTMSYNCH DS X OTMA SYNCHRONIZATION LEVEL
OTMRESVD DS XL2 RESERVED
OTMUSER DS CL8 USER ID
OTMGROUP DS CL8 GROUP NAME
OTMRESV2 DS XL4 RESERVED
OTMCNAME DS CL16 ORIGINATING CLIENT NAME
OTMMSGCL DS A ADDRESS OF INPUT MESSAGE CTL
OTMSTATE DS A ADDRESS OF INPUT STATE DATA
OTMUSERD DS A ADDRESS OF INPUT USER DATA
OTMRSVD3 DS XL4 RESERVED
OTMCOVRD DS A ADDRESS OF OVERRIDING CLIENT NAME
*
MEND
リストD-4は、IBM OTMA宛先解決ユーザー・イグジットのサンプルです。IBM DFSYDRU0
ユーザー・イグジットを使用すると、宛先がOTMAクライアント、非OTMA LTERM
、その他のタイプのOTMAクライアント、または無効なクライアントのいずれに該当するのかIMSが判別できるようになります。次のサンプルの中で太字になっている行は、IBM DFSYDRU0
ユーザー・イグジットのうち変更が必要な部分です。
TITLE 'DFSYDRU0: OTMA DESTINATION RESOLUTION USER EXIT'
DFSYDRU0 CSECT
DFSYDRU0 AMODE 31
DFSYDRU0 RMODE ANY
********************************************************************
* *
* DESCRIPTION: OTMA DESTINATION RESOLUTION USER EXIT *
* *
***********************************************************@SCPYRT**
* *
* Licensed Materials - Property of IBM *
* *
* "Restricted Materials of IBM" *
* *
* 5655-158 (C) Copyright IBM Corp. 1991,1996 *
* *
***********************************************************@ECPYRT**
* *
* MODULE TYPE: DC *
* *
* PROCESSOR: ASSEMBLER H *
* *
* MODULE SIZE: SEE EXTERNAL SYMBOL DICTIONARY PRODUCED BY *
* ASSEMBLER *
* *
* ATTRIBUTE: REENTRANT *
* *
* ENTRY POINT: DFSYDRU0 *
* *
* ENTRY INTERFACES : *
* *
* STATUS: RELEASE 5.1 CHANGE LEVEL - 0 *
* *
* FUNCTION: THIS MODULE IS CALLED BY IMS WHEN AN APPLICATION *
* CALL (IE CHNG OR ISRT) RESULTS IN A SEARCH FOR *
* A DESTINATION, AND OTMA FIND-DEST PROCESSING *
* IS TO BE PERFORMED (AS DETERMINED BY DFSYPRX0 *
* PROCESSING). *
* DFSYDRU0 DETERMINES IF: *
* 1. DESTINATION IS AN OTMA CLIENT TPIPE *
* 2. DESTINATION IS A NON-OTMA LTERM *
* (LEGACY PROCESSING). *
* 3. DESTINATION IS IN A DIFFERENT OTMA CLIENT *
* 4. DESTINATION IS INVALID *
* *
* DEPENDENCY: IMS/ESA 5.1 *
* *
* MODULE TYPE: PROCEDURE *
* ATTRIBUTE: RE-ENTRANT *
* PROCESSOR: ASSEMBLER H *
* *
* REGISTERS: STANDARD ENTRY AND EXIT *
* *
* MODULE SIZE: SEE ASSEMBLER LISTING *
* *
* LINKAGE: BALR 14,15 *
* *
* *
********************************************************************
EJECT
***********************************************************************
* *
* INTERFACE: *
* *
* CONTENTS OF REGISTERS AT ENTRY: *
* R1 = ADDRESS OF STANDARD IMS USER EXIT PARMLIST *
* *
* STANDARD PARMLIST *
* --------- *
* | | *
* |---------| *
* | | *
* |---------| *
* | | DFSYPRX0 PARMLIST *
* +12 |---------| |---------------| *
* | |---->|INPUT LTERM | +0 *
* --------- |---------------| *
* |DEST NAME | +8 *
* |---------------| *
* |TRAN NAME | +16 *
* |---------------| *
* |FLAGS | +24 *
* |---------------| *
* |USER ID | +28 *
* |---------------| *
* |GROUP | +36 *
* |---------------| *
* |DEST CLIENT | +44 *
* |---------------| *
* |RESERVED | +60 *
* |---------------| *
* |INPUT CLIENT | +64 *
* |---------------| *
* |A(MCI) | +80 *
* |---------------| *
* |A(STATE DATA) | +84 *
* |---------------| *
* |A(USER DATA) | +88 *
* |---------------| *
* |RESERVED | +92 *
* |---------------| *
* |A(MEM OVERRIDE)| +96 *
* |---------------| *
* |FLAGS | +100 *
* |---------------| *
* *
* *
* R13 = SAVE AREA ADDRESS *
* R14 = RETURN ADDRESS *
* R15 = ENTRY POINT ADDRESS *
* *
* *
***********************************************************************
EJECT
***********************************************************************
* *
* CONTENTS OF OTMA PRE-ROUTING USER EXIT PARMLIST: *
* *
* +0 = 8-BYTE NAME OF LTERM/TPIPE WHICH *
* INVOKED THE CURRENT TRANSACTION *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +8 = 8-BYTE DESTINATION NAME *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +16 = 8-BYTE TRANSACTION NAME *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +24 = 1-BYTE FLAG *
* X'80' - IF SET, INDICATES THAT AN INPUT *
* OTMA PREFIX EXISTS. THE MCI, *
* STATE DATA, AND USER DATA ARE *
* ACCESSIBLE IN THIS PARMLIST. *
* X'40' - IF SET, INDICATES THAT A DIFFERENT *
* OTMA CLIENT MAY BE SPECIFIED USING *
* RETURN CODE OF R15=8. (I.E. MEMBER *
* OVERRIDE IS ALLOWED FOR THIS CALL). *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +25 = SYNCRONIZATION LEVEL IF THE INPUT WAS *
* FROM AN OTMA CLIENT. *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +26 = 1-BYTE FLAG *
* X'80' - IF SET, TPIPE EXISTS FOR THE CLIENT *
* X'40' - IF SET, LTERM EXISTS IN IMS (LEGACY) *
* X'20' - IF SET, LU62 DESCRIPTOR EXISTS *
* X'10' - IF SET, ETO IS AVAILABLE *
* X'08' - IF SET, CLIENT IS ACTIVE *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +27 = 1-BYTE RESERVED *
* *
* +28 = 8-BYTE USERID *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +36 = 8-BYTE GROUP ID *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +44 = 16-BYTE DESTINATION CLIENT NAME *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +60 = 4-BYTE RESERVED *
* *
* +64 = 16-BYTE NAME OF INPUT CLIENT MEMBER NAME *
* IF INPUT WAS FROM A CLIENT, BLANKS OTHERWISE. *
* (LEFT-JUSTIFIED, PADDED WITH BLANKS) *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +80 = ADDR(MESSAGE CONTROL INFORMATION), *
* AVAILABLE FROM INPUT OTMA MESSAGE PREFIX. *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +84 = ADDR(STATE DATA), *
* AVAILABLE FROM INPUT OTMA MESSAGE PREFIX. *
* THIS IS AN ENTRY PARAMETER ONLY. *
* *
* +88 = ADDR(USER DATA), *
* AVAILABLE FROM INPUT OTMA MESSAGE PREFIX. *
* *
* THIS AREA IS ALSO USED TO RETURN NEW OR *
* MODIFIED USER DATA, UP TO A MAXIMUM OF *
* 1024 BYTES. @PQ07683
* *
* THE FORMAT OF THE USER DATA IS: *
* 0-1 LENGTH OF FOLLOWING USER DATA, WHICH *
* INCLUDES THIS LENGTH FIELD *
* 2- USER DATA *
* *
* +92 = 4-BYTE RESERVED *
* *
* +96 = ADDR(OUTPUT PARAMETER LIST) *
* THE OUTPUT PARAMETER LIST IS USED TO *
* RETURN INFORMATION TO IMS. SEE UNDER *
* CONTENTS OF REGISTERS AT EXIT. *
* *
* *
* CONTENTS OF REGISTERS AT EXIT: *
* *
* R15 = RETURN CODE *
* *
* RETURN CODE CAN BE ONE OF THE FOLLOWINGS: *
* 0 : DESTINATION IS OTMA CLIENT TPIPE *
* 4 : DESTINATION IS NON-OTMA LTERM (LEGACY) *
* 8 : DESTINATION IS IN A DIFFERENT CLIENT. *
* THE CLIENT NAME MUST BE RETURNED IN *
* THE DFSYDRU0 PARMLIST. *
* 12: DESTINATION IS INVALID *
* *
* CONTENTS OF OTMA PRE-ROUTING USER EXIT PARMLIST: *
* *
* ALL FIELDS IN THE PARMLIST SHOULD REMAIN UNCHANGED. *
* OUTPUT INFORMATION IS RETURNED AS FOLLOWS: *
* *
* +96 = ADDR(OUTPUT PARAMETER LIST) *
* +00 = (16-BYTE MEMBER OVERRIDE) *
* THIS FIELD IS USED WHEN THE DESTINATION *
* IS IN A DIFFERENT OTMA CLIENT. *
* RETURN CODE 8 MUST BE SET. *
* (LEFT JUSTIFIED, PADDED WITH BLANKS) *
* *
* +16 = 1-BYTE OUTPUT FLAG FIELD *
* X'80' = IF SET, INDICATES THAT IF A *
* TPIPE NEEDS TO BE CREATED, IT *
* SHOULD BE A SYNC'D TPIPE. *
* THIS IS ONLY VALID WHEN *
* RETURN CODE = 0. *
* *
* +17 = 15-BYTE RESERVED *
* *
* *
* *
* REGISTER 13 IS THE ADDRESS OF SAVE AREA. *
* *
* NORMAL LINKAGE CONVENTIONS FOR REGISTER 13, 14 AND 15 *
* *
* *
* *
***********************************************************************
* @PQ00242
* @PQ00242
* @PQ00242
* @PQ00242
* @PQ00242
* @PQ00242
SAVE (14,12),,DFSYDRU0&SYSDATE&SYSTIME @PQ00242
SPACE 2 @PQ00242
LR R12,R15 MODULE ADDRESSABILITY @PQ00242
USING DFSYDRU0,R12 @PQ00242
* @PQ00242
*L R2,12(,R1)
LA R15,0 RC = 0
CLC 44(16,R2),MYCLIENT
BNE EXIT4
*
EXIT0 DS 0HB EXIT
*EXIT4 DS 0H
RETURN (14,12),,RC=(15) RETURN WITH RETURN CODE IN R15
LA R15,4
EXIT DS 0H
SPACE 2
REQUATE*
*
MYCLIENT DC CL16'BEAOTMA01' TEST CLIENT
END