CICS プログラム WMBCHAN1 では、以下に示す複数のコンテナーを伴うチャネルが想定されています。
プログラム WMBCHAN1 は別の 2 つのコンテナーも戻します。 その 1 つは mirrorTran で、WMBCHAN1 を実行しているミラー・トランザクションが含まれます。 もう 1 つは ChannelName で、チャネルの名前 (入力メッセージ・コレクションの名前) が含まれます。
以下の例では、メッセージ・フローに対する XML 入力を示します。
<Data> <Explanation1>These numbers are added together by CICS. Each number is a separate input container</Explanation1> <Numbers> <number>10</number> <number>20</number> <number>30</number> <number>40</number> <number>50</number> </Numbers> <Explanation2>CICS examines each string and returns the longest string in a response container</Explanation2> <Strings> <string>short data</string> <string>some other data, but not long enough</string> <string>A really long sentence that CICS can pick out and return in a container.</string> <string>data</string> <string>some more strings</string> </Strings> </Data>
入力チャネルはたとえば次のようになります。
コンテナー名 | 内容 |
---|---|
number1 | 10 |
number2 | 20 |
number3 | 30 |
number4 | 40 |
number5 | 50 |
string1 | 短いデータ |
string2 | その他のあまり長くないデータ |
string3 | CICS が選出してコンテナーに戻すことができる、非常に長いセンテンス |
string4 | データ |
string5 | 上記以外のストリング |
このサンプルは、2 種類のモードで作業するように設計されています。 1 つ目のモードは、メッセージ・コレクション・モードです。 メッセージ・コレクション・モードでは、このサンプルは、メッセージ・コレクションを構成して、複数の入力コンテナーを表すために使用する方法を例示します。
2 つ目のモードは、単一メッセージ・モードです。 CICSRequest ノードは、(メッセージ・コレクションではなく) 単一のメッセージから単一のコンテナーを作成できます。 単一メッセージ・モードでは、このサンプルは、メッセージ・コレクションのオーバーヘッドを生じさせずに、1 つのメッセージを 1 つのコンテナーとして CICS に送信する方法を例示します。
メッセージ・コレクションは、Compute ノードを使用して ESQL で構成されます。 Compute ノードでは、以下のタスクを実行します。
単一メッセージ・モードでは、単一の XML メッセージがフロー内に送信されます。 Compute ノードは、使用されるコンテナーとチャネルの名前を指定したメタデータをローカル環境内に設定します。 XML データは、ビット・ストリームになり、名前指定されたコンテナーの本体として送信されます。
これらのアクションをすべて行うために、Compute ノードには以下のステートメントがあります。
SINGLEMSG というチャネル名でメッセージを送信: SET OutputLocalEnvironment.Destination.CICS.RequestChannel.ChannelName='SINGLEMSG';
string1 というコンテナーに入れてメッセージ本体を送信: SET OutputLocalEnvironment.Destination.CICS.RequestChannel.SingleMessageContainerName='string1';
string1 を文字コンテナーとして送信: SET OutputLocalEnvironment.Destination.CICS.RequestChannel.Containers.string1='CHARACTER';
CICSRequest ノードに送信される入力のタイプに関係なく、チャネル・サポートの使用時には、出力は常にメッセージ・コレクションになります。
応答メッセージには、以下の 4 つの対象コンテナーが含まれます。
CICSRequest の「応答メッセージの構文解析」プロパティー・タブ上で、 テーブル内のエントリーは sum コンテナーを MRM ドメインにマップし、 入力数値コンテナーで使用されたのと同じメッセージ・セット (CICSIntegerMSet) も共にマップします。したがって、 sum コンテナーが戻される場合は、この構文解析情報にマップされます。
「応答メッセージの構文解析」タブ上のチェック・ボックスは、CICS から戻されるコンテナーのうちテーブル内で名前指定されていないものが、メッセージ・フォルダーではなく名前と値の属性として戻されるように設定されます。 コンテナー longestString、mirrorTran、および channelName はすべて追加の解釈を必要としない文字コンテナーなので、フローからの出力のための XML メッセージに直接入れることができます。
次の図は、CICS Transaction Server for z/OS Channel Connectivity サンプルの主なメッセージ・フローを示しています。
ノード・タイプ | ノード名 |
---|---|
MQInput | CICSCHANNEL_IN、CICSSingleMsg_IN |
Compute | CreateCollection、AddLENames、ProcessChannel、ProcessAbend |
CICSRequest | CICS 要求 |
MQOutput | CICSCHANNEL_OUT、CICSCHANNEL_ABEND |
CICS Transaction Server for z/OS Channel Connectivity サンプルで使用される各ノードの詳細については、WebSphere Message Broker の資料の『組み込みノード』を参照してください。
入力キューにいずれかのメッセージを書き込むと、そのメッセージは各ノードを通過します。 いずれかのキューが使用不可になっている場合には、メッセージはこのパスを通ることはできません。
次のセクションでは、メッセージの進む経路、および CICS Transaction Server for z/OS Channel Connectivity の主なメッセージ・フローのサンプルに含まれているノードの機能について説明します。
メッセージ・コレクション・モード: メッセージがキュー CICSCHANNEL_IN に送られる
単一メッセージ・モード: メッセージがキュー CICS_SINGLEMSG_IN に送られる
CICS Transaction Server for z/OS Channel Connectivity サンプルは、入力メッセージを読み取り、メッセージ・コレクションを構成し、CICS に接続して、チャネル・ベースのプログラムを駆動する方法を示します。 戻されるメッセージ・コレクションは、XML に変換されて、キューに出力されます。
詳しくは、WebSphere Message Broker 資料のCICS Transaction Server for z/OS に関する作業を参照してください。
これで、『CICS Transaction Server for z/OS Channel Connectivity サンプルのセットアップ』で説明されているセットアップ手順を実行できるようになりました。その後、そのサンプルを実行します。