統合オブジェクト・チェーニング

統合オブジェクト・チェーニングによって複雑なアプリケーションを複数のタスクに分割できます。各タスクは 1 つの統合オブジェクトによって表現されます。チェーニングを使用すると、複数の統合オブジェクトを順々に実行することができます。各統合オブジェクトの入力データは、直前の統合オブジェクトに依存させることができます。統合オブジェクトのチェーニングの概要については、「統合オブジェクトの使用」を参照してください。統合オブジェクトのチェーニングはマクロのチェーニングとはまったく異なり、チェーン内の各統合オブジェクトは、チェーン内の次の統合オブジェクトが制御を取る前に実行を完了します。マクロのチェーニングは、PlayMacro アクションを使用し、現在のマクロ (PlayMacro アクションが発生しているマクロ) を終了させ、ターゲット・マクロの指定されたマクロ画面の処理を開始します。呼び出し元のマクロに戻ることはありません。マクロのチェーニングについて詳しくは、「マクロ・アクション」を参照してください。

統合オブジェクトのチェーニングは、以下のために によって処理されます。
  • 統合オブジェクトまたは EJB Access Beans を使用する &sprod; アプリケーション
  • Web コンテナーで統合オブジェクトまたは対応する EJB Access Beans を使用するカスタム JSP またはサーブレット
このような場合は、doHPTransaction 実行メソッドを使用します。
チェーニングを使用可能にするプロパティーを取得し、次のように設定する必要があります。
  • Web コンテナーの外側で実行される EJB Access Beans
  • 統合オブジェクトを使用するカスタム EJB
このような場合は、processRequest 実行メソッドを使用します。

doHPTransaction および processRequest メソッドについては、統合オブジェクトのメソッドを参照してください。

ZIETrans で提供されるメソッドを使用すると、チェーン内の最初の統合オブジェクトから統合オブジェクト・チェーンの接続を表現するキーを抽出したり、チェーン内の後続の統合オブジェクトのプロパティーを設定することができます。また、Web サービスのチェーニングを使用可能にするプロパティーも取得して設定する必要があります。

processRequest メソッドを使用して統合オブジェクト・チェーンを構築するには、次の手順を実行します。
  1. コンストラクターを呼び出して、チェーン内の最初の統合オブジェクトのインスタンスを生成します。
  2. 統合オブジェクトのインスタンスのメソッドを呼び出します。必要に応じて、入力変数のプロパティーを設定するメソッドを呼び出します。setter メソッドの命名規則は次のとおりです。
    IOChain1.setXyz(String)
    ここで、Xyz は入力変数の名前です。
  3. 次のメソッドを使用して統合オブジェクトを呼び出し、所定のタスク (例えば、マクロの実行) を実行します。
    IOChain1.processRequest()
  4. 次のメソッドを呼び出して、エラーがないか検査します。
    IOChain1.getHPubErrorOccurred()
  5. 統合オブジェクト・チェーンの接続を表現するキーを抽出して保管します。
    String myLinkkey = IOChain1.getHPubLinkKey();
  6. コンストラクターを呼び出して、チェーン内の次の統合オブジェクトのインスタンスを生成します。
  7. このチェーニングされた接続のキーを設定します。
    IOChain2.setHPubLinkKey(myLinkkey);
  8. この統合オブジェクトのインスタンスのメソッドを呼び出します。必要に応じて、入力変数のプロパティーを設定するメソッドを呼び出します。setter メソッドの命名規則は次のとおりです。
    IOChain2.setXyz(String)
    ここで、Xyz は入力変数の名前です。
  9. 次のメソッドを使用してこの統合オブジェクトを呼び出し、所定のタスクを実行します。
    IOChain2.processRequest()
  10. 次のメソッドを呼び出して、エラーがないか検査します。
    IOChain2.getHPubErrorOccurred()

チェーン内のすべての後続の統合オブジェクトについて、ステップ 6 から 10 を繰り返します。

ZIETrans‐チェーン Web サービス

&prodname のチェーニングされた Web サービスを統合オブジェクトで使用する場合には、特別な考慮事項があります。チェーニングされた統合オブジェクトを &prodname サービス内で使用する場合は、ステートフルな Web サービスを作成します。&prodnae; ランタイムは、同じ Web サービス内にあるチェーニングされた統合オブジェクトの呼び出しと呼び出しの間でデータを保管しません。しかし、 &prodnae; ランタイムでは、チェーン内の次の Web サービスの呼び出しを、その ZIETrans ランタイムの同じインスタンスに戻るようにルーティングする必要があるため、チェーン内の次の統合オブジェクトは、同じ Telnet 接続を使用します。

ステートフルな ZIETrans サービスをクラスターに展開したい場合は、以下のいずれかの方法を使用して、そのように展開することができます。
  1. EJB Access Bean から ZIETrans Web サービスを作成します。ZIETrans EJB はステートフル・セッション EJB であるため、EJB クライアントは同じ ZIETrans EJB インスタンスと常に対話します。
  2. Web サービスの有効範囲がセッションになるように構成し (開発環境で行うか、または展開後に行います)、Web サービス・クライアント・ランタイムで SESSION_MAINTAIN_PROPERTY を使用して複数の呼び出し間でセッションを維持することによって、HTTP セッションの親和性を確保します。