corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

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


目次

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

ハンドラの使用



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

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

BPEL デザイナーのこのリリースでは、フォルトハンドラとイベントハンドラを BPEL プロセスに追加できます。補償ハンドラと終了ハンドラはサポートされていません。

フォルトハンドラの使用



いつ使用するか使用

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

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

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

使用

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

キャッチ要素

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

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

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

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

  • フォルト名。フォルトの qname をフォルトの一覧から選択します。一覧にはシステムフォルトと、WSDL ファイル内で定義されたフォルトが含まれています。
  • フォルト変数名プロパティー。フォルトメッセージを格納する BPEL 変数の名前を指定します。これは、すでに定義された BPEL 変数の名前にします。また、フォルトメッセージを格納するのに適した型にします。
  • フォルト変数型。変数の型を指定します。フォルトデータの型に一致させてください。次の型を選択できます。スキーマ型またはメッセージ型。

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

すべてをキャッチ要素

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

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

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

フォルトハンドラプロパティーエディタ

フォルトハンドラコンテナ要素には、特定のプロパティーはありません。キャッチ要素とすべてをキャッチ要素のコレクションまたはグループの格納場所を提供する要素です。

先頭へ


イベントハンドラの使用



いつ使用するか

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

イベントには 2 種類あります。第 1 に、イベントは、WSDL での要求/応答操作または単方向操作に対応する到来メッセージになる場合があります。たとえば、状態クエリーは要求/応答操作になることがあるのに対し、キャンセルは単方向操作になる場合があります。第 2 に、イベントは、ユーザー設定時間のあとで発生するアラームの場合があります。

使用

  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   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems