5.1.2 CICSクライアント・プログラムからの呼出し

CICSプログラムからリモートのOracle Tuxedoドメインに対してサービス呼出しを実行するには、EXEC CICS LINK呼出しを前処理リクエスタに送信します。アクセス対象にするサービスは、Oracle TMA管理者が構成する必要がありますが、プログラミングに限って言えば、必要な手続きはLINK呼出しのみです。次のCOBOLレコードは、client.cblというCOBOLのコピーブックに収録されています。

リスト COBOLレコード

01 REQUEST-RECORD.
    05 REQUEST-HEADER.
         10 DATALEN             PIC S9(08) COMP.
         10 SVCNAME[16]         PIC X(16).
         10 REQUESTCD           PIC S9(08) COMP.
         10 RETURNCD            PIC S9(08) COMP.
         10 REQRETURNCD         PIC S9(08) COMP.
    05 REQUEST-DATA.
         10 DATA-AREA           PIC X(DATALEN).

LINK呼出しで渡すCの構造体のレイアウトは、リストに示すとおりです。次のCの構造体は、clienth.hというインクルード・ファイルに収録されています。

リスト Cの構造体

typedef struct CLIENTHDR
{
 long DataLen;              /* THE LEN OF THE DATA FROM AND TO APPL */
 char SvcName[16];          /* THE SERVICE NAME */
 long RequestCd;            /* THE REQUEST COMMAND FROM THE APPL */
 long ReturnCd;             /* THE RETURN CODE TO THE APPL */
 long ReqReturnCd;          /* THE RETURN CODE FROM THE PREQ AND REQ */
} CLIENTHDR;

typedef struct CMAREA
{
CLIENTHDR CltHdr;                     /*HEADER */
 char Request_data[MAX_DATA_LENGTH];  /* REQUEST DATA */
} CMAREA;

前述のCOBOLとCのサンプルの変数は、次のような定義内容になっています。

DataLen
Request_dataフィールドのデータの長さ。
SvcName
サービス・リクエスト名(名前については管理者に確認してください)。
RequestCd
この呼出しのタイプを示す、あらかじめ定義されている数値。
BEA_REQUEST_NORESPONSE
値は7です。応答なしのサービス・リクエスト。この場合、サービスを実行するOracle Tuxedoにリクエストが送信されますが、レスポンス・データは返されません。
BEA_REQUEST_RESPONSE
値は5です。リクエストまたはレスポンス・リクエスト。リクエストはOracle Tuxedoに送信され、レスポンスが返されます。

表5-1 リクエストのコード

コード
BEA-REQUEST-RESPONSE +5.
BEA-REQUEST-NORESPONSE +7.
ReturnCd
このコードは、CICSのリクエスタから戻される戻りコードです。次の表に、すべての戻りコードを示します。処理またはネットワークの問題を示す戻りコードがある場合は、管理者に問い合せてください。

ノート:

これらのコードの詳細は、「CICSクライアント・プログラムに戻されるコード」を参照してください

表5-2 戻りコード

コード
BEA-NORMAL +0
BEA-ERR-LENGTH +1
BEA-ERR-MISSING-SRV-NAME +2
BEA-ERR-REQ-CODE +3
BEA-ERR-SRC-NOT-FOUND +4
BEA-ERR-READ-UMT +5
BEA-ERR-SERVER +6
BEA-ERR-POST +7
BEA-ERR-CANCEL +8
BEA-ERR-WAIT +9
BEA-ERR-LMID-NOT-FOUND +10
BEA-ERR-START-TRANSID +11
BEA-ERR-DISABLE-ACQUIRING +12
BEA-ERR-DISABLE-NOT-FND +13
BEA-ERR-DISABLE-NOT-RESPOND +14
BEA-ERR-DISABLE +15
BEA-ERR-ALLOC +16
BEA-ERR-TIMEOUT +17
BEA-ERR-TSQ +18
BEA-ERR-SOCKET-FAILURE +19
BEA-ERR-PROTOCOL +20
BEA-ERR-QUEUE-OVERFLOW +21
ReqReturnCd
このコードは、Oracle Tuxedoドメインの戻りコードです。Tuxedoのエラー・コードについては、Oracle Tuxedoのドキュメントを参照してください。
Request_data
この領域は、リクエスト・データと戻されるデータが格納される領域です。その長さは、個々のサービスの構成内容に応じて変わります。サービスごとに管理者に確認してください。最大値は32000です。