ページの先頭行へ戻る
Interstage Business Application Server アプリケーション開発ガイド
FUJITSU Software

6.2.3 非同期アプリケーション連携実行基盤のAPIの組込み

編集したアプリケーションに非同期アプリケーション連携実行基盤のAPIを組み込みます。
非同期アプリケーション連携実行基盤のJava APIの詳細は、“Interstage Business Application Server リファレンス”の“アプリケーションインタフェース(Java)”を参照してください。

組み込むAPIの種類を以下に示します。

フローを起動するAPI、および処理結果のメッセージを取得するAPIの詳細については、“2.6 業務処理開始アプリケーション”を参照してください。

非同期アプリケーション連携実行基盤のAPIを組み込む処理を以下に示します。[非同期アプリケーション連携実行基盤のAPI組み込み]ウィザードを利用します。

ポイント

ユーザ定義型クラス、またはユーザ定義型Exceptionを使用する場合、以下の実装方法があります。

  • 業務処理実行アプリケーションにユーザ定義型クラス、またはユーザ定義型Exceptionを実装する場合
    業務処理開始アプリケーションにユーザ定義型クラス、またはユーザ定義型Exceptionを組み込んでください。
    また、業務処理開始アプリケーションを実行する際、以下の設定を行ってください。

    • 業務処理開始アプリケーションが、Javaアプリケーションの場合
      環境変数CLASSPATHに、classファイルまたはjarファイルを設定してください。

    • 業務処理開始アプリケーションが、Webアプリケーションの場合
      IJServerのクラスパス設定に、classファイルまたはjarファイルを設定してください。
      以下のどちらかに設定します。

      Interstage管理コンソールの[システム] > [環境設定]タブ > [J2EEプロパティ]のクラスパス
      または、
      Interstage管理コンソールの[システム] > [ワークユニット] > “IJServer名” > [環境設定]タブ > [ワークユニット設定]のクラスパス

  • 業務処理実行アプリケーションにユーザ定義型クラス、またはユーザ定義型Exceptionを実装しない場合
    業務処理開始アプリケーションを実行する際、環境変数CLASSPATHに、classファイルまたはjarファイルを設定する必要はありません。

以下にフローの起動方法と処理結果のメッセージ取得方法について示します。
フロー起動の詳細については“2.6 業務処理開始アプリケーション”を参照してください。

■突き放し型フローの起動方法

業務処理開始アプリケーションの中で、突き放し型フロー起動APIであるcom.fujitsu.interstage.apfw.client.FlowClientクラスのsendMessageメソッドを用いることにより起動されます。メソッドの復帰値は業務データが格納されたcom.fujitsu.interstage.apfw.client.FlowMapオブジェクトになります。
sendMessageメソッドを使用する場合の手順は、以下のようになります。

突き放し型フローの処理結果のメッセージ取得方法

突き放し型のフロー起動の場合、フローの処理結果のメッセージを取得するパターンと取得しないパターンを選択できます。処理結果のメッセージを取得する場合、フロー定義で結果受信キューを定義する必要があります。処理結果のメッセージを取得しない場合は、結果受信キューを定義しないでください。突き放し型で処理結果のメッセージを取得するには、フローの実行が終了している必要があります。

処理結果のメッセージの取得は、com.fujitsu.interstage.apfw.client.FlowClientクラスのreceiveMessageメソッドを用いて行います。メソッドの復帰値はフローの処理結果のメッセージで、com.fujitsu.interstage.apfw.client.FlowMapオブジェクトになります。
receiveMessageメソッドのパラメタはコリレーションIDになります。コリレーションIDを指定すれば、sendMessageを実行したオブジェクト以外でもフローの処理結果のメッセージを取得することができます。

なお、メッセージのルーティング中にメッセージを複数の送信先へ振り分ける運用を行った場合、処理結果のメッセージが複数存在することがあります。
複数の送信先へメッセージを振り分ける運用を行う場合は、receiveMessageメソッドを複数回発行し、すべての処理結果のメッセージを取得してください。

注意

フローの実行が終了する前にreceiveMessageメソッドを実行した場合、復帰値はnullになります。また、結果受信キューが定義されていないフロー定義に対しreceiveMessageメソッドを実行した場合は、処理結果のメッセージ取得が定義されていないことを示す例外情報が返却されます。

待ち合わせ型フローの起動方法

業務処理開始アプリケーションの中で、待ち合わせ型フロー起動APIであるcom.fujitsu.interstage.apfw.client.FlowClientクラスのsendMessageSyncメソッドを用いることにより起動されます。メソッドの復帰値はフローの処理結果のメッセージで、com.fujitsu.interstage.apfw.client.FlowMapオブジェクトになります。sendMessageSyncメソッドを使用する場合の手順は、以下のようになります。

待ち合わせ型フローの処理結果のメッセージ取得方法

待ち合わせ型のフロー起動の場合、つねにフローの処理結果のメッセージを取得するため、フロー定義で結果受信キューを定義する必要があります。
処理結果のメッセージはフロー起動のsendMessageSyncメソッドの復帰値に格納されます。sendMessageSyncを発行時に指定したメソッドのタイムアウト時間までにメッセージが終点へ到達しない場合、タイムアウトになり、nullが返却されます。タイムアウトで処理結果のメッセージが取得できなかった場合、receiveMessageメソッドで任意のタイミングで処理結果のメッセージを取得することができます。

なお、メッセージのルーティング中にメッセージを複数の送信先へ振り分ける運用を行った場合、処理結果のメッセージが複数存在することがあります。
複数の送信先へメッセージを振り分ける運用を行う場合は、receiveMessageメソッドを複数回発行し、すべての処理結果のメッセージを取得してください。

注意

フローの実行が終了する前にreceiveMessageメソッドを実行した場合、復帰値はnullになります。また、結果受信キューを定義しないフロー定義に対し、sendMessageSyncメソッド、またはreceiveMessageメソッドを発行した場合、結果受信キューが定義されていないことを示す例外情報が返却され、メソッドの処理は終了します。

6.2.3.1 フローを起動するAPIの組込み

メッセージ発行から処理結果のメッセージ取得までを組み込む場合の手順を以下に示します。
非同期アプリケーション連携実行基盤のAPIを組み込む概要については、“6.2.3 非同期アプリケーション連携実行基盤のAPIの組込み”を参照してください。

  1. APIを組み込むJavaソースを[パッケージエクスプローラ]ビューから選択し、Javaエディタで開きます。

  2. メソッド内で組み込む箇所にカーソルを合わせ、コンテキストメニューから[非同期アプリケーション連携実行基盤のAPI組み込み] > [メッセージ発行/処理結果のメッセージ取得]を選択します。

  3. [非同期アプリケーション連携実行基盤のAPI組み込み]ウィザードが起動し、[フロー定義名選択]画面が表示されます。

  4. フロー定義名を選択します。

    • [ファイル]を選択した場合は、[フロー定義ファイル名]にフロー定義ファイル名をフルパスで入力します。

    • [プロジェクト]を選択した場合は、[プロジェクト]にプロジェクト名を入力します。

  5. [フロー定義名選択]画面で[プロジェクト]を選択し[次へ]をクリックすると[フロー定義ファイル(非同期アプリケーション連携実行基盤)一覧]画面が表示されます。
    [ファイル]を選択した場合は一覧画面の操作は省略されます。

  6. フロー定義ファイルを選択し、[次へ]をクリックします。

  7. [フロー定義ファイル一覧]画面で[次へ]をクリックした場合、または[フロー定義名選択]で[ファイル]を選択し[次へ]をクリックした場合に、[APIの設定]画面が表示されます。メッセージの発行に必要な情報を設定します。

  8. [データベースリソース定義名]にデータベースリソース定義名を入力します。

  9. フロー起動の種類を以下から選択します。

    • [突き放し型フロー起動]

    • [待ち合わせ型フロー起動]

  10. receiveMessageメソッドを組み込むかどうかを選択します。
    起動の種類で[突き放し型]を選択した場合だけ有効になります。
    また、突き放し型を指定した場合でも、結果受信キューが定義されていない場合は、[組み込む]を指定することはできません。

  11. 次の設定画面に進むか、ウィザードを終了するか選択します。

    • [完了]をクリックすると、ウィザードを終了します。
      [APIの設定]画面以降で、[完了]をクリックすることが可能です。

    • [次へ]をクリックすると、[業務データ一覧]画面が表示されます。

  12. 値を設定する業務データをチェックします。

    [次へ]をクリックすると、[プロパティ設定]画面が表示されます。

  13. メッセージ優先度を選択します。

    [高い]、[普通]、[低い]から選択します。

    業務処理開始アプリケーションからメッセージを発行するとき、送信するメッセージの内容により、優先度を設定することができます。優先度は、メッセージの中継点で変更されるまで発行時に設定された優先度で動作します。
    メッセージ優先度の詳細については、“4.3 フローの設計”の“■優先度制御機能”を参照してください。

  14. フローのタイムアウト時間を設定します。

    • [無制限]を選択した場合は、時間の設定は行いません。

    • [指定]を選択した場合には、[フローのタイムアウト時間]に数値を入力します。
      1~2147483647秒の範囲で設定できます。

    フローのタイムアウトの詳細については、“4.3 フローの設計”の“■フローのタイムアウト機能”を参照してください。

  15. sendMessageSyncメソッドのタイムアウト時間を設定します。
    1~3600秒の範囲で設定できます。

    sendMessageSyncメソッドのタイムアウト時間の詳細については、“4.3 フローの設計”の“■sendMessageSyncメソッドのタイムアウト”を参照してください。

    注意

    • 起動の種類で[待ち合わせ型]を指定した場合に有効になります。

    • フローのタイムアウトの判定は“Interstage Business Application Server チューニングガイド”の“非同期アプリケーション連携実行基盤編”の“フローのタイムアウト設定”で示すように、業務処理実行アプリケーションの呼出し前と呼出し後に行われます。常時、フローのタイムアウトの判定が行われないため、設定したフローのタイムアウト値で正確にフローのタイムアウトが発生しない場合があります。そのため、フローのタイムアウトを検出して、その処理結果のメッセージを業務処理開始アプリケーションへ通知するまでには業務処理実行アプリケーションの処理時間により若干のタイムラグがあることを考慮し、setTimeoutメソッドの設定値はフローのタイムアウトの設定値に、業務処理実行アプリケーションの想定される最大処理時間および若干の余裕値を加えた時間を設定してください。

  16. [完了]をクリックすると、カーソル位置にメッセージを発行するソースが挿入されます。
    ソースの「//TODO・・・」というコメントが記述された箇所の処理を、必要に応じて修正します。

    注意

    挿入されるソースのインデントは、カーソル行のインデントが基準になります。

    注意

    非同期アプリケーション連携実行基盤のAPIを利用するには、プロジェクトに実行基盤連携用のAPIのライブラリを追加する必要があります。
    手順については、“6.2.1.2 ライブラリの追加”を参照してください。

6.2.3.2 処理結果のメッセージ取得の組込み

処理結果のメッセージ取得を組み込む場合の手順を以下に示します。
非同期アプリケーション連携実行基盤のAPIを組み込む概要については、“6.2.3 非同期アプリケーション連携実行基盤のAPIの組込み”を参照してください。

  1. APIを組み込むJavaソースを[パッケージエクスプローラ]ビューから選択し、Javaエディタで開きます。

  2. メソッド内で組み込む箇所にカーソルを合わせ、コンテキストメニューから[非同期アプリケーション連携実行基盤のAPI組み込み] > [処理結果のメッセージ取得]を選択します。

  3. [非同期アプリケーション連携実行基盤のAPI組み込み]ウィザードが起動し、[フロー定義名選択]画面が表示されます。

  4. フロー定義名を選択します。
    選択方法は、メッセージ発行から処理結果のメッセージ取得までを組み込む場合に起動するウィザード画面と同様になります。詳細については、“6.2.3.1 フローを起動するAPIの組込み”を参照してください。

  5. [次へ]をクリックすると[APIの設定]画面が表示されます。処理結果のメッセージ取得に必要な情報を設定します。

  6. [データベースリソース定義名]にデータベースリソース定義名を入力します。
    入力方法は、メッセージ発行から処理結果のメッセージ取得までを組み込む場合に起動するウィザード画面と同様になります。詳細については、“6.2.3.1 フローを起動するAPIの組込み”を参照してください。

  7. ウィザードの[完了]をクリックすると、カーソル位置に処理結果のメッセージを取得するソースが挿入されます。

    注意

    挿入されるソースのインデントは、カーソル行のインデントが基準になります。
    receiveMessageの引数には、必ずメッセージ発行(sendMessage)を実行したコリレーションIDを指定してください。メッセージ発行を組み込む詳細については、“6.2.3.1 フローを起動するAPIの組込み”を参照してください。

    非同期アプリケーション連携実行基盤のAPIを利用するには、プロジェクトに実行基盤連携用のAPIのライブラリを追加する必要があります。実行基盤連携用のAPIのライブラリを追加する手順については、“6.2.1.2 ライブラリの追加”を参照してください。