Microsoft Concurrent サーバー
MSCS トランザクション (プログラム mscmtics.cbl) サンプルでは、Standard と Enhanced Listener の両方がサポートされています。 トランザクション プログラムは、拡張リスナーまたは標準リスナーによって開始できます。
各リスナーは、同時実行サーバーの起動時に一意のトランザクション開始メッセージ (TIM) をトランザクション プログラムに渡します。 標準リスナーは、次のコード サンプルに示す TIM を書式設定して渡します。 この TIM の長さは 72 バイトです。
01 TRANSACTION-INITIATION-MESSAGE.
05 GIVE-TAKE-SOCKET PIC 9(8) COMP.
05 LSTN-NAME PIC X(8).
05 LSTN-SUBNAME PIC X(8).
05 CLIENT-IN-DATA PIC X(35).
05 FILLER PIC X(1).
05 SOCKADDR-IN-PARM.
15 SIN-FAMILY PIC 9(4) COMP.
15 SIN-PORT PIC 9(4) COMP.
15 SIN-ADDRESS PIC 9(8) COMP.
15 SIN-ZERO PIC X(8).
拡張リスナーは、次のコード サンプルに示す TIM を書式設定して渡します。 この TIM の長さは 189 バイトです。
01 TRANSACTION-INITIATION-MESSAGE.
05 GIVE-TAKE-SOCKET PIC 9(8) COMP.
05 LSTN-NAME PIC X(8).
05 LSTN-SUBNAME PIC X(8).
05 CLIENT-IN-DATA PIC X(35).
05 FILLER PIC X(1).
05 SOCKADDR-IN-PARM.
15 SIN-FAMILY PIC 9(4) COMP.
15 SIN-PORT PIC 9(4) COMP.
15 SIN-ADDRESS PIC 9(8) COMP.
15 SIN-ZERO PIC X(8).
05 FILLER PIC X(80).
05 DATA-AREA-2-LEN PIC 9(4) COMP.
05 DATA-AREA-2 PIC X(35).
mscmtics.cbl サンプル同時実行サーバーでは、受信した TIM の長さを評価することで、Standard または Enhanced Listener のどちらを使用したかを判断できます。
拡張リスナーが Microsoft コンカレント サーバーを開始したシナリオでは、mscmtics.cbl プログラムは TIM データ領域 2 フィールドにある ELM に含まれるクライアントインデータを調びます。 クライアント・イン・データには、実行される CICS サーバー・プログラムの名前と、クライアントから受信する要求データの長さが含まれます。 次のコード サンプルは、このデータ領域の内容を示しています。
01 CLIENT-IN-DATA PIC X(35).
01 FILLER REDEFINES CLIENT-IN-DATA.
05 CID-USERID PIC X(8).
05 CID-PASSWORD PIC X(8).
05 CID-LINK-TO-PROG PIC X(8).
05 CID-COMMAREA-LEN PIC S9(4) COMP.
05 CID-DATA-LEN PIC S9(8) COMP.
05 CID-VERSION PIC X.
88 CID-VERSION-1 VALUE X'00'.
88 CID-VERSION-2 VALUE X'01'.
05 CID-FLAGS PIC X(2).
88 CID-FLAGS-PERSISTENT-NONE VALUE X'0001'.
88 CID-FLAGS-PERSISTENT-OPEN VALUE X'0002'.
88 CID-FLAGS-PERSISTENT-USE VALUE X'0004'.
88 CID-FLAGS-PERSISTENT-CLOSE VALUE X'0008'.
05 CID-RESERVED PIC X.
05 CID-FORMAT PIC X.
88 CID-FORMAT-NOTSET VALUE X'00'.
88 CID-FORMAT-MS VALUE X'01'.
88 CID-FORMAT-IBM VALUE X'02'.