リファレンス・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを入手 - 新規ウィンドウ
コンテンツはここから始まります

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

ART for CICSでは、アプリケーション・リスト・トランザクション(ALST)を使用して複数のセッションを管理できます。これはユーザー・プラグインと統合され、アプリケーション・リストを取得および表示できるようにします。

 


ユーザー・プラグインとの統合

ALSTトランザクションが同期トランザクション・サーバー(ARTSTRN/ARTSTR1)によって実行される場合、ユーザー・プラグインを呼び出してアプリケーション・リストが取得されます。

ユーザー・プラグインについて、次のことを確認します

 


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に入力します。

表7-1 入力/出力パラメータ
フィールド
I/Oタイプ
説明
VERSION
Integer、
4バイト
入力
バージョン番号。現在のバージョンは1です。
RESERVED
Integer、
4バイト
入力
予約済フィールド。バイナリ・ゼロにする必要があります。
USERID
Char、
8バイト
入力
このアプリケーション・リストを取得する必要があるユーザーID。
LISTSZ
Integer、
4バイト
入力および出力
LISTSZを入力として使用する場合、アプリケーション・リストに含めることができる最大アプリケーション数を示すAPPLISTの長さが指定されます。このフィールドの直後のアドレスにアプリケーション・リストを入力します。例については、リスト7-1を参照してください。この例では、アプリケーション・リストに最大128アプリケーションを含めることができることを示しています。
LISTSZを出力として使用する場合、ARTKIX__GET_USER_ALSTは実際に使用されるアプリケーションの数を戻します。
APPLIST
アプリケーション配列
出力
許可されるアプリケーションのリスト。配列長はLISTSZフィールドで指定します。各配列項目は、7つのサブフィールドで構成されます。
  • transid (4バイト): アプリケーションのトランザクションID。これはART for CICSの有効なトランザクションである必要があります。
  • sessid (空白でない8バイト): セッションID。ユーザーごとに一意である必要があります。
  • fnkey (1バイト): 将来使用するために予約済。アプリケーションに関連付けられているファンクション・キーの値。値にはASCIIエンコーディングが使用されます。
  • label (35バイト): アプリケーションのビジネス名。
  • startupACLName (8バイト): 起動ACL CICSプログラム名。
  • termACLName (8バイト): 将来使用するために予約済。
  • reserved (3バイト): バイナリ・ゼロにする必要があります。

リスト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から後続の空白/バイナリ・ゼロを削除します。 値が0以外の場合、この値はメッセージのサイズであり(1920以下の正の整数)、ART for CICSはこのサイズを使用してトランザクションを呼び出します。

FILLER

将来使用するために予約された60文字。バイナリ・ゼロである必要があります。

 


起動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ユーザー・ガイド』「複数セッション管理を使用した実装」


  先頭に戻る       前  次