23.7. サンプル


23.7.1. Commarea の使用

次のサンプルは、COMMAREA を使用して CICS サーバー上でプログラムを実行するルートを設定する方法を示しています。COMMAREA サイズは CICS_COMM_AREA_SIZE ヘッダーで定義する必要があり、COMMAREA 入力データは Camel Exchange 本体で定義されます。

注記

サーバーに送信されるすべての情報と、サーバーから返されるすべての情報を格納するのに十分な大きさの COMMAREA を作成する必要があります。

//.....
import static com.redhat.camel.component.cics.CICSConstants.CICS_PROGRAM_NAME_HEADER;
import static com.redhat.camel.component.cics.CICSConstants.CICS_COMM_AREA_SIZE_HEADER;
//....

from("direct:run").
   setHeader(CICS_PROGRAM_NAME_HEADER, "ECIREADY").
   setHeader(CICS_COMM_AREA_SIZE_HEADER, 18).
   setBody(constant("My input data")).
   to("cics:eci/commarea?host=192.168.0.23&port=2006&protocol=tcp&userId=foo&password=bar");

CICS プログラム呼び出しの結果は、次のように Camel Exchange にマッピングされます。

  • 戻りコードの数値は CICS_RETURN_CODE ヘッダーに格納されます。
  • COMMAREA 出力データは Camel Exchange Body に保存されます。

23.7.2. 単一の入力コンテナーでチャネルを使用する

次のサンプルは、単一のコンテナーを持つチャネルを使用して CICS プログラムを実行する方法を示しています。チャネル名とコンテナー名はヘッダーから取得され、コンテナー値は本文から取得されます。

//.....
import static com.redhat.camel.component.cics.CICSConstants.CICS_PROGRAM_NAME_HEADER;
import static com.redhat.camel.component.cics.CICSConstants.CICS_CHANNEL_NAME_HEADER;
import static com.redhat.camel.component.cics.CICSConstants.CICS_CONTAINER_NAME_HEADER;

//...
from("direct:run").
  setHeader(CICS_PROGRAM_NAME_HEADER, "EC03").
  setHeader(CICS_CHANNEL_NAME_HEADER, "SAMPLECHANNEL").
  setHeader(CICS_CONTAINER_NAME_HEADER, "INPUTDATA").
  setBody(constant("My input data")).
  to("cics:eci/channel?host=192.168.0.23&port=2006&protocol=tcp&userId=foo&password=bar");

返されるコンテナーは java.util.Map<String,Object> に格納されます。キーはコンテナー名、値はコンテナーの出力データです。

23.7.3. 複数の入力コンテナーを持つチャネルの使用

複数のコンテナーを入力として受け取る CICS プログラムを実行する必要がある場合は、キーがコンテナー名で値が入力データである java.util.Map<String,Object> を作成できます。この場合、CICS_CONTAINER_NAME ヘッダーは無視されます。

//.....
import static com.redhat.camel.component.cics.CICSConstants.CICS_PROGRAM_NAME_HEADER;
import static com.redhat.camel.component.cics.CICSConstants.CICS_CHANNEL_NAME_HEADER;

//...
from("direct:run").
  setHeader(CICS_PROGRAM_NAME_HEADER, "EC03").
  setHeader(CICS_CHANNEL_NAME_HEADER, "SAMPLECHANNEL").
  process(exchange->{
    byte[] thirdContainerData = HexFormat.of().parseHex("e04fd020ea3a6910a2d808002b30309d");
    Map<String,Object> containers = Map.of(
           "firstContainerName", "firstContainerData",
           "secondContainerName", "secondContainerData",
           "thirdContainerName", thirdContainerData
    );
    exchange.getMessage().setBody(containers);
  }).
  to("cics:eci/channel?host=192.168.0.23&port=2006&protocol=tcp&userId=foo&password=bar");
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る