目次 前 次 PDF


CICS Runtimeのアプリケーション・リスト・トランザクションとの統合

CICS Runtimeのアプリケーション・リスト・トランザクションとの統合
ART for CICSでは、アプリケーション・リスト・トランザクション(ALST)を使用して複数のセッションを管理できます。これはユーザー・プラグインと統合され、アプリケーション・リストを取得および表示できます。
ユーザー・プラグインとの統合
ALSTトランザクションが同期トランザクション・サーバー(ARTSTRN/ARTSTR1)によって実行される場合、ユーザー・プラグインを呼び出してアプリケーション・リストが取得されます。
ユーザー・プラグインについて、次のことを確認します。
libkixauthalst.soという名前の動的共有ライブラリとして構築されています。
ARTKIX__GET_USER_ALSTと呼ばれる関数エントリを提供します。詳細は、「ARTKIX__GET_USER_ALST」を参照してください。
ARTKIX__GET_USER_ALST
形式
int ARTKIX__GET_USER_ALST(ALST_INOUT_PARAM * alst)
説明
入力の場合、ARTKIX__GET_USER_ALSTの呼出し時に、ART for CICSはVERSIONUSERIDおよびLISTSZフィールドに入力し、RESERVEDフィールドを0に設定します。
出力の場合、ARTKIX__GET_USER_ALSTLISTSZを更新し、APPLISTに入力します。
 
LISTSZを入力として使用する場合、アプリケーション・リストに含めることができる最大アプリケーション数を示すAPPLISTの長さが指定されます。このフィールドの直後のアドレスにアプリケーション・リストを入力します。例については、リスト7-1を参照してください。この例では、アプリケーション・リストに最大128アプリケーションを含めることができることを示しています。
LISTSZを出力として使用する場合、ARTKIX__GET_USER_ALSTは実際に使用されるアプリケーションの数を返します。
認可対象のアプリケーションのリスト。配列長はLISTSZフィールドで指定します。各配列項目は、7つのサブフィールドで構成されます。
transid (4バイト): アプリケーションのトランザクションID。これはART for CICSの有効なトランザクションである必要があります。
sessid (空白でない8バイト): セッションID。ユーザーごとに一意である必要があります。
fnkey (1バイト): 将来使用するために予約済。アプリケーションに関連付けられているファンクション・キーの値。この値にはASCIIエンコーディングが使用されます。
label (35バイト): アプリケーションのビジネス名。
startupACLName (8バイト): 起動ACL CICSプログラム名。
termACLName (8バイト): 将来使用するために予約済。
reserved (3バイト): 2進数のゼロにする必要があります。
リスト7-1 ALST_INOUT_PRARMのC定義
typedef struct {
char transid[4];
char sessid[8];
char fnkey;
char label[35];
char startupACLName[8];
char termACLName[8];
char reserved[3];
} ALST_APPLICATION;
 
// Input & Output
typedef struct {
int version;
int reserved;
char userid[8];
int listsz;
ALST_APPLICATION applst[128];
} ALST_INOUT_PARAM;
 
リターン・コード
リターン・コード: 0は成功。-1は失敗。
DFHALSTと起動ACL間のCOMMAREA
リスト7-2はサンプルです。
リスト7-2 COMMAREAの例
01 COMM-ACL.
05 ACL-USERID PIC X(8).
05 ACL-TRANSID PIC X(4).
05 ACL-RETCODE PIC s9(8) comp-5.
05 ACL-RETMSG PIC X(1920).
05 ACL-MSGLEN PIC s9(8) comp-5.
05 FILLER PIC X(60).
 
入力
DFHALST LINK ACLの場合、ALSTは次のフィールドに入力します。
ACL-USERID
ユーザーのUSERID
ACL-TRANSID
起動するトランザクションID。
出力
ALSTへのACL RETURNの場合、ACLは次のフィールドに入力します。
ACL-RETCODE
リターン・コード(0は成功、-1は失敗)。
ACL-RETMSG
ACL-RETCODE=0の場合、ACL-RETMSGにはトランザクションの呼出し方法を示す初期入力文字列が含まれます(入力文字列は、実際の3270データ・ストリームではなく、ユーザーが3270ターミナルに入力する正確な入力です。ART for CICSは、入力文字列から3270データ・ストリームを構成します)。このフィールドのサイズは1920バイトです(必要に応じて後続の空白が入力されます)。
ACL-RETCODE=-1の場合、ACL-RETMSGには、ALSTがターミナルに表示する詳細なエラー・メッセージが含まれます。エラー・メッセージの長さは160バイトです(必要に応じて後続の空白が入力されます)。
ACL-MSGLEN
初期文字列ACL-RETMSGの長さ。
値が0の場合、ART for CICSはACL-RETMSGから後続の空白/2進数のゼロを削除します。
値が0以外の場合、この値はメッセージのサイズであり(1920以下の正の整数)、ART for CICSはこのサイズを使用してトランザクションを呼び出します。
FILLER
将来使用するために予約された60文字。2進数のゼロにする必要があります。
起動ACL用API
ARTKIX__SET_TRAN_INIT_STR
形式
int ARTKIX__SET_TRAN_INIT_STR (char* pbuf, int size, char * aid)
説明
3270空白画面に入力したようにトランザクション入力文字列を設定します(この入力文字列はARTKIX__SET_TRAN_INIT_STRによって3270データ・ストリームに変換されます)。
呼出しの後にRECEIVEコマンドを発行した場合、RECEIVEで入力データを取得できます。RECEIVEコマンドを発行しない場合、データ・ストリームはトランザクションがARTTCPに戻されたときに破棄されます。
pbuf
入力。トランザクションの開始に使用される入力文字列です。EBCDIC以外のASCIIでエンコードする必要があります。
たとえば、3270コンソールでXXXX abcd1234と入力する場合、XXXXは開始するトランザクションID、abcd1234は入力メッセージです。したがって、XXXX abcd1234pbufとともに渡す必要があります。
size
入力。入力文字列の長さです。
aid
入力。アクションIDです。EBCDIC以外のASCIIでエンコードする必要があります。aidNULLの場合、デフォルトでaid DFHENTERが使用されます。
リターン・コード
リターン・コード: 0は成功。-1は失敗。
ARTKIX__GET_TRAN_OUT_STR
形式
int ARTKIX__GET_TRAN_OUT_STR(char* pbuf, int size)
説明
(トランザクション内の)最後のSEND動詞が送信する出力データ文字列を取得します。この出力文字列は、ARTKIX__GET_TRAN_OUT_STRによって3270データ・ストリームに分解されるため、ユーザーが分解する必要はありません。
pbuf
出力。3270ターミナルに表示されるデータ文字列と同様の出力データ文字列を返します。
size
入力。pbufが指すバッファの最大長です。
リターン・コード
リターン・コード: 受信したバッファの長さが返された場合、成功を意味します。-1が返された場合は失敗を意味します。
関連項目
『Oracle Tuxedo Application Runtime for CICSユーザー・ガイド』複数セッション管理を使用した実装に関する項

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved