CICS Transaction Server for z/OS Connectivity サンプルについて
CICS Transaction Server for z/OS Connectivity サンプルは、CICS に対して定義されているファイル・リソースからレコードを取り出すことを目的としたシナリオに基づくものです。
下の図は、メッセージ・フロー内で CICS Connectivity を使用するアーキテクチャーを示しています。

CICS Transaction Server for z/OS Connectivity サンプルでは、以下のタスクを示します。
- メッセージ・フローに CICSRequest ノードを取り込んで、CICS に接続し、ターゲット領域でプログラムを実行するタスク
- 入力メッセージからデータを取り込んで、CICS との間で送受信する COMMAREA の一部を形成するタスク
- CICS からの戻りコードを解釈するタスク
- CICS からの異常終了を処理するタスク
CICS DFH$AXCS プログラムは、ファイルを開き、参照し、そして閉じるための COMMAREA を受け取ります。 DFH$AXCS は、CICS
に備わっている FILEA サンプル・データを使用するプログラムです。 FILEA はサンプルのアカウント情報が含まれていて、6 文字のレコード番号で索引付けされたキー順データ・セット (KSDS) ファイルです。
DFH$AXCS は、このファイルにアクセスして、コマンド、ファイル・リソース名、レコード ID の入力引数を取り込みます。このコマンドはサンプルに、ファイルを開き、参照し、更新し、または閉じるかどうかを指示します。
ファイル・リソースは、実 KSDS データにマップするインストール済みのファイル・リソース定義を参照します。
レコード番号は、ファイルの読み取りまたは更新の際にキーとして使用されます。
サンプルでは、ファイルを開いて、レコードを参照し、そしてファイルを閉じるために、CICS に対して 3 つの呼び出しを行います。
入力メッセージ
CICS Transaction Server for z/OS Connectivity サンプルを実行するために、以下の 3 つの入力メッセージが用意されています。
- FILEA からレコード 111111 を取得するための XML メッセージ。
<?xml version="1.0"?>
<data>
<file>FILEA</file>
<record>111111</record>
</data>
- FILEA からレコード 222222 を取得するための XML メッセージ。
<?xml version="1.0"?>
<data>
<file>FILEA</file>
<record>222222</record>
</data>
- 存在しないファイルを開こうとする XML メッセージ。
<?xml version="1.0"?>
<data>
<file>FILEB</file>
<record></record>
</data>
出力メッセージ
CICS Transaction Server for z/OS Connectivity サンプルの実行中に、以下の 4 つの出力メッセージを受け取る可能性があります。
- FILEA から取得した 111111 レコードが XML に変換されます。
<?xml version="1.0" encoding="UTF-8"?>
<record>
<stat></stat>
<recid>111111</recid>
<name>C. BAKER</name>
<address>OTTAWA, ONTARIO</address>
<phone>51212003</phone>
<date>26 11 81</date>
<amount>$0011.00</amount>
<comment>*********</comment>
</record>
- FILEA から取得した 222222 レコードが XML に変換されます。
<?xml version="1.0" encoding="UTF-8"?>
<record>
<stat></stat>
<recid>222222</recid>
<name>DR E. GRIFFITHS</name>
<address>FRANKFURT, GERMANY</address>
<phone>20034151</phone>
<date>26 11 81</date>
<amount>$0022.00</amount>
<comment>*********</comment>
</record>
- 存在しないファイルを開こうとしたときに受け取る XML。
<?xml version="1.0" encoding="UTF-8"?>
<record>
<stat>File could not be found</stat>
</record>
- メッセージ・フローまたはサブフローのいずれかの CICSRequest ノードで異常終了が発生すると、CICSRequest ノードの Error ターミナルから異常終了コードが送信され、"Convert abend code to XML" Compute ノードに伝搬されます。その Compute ノードは、CICS 異常終了コードを組み込んだ XML メッセージを作成します (以下の例では、1234 が CICS 異常終了コードです)。
<?xml version="1.0" encoding="UTF-8"?>
<error>
<abendcode1234/abendcode>
</error>
次の図は、CICS Transaction Server for z/OS Connectivity の主なメッセージ・フローのサンプルを示しています。

ノード・タイプ |
ノード名 |
MQInput |
CICS_IN |
Compute |
Set Open Command、Convert FILE not found to XML、Convert FILEA record to XML、Convert abend code to XML |
CICSRequest |
Open FILEA |
Filter |
Check FILEA opened |
Subflow |
CICSConnectivityProcessFILEA |
MQOutput |
CICS_OUT、CICS_ERROR |
次の図は、CICS Transaction Server for z/OS Connectivity のメッセージ・サブフローのサンプル、CICSConnectivityProcessFILEA を示しています。
ノード・タイプ |
ノード名 |
Input |
Input |
Compute |
Set Browse Command、Set Close Command |
CICSRequest |
Browse FILEA、Close FILEA |
Output |
Output、Error |
CICS Transaction Server for z/OS Connectivity サンプルで使用される各ノードの詳細については、WebSphere Message Broker の資料の『組み込みノード』を参照してください。
FILEA メッセージの経路
入力キューにいずれかの FILEA メッセージを書き込むと、そのメッセージは各ノードを通過します。
いずれかのキューが使用不可になっている場合には、メッセージはこのパスを通ることはできません。
次のセクションでは、FILEA メッセージの進む経路、および主な CICS Transaction Server for z/OS Connectivity メッセージ・フローのサンプル内と
CICSConnectivityProcessFILEA メッセージ・サブフロー内のノードの機能について説明します。
- CICS_IN: "CICS_IN" MQInput ノードは、入力キューから入力メッセージを取得します。
- Set Open Command: "Set Open Command" Compute ノードは、CICS に送信する COMMAREA を作成するためのメッセージ・セット、タイプ、フォーマットを設定します。COMMAREA の構造は、dfh$axcs_cpybooks.cpy コピーブック・ファイルで定義されます。
このノードは、CICS DFH$AXCS プログラムで必要なオープン・パラメーター AXCS_COMMAND = 1 を設定します。さらにこのノードは、AXCS_FILE パラメーターを XML 入力メッセージで指定されている data.file 値に設定します。最後にこのノードは、XML 入力メッセージの data.record 値をローカル環境に格納し、その後の "Browse FILEA" CICSRequest ノードの呼び出しで使用できるようにします。
- Open FILEA: "Open FILEA" CICSRequest ノードは、CICS に接続して、FILEA リソースを開きます。『CICS Transaction Server for z/OS Connectivity サンプルのセットアップ』で説明されているように、CICSRequest ノードの「CICS サーバー」プロパティーが、CICSConnection 構成可能サービスを使用するように設定されます。「プログラム名」プロパティーと「Commarea の長さ」プロパティーが設定され、"Set Open Command" Compute ノードで作成された COMMAREA が CICS に送信されます。
CICS は DFH$AXCS プログラムを実行して、FILEA が開きます。 CICS から WebSphere Message Broker に返される COMMAREA の構造は、アウトバウンドの COMMAREA と同じ dfh$axcs_cpybooks.cpy になります。
- Check FILEA opened: "Check FILEA opened" Filter ノードは、CICS 戻りコードの検査を実行して、ホスト・システムでファイルが正常に開いたことを確認します。FILEA が正常に開いた場合、メッセージが CICSConnectivityProcessFILEA サブフローに伝搬されます。
- CICSConnectivityProcessFILEA サブフロー:
- Set Browse Command: "Set Browse Command" Compute ノードは、CICS DFH$AXCS プログラムで必要な「参照」パラメーター AXCS_COMMAND = 2 を設定します。さらに "Set Browse Command" Compute ノードは、ローカル環境から data.record 値を取得して AXCS_RIFLD パラメーターを設定し、FILEA からどのレコードを取得するのかを DFH$AXCS プログラムに通知します。
- Browse FILEA: "Browse FILEA" は、CICS が FILEA を参照してレコードを取得するように指示する CICSRequest ノードです。
- Set Close Command: "Set Close Command" Compute ノードは、「クローズ」パラメーター AXCS_COMMAND = 3 を設定します。
- Close FILEA: 最後の CICSRequest ノードである "Close FILEA" は、COMMAREA を CICS に送信して FILEA を閉じます。
- Convert FILEA record to XML: このメッセージ・フロー全体で各ノードを伝搬していく主なメッセージは、"Set Open Command" Compute ノードで作成され、CICS との間で送受信される COMMAREA です。この段階で特に重要になる主な項目は、"Browse FILEA" CICSRequest ノードから取り出されるデータです。"Convert FILEA record to XML" Compute ノードは、FILEA レコードの変換後のバイト・ストリームを組み込んだ XML メッセージを作成し、そのメッセージを XML 形式に変換します (『出力メッセージ』のセクションを参照してください)。
- CICS_OUT: "CICS_OUT" MQOutput ノードは、CICS_OUT 出力キューにメッセージを書き込みます。
- Convert abend code to XML: "Convert abend code to XML" Compute ノードは、エラー状態を処理します。メッセージ・フローとサブフローに含まれている各 CICSRequest ノードの Error ターミナルは、この Compute ノードに接続されています。この Compute ノードは、CICS 異常終了コードを組み込んだ XML メッセージを作成します (『出力メッセージ』のセクションを参照してください)。
- CICS_ERROR: "CICS_ERROR" MQOutput ノードは、CICS_ERROR 出力キューにメッセージを書き込みます。
FILEB メッセージの経路
FILEB メッセージの経路は、FILEA メッセージの経路と似ていますが、以下の点が異なります。
- Open FILEA: "Open FILEA" CICSRequest ノードは、FILEB (ホストの CICS 領域に存在しないファイル) を開こうとします。
- Check FILEA opened: "Check FILEA opened" Filter ノードは、戻りコードが 12 であることを確認します。メッセージは、"Convert FILE not found to XML" Compute ノードに直接伝搬します。
- Convert FILE not found to XML: "Convert FILE not found to XML" Compute ノードが変換するためのレコードが取り出されていないので、"Convert FILE not found to XML" Compute ノードは、通知メッセージを作成します。
このサンプルは、入力メッセージを読み取り、CICS に接続して、FILEA からレコードを取得する方法を示したサンプルです。レコード・データは、XML に変換されて、キューに出力されます。ファイルが見つからない場合、通知メッセージが作成されます。
詳しくは、WebSphere Message Broker 資料のCICS Transaction Server for z/OS に関する作業を参照してください。
これで、『CICS Transaction Server for z/OS Connectivity サンプルのセットアップ』で説明されているセットアップ手順を実行できるようになりました。その後、そのサンプルを実行します。
サンプルのホームに戻る