FeaturesPluginsDocs & SupportCommunityPartners

BPEL デザイナー開発者ガイド: ハンドラの使用

目次

このページの内容は NetBeans 6.0 IDE が対象です

BPEL デザイナー開発者ガイド

ハンドラの使用

次の各節で、表示の順に説明を行います。

  • 特定のハンドラを使用する状況。
  • BPEL デザイナーのコンテキスト内での要素の使用。

BPEL デザイナーのこのリリースでは、フォルトハンドラとイベントハンドラを BPEL プロセスに追加できます。補償ハンドラと終了ハンドラはサポートされていません。サポートされている BPEL 2.0 言語の構文と関連する制限事項については、『BPEL サービスエンジンユーザーガイド』を参照してください。

フォルトハンドラの使用


いつ使用するか

BPEL 言語では、フォルトハンドラを使用することにより、例外をキャッチして管理できます。たとえば、Web サービスが予期されたのと異なるデータを返した場合、例外が発生します。フォルトが処理されなければ、BPEL プロセス全体が障害を起こした状態になる場合もあります。したがって、プロセス全体がフォルトにならないよう、フォルトハンドラを追加して特定のスコープ内の例外をキャッチし、管理することができます。

それぞれのフォルトハンドラには、エラーが起きた場合に実行されるアクティビティーが 1 つ含まれています。たとえば、エラーが発生した場合に、パートナーサービスに通知されます。フォルトハンドラは、プロセス全体に追加するか、個々のスコープ要素に追加できます。

1 つの フォルトハンドラコンテナを、プロセス要素またはスコープ要素に付加できます。フォルトハンドラコンテナの内部で、特定の種類のフォルトをキャッチするよう構成した、いくつかのキャッチアクティビティーを作成できます。また、特定のハンドラによってキャッチされないすべての例外をキャッチするために、1 つのすべてのキャッチハンドラ要素を作成することもできます。

使用

  1. スコープ要素またはプロセス要素を右クリックし、「追加」>「フォルトハンドラ」を選択します。
    空のコンテナ要素が表示されます。
  2. フォルトハンドラコンテナを右クリックし、「追加」>「キャッチ」または「追加」>「すべてをキャッチ」を選択します。
    特定のキャッチ要素を、いくつでもフォルトハンドラグループに追加できます。すべてをキャッチ要素は、1 つのフォルトハンドラコンテナにつき 1 つだけ追加できます。
  3. フォルトが発生したときに実行するアクティビティーをキャッチ要素またはすべてをキャッチ要素に追加します。

キャッチ要素

この要素は、特定の種類のフォルトを捕捉して処理するのに使用します。

キャッチ要素は、適切なフォルトハンドラコンテナ要素内で使用します。

キャッチ要素のプロパティー

キャッチ要素のプロパティーは、「プロパティー」ウィンドウで定義します。図上でキャッチ要素を右クリックして、「プロパティー」を選択することもできます。次のプロパティーがあります。

  • フォルト名 。フォルトの QName をフォルトの一覧から選択します。一覧には WSDL ファイル内で定義されたフォルトが含まれています。
  • フォルト変数名 。フォルトメッセージを格納する既存の BPEL 変数の名前を指定します。
  • フォルト変数型。変数の型を指定します。

Catch プロパティーウィンドウ

すべてをキャッチ要素

すべてをキャッチ要素は、対応するキャッチ要素ではキャッチされないすべてのフォルトを捕捉して処理するのに使用します。

すべてをキャッチ要素は、1 つ以上のキャッチ要素とともにフォルトハンドラウィンドウ内で使用します。1 つ以上のキャッチ要素とともにフォルトハンドラコンテナ要素内で定義します。

すべてをキャッチ要素には、プロパティーがありません。動作が事前定義されているので、プロパティーの設定は必要ありません。

ページの先頭へ


イベントハンドラの使用



いつ使用するか

個々のスコープだけでなく BPEL プロセス全体を、対応するイベントが発生した場合に同時に呼び出される、一連のイベントハンドラに関連付けることができます。イベントハンドラ内で実行されるアクションは、シーケンスやフローなど、どのようなタイプのアクティビティーにもなります。イベントハンドラの直接の子はスコープだけなので、パレットからイベントハンドラに要素をドラッグすると、その要素は自動的にスコープにラップされます。

次の 2 種類のイベントがあります。

  • 受信メッセージ。これは、WSDL での要求/応答または単方向操作に対応します。これらのメッセージはイベント時要素を使用して指定します。
  • アラーム、またはタイマー。これは、指定された時間が経過したあと、または締切期限に到達したときにアクティビティーを起動します。時間は、 アラーム時 要素を使用して指定されます。

使用

  1. プロセス要素またはどれでもスコープを右クリックして、「イベントハンドラを追加」アクションを呼び出します。この操作では、特定のイベントハンドラは追加されません。特定のイベントハンドラの追加先にすることができるコンテナ要素が追加されるだけです。
  2. イベントハンドラコンテナを追加したら、イベントハンドラ要素を右クリックして、イベント時分岐またはアラーム時分岐を追加します。特定のイベント時要素またはアラーム時要素を、いくつでもイベントハンドラグループに追加できます。

イベント時要素

イベント時要素は、指定されたイベントがメッセージの到着を待つことを示します。このタグと属性の解釈は、受信アクティビティーとよく似ています。

使用

  1. イベントハンドラコンテナを右クリックし、「追加」>「イベント時」を選択します。
  2. イベント時要素をダブルクリックすると、プロパティーエディタが開き、次のものを指定したり、変更したりできます。
    • パートナーリンク
    • イベント時要素に関連付けられた操作
    • イベント変数

    OnEvent プロパティーエディタ

  3. イベント時要素を右クリックして「プロパティー」を選択すると、「プロパティー」ウィンドウが開き、イベント時要素のプロパティーを調べたり、修正したりできます。「プロパティーエディタ」ダイアログに表示されるプロパティーに加えて、「プロパティー」ウィンドウには「ポート型」フィールドと「型」フィールドが含まれます。「ポート型」フィールドは、パートナーリンクと操作を指定したときに入力され、「型」フィールドには指定したイベント変数の型が入力されます。

OnEvent プロパティーウィンドウ

イベント時のプロパティーエディタダイアログの「相互関係」タブでは、相互関係セットを確認または指定できます。

このタブには次のものが表示されます。

  • 相互関係セットの名前
  • 相互関係子の開始

「追加」ボタンをクリックすると、相互関係セットを追加できます。詳細については、「 相互関係セットの定義、および要素への相互関係セットの追加 」を参照してください。

アラーム時要素

アラーム時要素は、入れ子にされたスコープの締切期限または期間を指定します。

アラーム時要素のプロパティー

アラーム時要素のプロパティーは「プロパティー」ウィンドウで定義します。このウィンドウを呼び出すには、図上でアラーム時要素を右クリックして、「プロパティー」を選択します。次のプロパティーがあります。

  • 「アラームの種類」は、アラームの種類を選択するのに使用します。使用可能なオプションは次のとおりです。
    • For 。プロセスが待機する期間を設定します。
    • Until 。プロセスの締切期限を指定します。
    • Repeat Every 。プロセス開始の頻度を指定します。指定された期間が満了するたびに、プロセスを開始します。最初の期間のクロックは、関連するスコープが開始されたときに起動します。
    • For + Repeat Every 。指定した待機期間のあとのプロセス開始の頻度を指定します。「Repeat Every」フィールドに指定した期間が満了するたびに、プロセスが開始されます。最初のアラームは、「For」フィールドに指定した期間が満了すると起動されます。
    • Until + Repeat Every 。指定した締切期限に基づいてプロセス開始の頻度を指定します。「Repeat Every」フィールドに指定した期間が満了するたびに、プロセスが開始されます。最初のアラームは、「Until」フィールドに指定した締切期限に達すると起動されます。
  • 第 2 の (および、使用可能な場合は第 3 の) プロパティーは、選択したアラームの種類の期間または締切期限を指定するのに使用します。


ページの先頭へ

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by