通信アダプタ用 Java CAPS 環境コンポーネントの構成

IRM ヘッダー

「IRM (IMS 要求メッセージ) ヘッダー」セクションには、次の表に示す最上位パラメータが含まれています。


注 –

IRM ヘッダーの詳細は、IBM の『IMS Connect Guide and Reference』(SC27-0946-00) を参照してください。


表 72 「Environment」 - 「IRM ヘッダー」設定

名前 

説明 

必要な値 

IRM_LEN

IRM 構造の長さを指定します。ユーザー定義出口の最小サイズは 36 です。HWSIMSO0 および HWSSMPL1 の IRM の最小の長さは 80 です。 

IRM 構造の有効な長さを示す整数。設定済みのデフォルトは 80 です。 

IRM_ID

完全なメッセージの受信後に実行されるユーザー出口の識別子 (文字列) を指定します。 

プログラムでは、呼び出されたルーチンから呼び出し側のルーチンに戻るために出口を使用します。1 つのルーチンに複数の出口ポイントを設定し、各種の条件に応じて終了することができます。 

IMS Connect が提供するユーザーメッセージ出口では、次の ID が使用されます。 

  • *IRMREQ* (HWSIMSO0 用)

  • *SAMPL1* (HWSSMPL1 用)

適切な識別子の文字列。設定済みのデフォルトは *SAMPL1* です。 

IRM_TIMER

ACK または RESUME TPIPE のあとのデータストアに対する受信の遅延時間を指定します。次の 3 つの定義済みタイマーオプションのいずれかを選択できます。 

  • 「.25 SEC」: 0.25 秒。

  • 「No_Wait」: タイマーが設定されず、遅延が発生しません。

  • 「Block」: 受信が無期限で待機します。この設定は、非同期出力機能の「自動」オプションをサポートするために使用されます。

    または、

    タイマーの値として、次のいずれかの 16 進値を入力できます。

  • X01 - X19: 0.01 秒から 0.25 秒まで (0.01 秒単位)。

  • X19 - X28: 0.25 秒から 1 秒まで (0.05 秒単位)。

  • X28 - X63: 1 秒から 60 秒まで (1 秒単位)。

  • X63 - X9E: 1 分から 70 分まで (1 分単位)。

3 つの定義済みオプションのいずれかを選択するか、有効な 16 進値を入力します。設定済みのデフォルトは「.25 SEC」です。 

注: 次の 16 進値は、ドロップダウンメニューの 3 つの定義済みオプションに対応しています。 

  • X00 = デフォルト (「.25 SEC」)。

  • XE9 = 「No_Wait」(タイマーが設定されない)。

  • XFF = 「Block」

IRM_SOCT

ソケット接続のタイプを指定します。 

  • 「Transaction」: トランザクションソケット。ソケット接続が 1 つのトランザクションを通して持続します。

  • 「Persistent」: 持続ソケット。ソケット接続が複数のトランザクションにまたがって持続します。

  • 「Non_Persistent」: 非持続ソケット。ソケット接続が 1 回の入力と 1 回の出力で構成される 1 回の交換の間だけ持続します。対話型トランザクションを実装している場合は、接続と切断が何度も行われるため、「Non_Persistent」を使用しないでください。

3 つのオプションのいずれかを選択します。設定済みのデフォルトは「Persistent」です。 


注 –

このプロパティーのデフォルトは、以前のバージョンから変更されました。


IRM_CLIENTID

IMS Connect が使用するクライアント ID (文字列) の名前を指定します。  

IMS アダプタは、シリアルモードとパラレルモードの両方をサポートします。シリアルモードは、クライアント ID を指定することでサポートされます。パラレルモードは、* の付いたクライアント ID を指定することでサポートされます。 


注 –

クライアント ID は、配備ごとに一意である必要があります。


IMS Connect が使用するクライアント ID。 

IRM_F1 (MFS MOD 名)

MFS MOD (メッセージ出力記述子) が出力の一部として返されるかどうかを指定します。 

MFS: ユーザーは MFS MOD 名を返すように要求します。 

NO_MFS: ユーザーは MFS MOD 名を返さないように要求します。 

「MFS」を指定すると、出力メッセージの最初の構造として、RMM (MOD メッセージの要求) が返されます。この構造には、*REQMOD* という ID と、その直後に MFS MOD 名が含まれています。詳細は、IBM の『IMS Connect Guide and Reference』(SC27-0946-00) の 59 ページを参照してください。 

「MFS」または「NO_MFS」。デフォルトは「NO_MFS」です。 

IRM_F2 (コミットモード)

コミットモードを指定します。 

  • 「COMMIT_MODE_0」 - 「commit-then-send」とも呼ばれます。

  • 「COMMIT_MODE_1」 - 「send-then-commit」とも呼ばれます。

    IRM ヘッダーの詳細は、IBM の『IMS Connect Guide and Reference』(SC27-0946-00) を参照してください。

「COMMIT_MODE_0」または「COMMIT_MODE_1」。デフォルトは「COMMIT_MODE_1」です。 


注 –

このプロパティーのデフォルトは、以前のバージョンから変更されました。


IRM_F3 (同期レベル)

コミットモード 1 の処理で、メッセージを ACK で確認するかどうかを指定します。コミットモード 0 の場合は、「IRM_F3」を「SYNC_LEVEL_CONFIRM」に設定する必要があります。 

  • 「SYNC_LEVEL_CONFIRM」: 「IRM_F2」パラメータのコミットモードが「COMMIT_MODE_0」に設定されている場合に使用する必要があります。

  • 「SYNC_LEVEL_NONE」: 同期レベルを設定しません。

「SYNC_LEVEL_CONFIRM」または「SYNC_LEVEL_NONE」。「IRM_F2」パラメータが「COMMIT_MODE_0」に設定されている場合は、同期レベルを「SYNC_LEVEL_CONFIRM」に設定する必要があります。デフォルトは「SYNC_LEVEL_NONE」です。 


注 –

このプロパティーのデフォルトは、以前のバージョンから変更されました。


IRM_F4 (ACK/NAK 応答)

IMS Connect に送信され、IMS に転送される ACK/NAK (肯定的/否定的確認) 応答の表現を指定します。ACK/NAK/DEALLOCATE/RESUME (A/N/D/R) の各値は、データ要素なしで IMS Connect に送信する必要があります。 

  • 「NO_ACK」: 確認または解放の要求がありません。IMS Connect に応答モードトランザクションまたは対話型トランザクションが送信される場合は、「IRM_F4」を「NO_ACK」に設定する必要があります。

  • 「ACK」: 肯定的な確認応答。同期レベルが COMFIRM (「SYNC_LEVEL_CONFIRM」) に設定されているクライアントに送信されたメッセージへの応答として使用されます。

  • 「DEALLOCATE」: 接続を解放します。対話が完了する前に対話を終了させるために使用されます。

  • 「NACK」: 否定的な確認応答。同期レベルが COMFIRM (「SYNC_LEVEL_CONFIRM」) に設定されているクライアントに送信されたメッセージへの応答として使用されます。

6 つのオプションのいずれかを選択します。設定済みのデフォルトは「NO_ACK」です。 

 
  • 「RESUME」: TPIPE を再開します。IMS からの非同期出力データを要求するために使用されます。「RESUME」は、トランザクションソケットに対して「COMMIT_MODE_0」として実行する必要があります。

  • 「SENDONLY」: 送信のみを行います。非応答トランザクションおよび IMS へのデータ送信に使用されます。「SENDONLY」は「COMMIT_MODE_0」として実行する必要があります。

 

IRM_F5 (フロー制御)

フロー制御プロパティーを指定します。 

デフォルト値の「No_Auto_Flow」を使用することをお勧めします。 


注 –

No_Auto_Flow」以外の値を使用する場合は、事前に Sun サポートにお問い合わせください。


  • 「Client_Translation」: トランザクションがクライアントによって実行されます。

  • 「Single_Message」: TPIPE 再開後の受信時に 1 つのメッセージだけを返します。

  • 「No_Auto_Flow」: メッセージの自動フローを行いません (意味は「No_Auto_Flow_Out」を参照)。

  • 「Auto_Flow_Out」: 自動メッセージフロー。現在のすべてのメッセージを一度に 1 つずつ返し、「IRM_TIMER」の値が示す時間だけ、次のメッセージのために最後の受信を待機します。「IRM_TIMER」を大きい値に設定してください。これは、出力専用のクライアントでのみ使用します。

  • 「No_Auto_Flow_Out」: メッセージの自動フローを行いません。現在のすべてのメッセージを一度に 1 つずつ返し、「IRM_TIMER」の値が示す時間だけ、次のメッセージの最後の受信を待機します。「IRM_TIMER」を小さい値に設定してください。これは、出力専用のクライアントでのみ使用します。この値は前述の「Auto_Flow_Out」に似ていますが、「IRM_TIMER」によって最後の受信が終了する点が異なります。

推奨される設定は、「No_Auto_Flow」(デフォルト) です。 

IRM_TRNCOD

デフォルトの IMS トランザクションコードを指定します。 

有効なトランザクションコード。 

IRM_TRNCOD_SRC

トランザクションコードの取得元を指定します。 

  • 「CFG」: トランザクションコードを設定ファイルから取得します。

  • 「MESSAGE」: トランザクションコードはメッセージの最初の 8 バイトです。

2 つのオプションのどちらかを選択します。設定済みのデフォルトは「CFG」です。 

IRM_DESTID

データストア名 (IMS 送信先 ID) を指定します。このフィールドは必須です。 

文字列セット。データベース名/IMS 送信先 ID (文字列)。 

IRM_LTERM

IMS LTERM オーバーライド名を指定します。このフィールドには、名前または空白を設定できます。 

適切な LTERM 名または空白。 

IRM_RACF_GRNAME

RACF グループ名を指定します。RACF を使用する場合は、クライアントが RACF グループ名を提供する必要があります。 

適切な RACF グループ名。 

IRM_RACF_USERID

RACF ユーザー ID を指定します。RACF を使用する場合は、クライアントが RACF ユーザー ID を提供する必要があります。 

有効な RACF ユーザー ID。 

IRM_RACF_PW

RACF PASSTICKET を指定します。RACF を使用する場合は、クライアントが RACF PASSTICKET を提供する必要があります。 

適切な RACF PASSTICKET。 

IRM_HEADER_ENCODING

IMS Connect に送信される IRM ヘッダープロパティーのエンコーディングを指定します。 

  • メッセージ本文が ASCII テキストの場合は、値を ISO-8859-1 に設定します。IMS Connect の *SAMPL1* ユーザー出口は、データを EBCDIC に変換します。

  • メッセージが EBCDIC テキストまたはバイナリデータの場合は、値を EBCDIC コードセット (cp500 など) に設定します。データ変換は行われません。

ASCII トランザクションコンテンツの場合は ISO-8859-1、EBCDIC トランザクションコンテンツの場合は EBCDIC コード (cp500 など)。 

SEND_DATA_ENCODING

IMS Connect に送信されるメッセージ本文に適用されるエンコーディング変換 (使用される場合) を指定します。 

  • 変換なしで IMS Connect にメッセージ本文を送信する場合、および IRM ヘッダーとメッセージ本文が ASCII 形式のときに *SAMPL1* ユーザー出口を使用する場合は、「NO TRANSLATION」を設定します。

  • IMS Connect に送信する前にメッセージ本文を ASCII から EBCDIC に変換する場合は、EBCDIC コード (cp500 など) を設定します。

  • コンテンツが日本語などの 2 バイト文字セットである場合は、その言語の EBCDIC コードページ (たとえば、日本語の場合は cp390) を設定します。

「NO TRANSLATION」または次に示す適切なコードページ。 

  • *SAMPL1* ユーザー出口を使用している場合、および IRM ヘッダーとメッセージコンテンツが ASCII 形式である場合は、「NO TRANSLATION」を入力します。

  • IMS Connect に送信する前に ASCII メッセージコンテンツを EBCDIC に変換する場合は、EBCDIC コード (cp500 など) を入力します。

  • 2 バイト文字セットの場合は、その言語の適切なコードページ (たとえば、日本語の場合は cp390) を入力します。

REPLY_DATA_ENCODING

IMS Connect から受信するメッセージ本文のエンコーディングを指定します。 

メッセージテキストが ASCII の場合は、ISO-8859-1 に設定します。 

  • 返信メッセージが EBCDIC の場合、コンテンツの変換が不要な場合、またはその両方の場合は、EBCDIC コード (cp500 など) に設定します。

  • コンテンツセットが日本語などの 2 バイト文字である場合は、その言語の適切な EBCDIC コードページ (たとえば、日本語の場合は cp390) を設定します。

適切なコードページを次に示します。 

ASCII 変換の場合は、ISO-8859-1 を入力します。 

  • EBCDIC トランザクションの場合は、EBCDIC コード (cp500 など) を入力します。

  • 2 バイト文字セットの場合は、その言語の適切なコードページ (たとえば、日本語の場合は cp390) を入力します。

IMS アダプタのクライアント ID の設定

次のトピックでは、IMS アダプタのクライアント ID の設定について説明します。

ProcedureIMS アダプタを並列処理用に設定する

このモードでは、複数の要求を同時に処理するように IMS アダプタが設定されます (並列モード)。

  1. 「IRM_Header」セクションのクライアント ID を、末尾に 1 つ以上のアスタリスクを含む文字列 (たとえば、「SUN*」) に設定します。

    アダプタは、ランダムに生成した英数文字を使用してクライアント ID 文字列の残りを生成します。クライアント ID の長さは 8 です。静的なクライアント ID を使用し、使用している IMS 外部システムが同じ IMS Connect に接続するように設定されている場合は、クライアント ID が 配備間で一意である必要があります。

  2. 「IRM_Header」セクションの「IRM_SOCT」を「Persistent」に設定します。

    これによって、アダプタは物理接続を保持し、接続プールをリソースアダプタとして使用できるようになります。このパラメータを「Persistent」に設定せず、「*」による動的生成を使用するようにクライアント ID を設定した場合は、プロトコルエラーが発生します。

    並列モードでは、「IRM_SOCT」のほかのタイプを使用できません。前述のように、「Persistent」を使用しないとプロトコルエラーが発生します。

    確認応答の表現 (「IRM_F4」の ACK/NAK 応答) については、前述のパラメータに加えて次の追加パラメータを設定する必要があります。

    1. 「IRM_F2」(コミットモード) を「COMMIT_MODE_0」に設定します。

    2. 「IRM_F3」(同期レベル) を「SYNC_LEVEL_CONFIRM」に設定します。

ProcedureIMS アダプタを直列処理用に設定する

このモードでは、一度に 1 つの要求を処理するように IMS アダプタが設定されます。複数の要求が IMS アダプタの内部ロックメカニズムによって直列化されます。

  1. 「IRM_Header」セクションのクライアント ID を、アスタリスクを含まない文字列 (たとえば、「SUNIMS」) に設定します。

    アダプタは、ランダムに生成した英数文字を使用してクライアント ID 文字列の残りを生成します。クライアント ID の長さは 8 です。静的なクライアント ID を使用し、使用している IMS 外部システムが同じ IMS Connect に接続するように設定されている場合は、クライアント ID が 配備間で一意である必要があります。

    確認応答の表現 (「IRM_F4」の ACK/NAK 応答) については、前述のパラメータに加えて次の追加パラメータを設定する必要があります。

    1. 「IRM_SOCT」を「Transaction」に設定します。

    2. 「IRM_F2」(コミットモード) を「COMMIT_MODE_0」に設定します。

    3. 「IRM_F3」(同期レベル) を「SYNC_LEVEL_CONFIRM」に設定します。

クライアント ID を複製する

IMS Connect の対話を特定のポートに送信すると、そのポートですでに使用されているクライアント ID を使用したときにエラーが発生します。これは、ソケットのタイムアウトによって終了した別の対話で使用されていたのと同じクライアント ID との対話を実行しているときに発生します。IMS Connect がソケットのタイムアウトを受信した元の対話に関して IMS からの応答を待機している間にこの新しい対話を受信すると、クライアント ID の重複エラーが発生する可能性があります。

また、元の対話で使用されていたソケットのタイムアウトが「IRM_TIMER」で設定されたタイムアウトまたは HWSCFGxx メンバーで設定される IMS Connect のデフォルトのタイムアウトよりも小さい値に設定された場合にも発生する可能性があります。IMS Connect は、ソケットのタイムアウトによって元のソケットが切断されたことを、そのソケットに対する読み取りを次に実行するまで認識しません。つまり、IMS Connect は元のソケットがすでにクライアント側から切断されていても、そのソケットがまだアクティブであるとみなします。このような状況になった場合は、IMS Connect 側で「IRM_TIMER」が時間切れになるまで、DUPECLNT エラーを受信します。


注 –

クライアント ID とタイマーの問題の詳細は、『IMS Connectivity in the On Demand Environment - A Practical Guide to IMS Connectivity』(IBM Publication SG24-6794-00) を参照してください。