ヘッダーをスキップ

Oracle Workflow APIリファレンス
リリース2.6.3.5

部品番号: B15622-01
前へ 次へ       目次 索引 用語集
         前へ  次へ          目次  索引  用語集

Listen

PL/SQL構文

procedure Listen


    (p_agent_name in varchar2,
p_wait in binary_integer default dbms_aq.no_wait,
p_correlation in varchar2 default null,
p_deq_condition in varchar2 default null);

説明

受信イベント・メッセージのエージェントを監視し、エージェントのキュー・ハンドラを使用してデータベース層でメッセージをデキューします。

標準のWF_EVENT_QHキュー・ハンドラによって、イベント・メッセージがイベント・メッセージのRECEIVE_DATE属性にデキューされる日時が設定されます。 カスタム・キュー・ハンドラがDequeue APIに組み込まれている場合は、この機能を使用してRECEIVE_DATE値を設定することもできます。

イベントがデキューされると、イベント・マネージャは、「外部」ソース・タイプを持つそのイベントの有効なサブスクリプションを、ローカル・システム単位に検索および実行します。また、「外部」ソース・タイプを持つAnyイベントの有効なサブスクリプションを、ローカル・システム単位に検索および実行します。 発生したイベントに有効なサブスクリプション(Anyイベントのサブスクリプション以外)が存在しない場合、Oracle Workflowは、「外部」ソース・タイプを持つUnexpectedイベントの有効なサブスクリプションを、ローカル・システム単位に実行します。

Listen()プロシージャは、エージェントのキューに入っているイベント・メッセージがすべてデキューされると終了します。ただし、追加のメッセージを待機するためにキュー上でブロックするように待機時間を指定した場合を除きます。

アプリケーション・コード内からListen()をコールしないでください。このプロシージャを直接コールする場合は、SQL*Plusからこのプロシージャを実行します。 別の方法として、Oracle Workflowのバージョンに応じてOracle Applications Manager、Oracle Enterprise Managerまたは他の方法を使用して、インバウンド・エージェントのPL/SQLエージェント・リスナーをスケジュールできます。 『Oracle Workflow管理者ガイド』のローカル・インバウンド・エージェントのリスナーのスケジュールに関する項を参照してください。

イベント名から構成されるAQ相関IDを指定することで、Listen()プロシージャで処理するイベント・メッセージを制限することもできます。このとき、イベント名の一部分のみを指定し、末尾にパーセント記号(%)をワイルドカード文字として付加することもできます。 また、Oracle9i Database以降では、メッセージのプロパティまたは内容を参照するデキュー条件を指定することで、Listen()プロシージャで処理するイベント・メッセージを制限することもできます。ただし、両方のパラメータを同時に指定することはできません。 一方を指定する場合は、他方をNULLにする必要があります。

引数(入力)

p_agent_name インバウンド・エージェントの名前。
p_wait メッセージを待機するためにエージェントのキュー上でエージェント・リスナーをブロックしておく秒数(オプション)。デフォルトでは、キューに入っているメッセージがすべてデキューされると、エージェント・リスナーは待機せずに終了します
p_correlation エージェント・リスナーで処理するイベント・メッセージを指定するためのAQ相関ID(オプション)。ビジネス・イベント・システムでは、イベント・メッセージを表すAQ相関IDは、通常はイベント名で指定されます。イベント名の一部分のみを指定し、末尾にパーセント記号(%)をワイルドカード文字として付加することもできます。このパラメータにAQ相関IDを指定すると、エージェント・リスナーは指定されたイベントのインスタンスであるメッセージのみをリスニングするようになります。 たとえば、oracle.apps.wf.notification%を指定すると、この値で始まる名前を持つ通知に関連するすべてのイベントをリスニングできます。この相関IDのデフォルト値はNULLです。この場合は、任意のイベントのインスタンスであるメッセージがエージェント・リスナーで処理されます。次のパラメータにデキュー条件を指定する場合、このパラメータはNULLにする必要があります。 『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイドおよびリファレンス』のデキューの方法に関する項を参照してください。

注意: AQ相関IDは、WF_EVENT_Tイベント・メッセージ構造内の相関IDとは異なります。

p_deq_condition エージェント・リスナーで処理するイベント・メッセージを指定するためのデキュー条件(オプション)。デキュー条件は、SQL問合せのWHERE句に似た構文を持つ式です。デキュー条件は、メッセージのプロパティやメッセージの内容を表す属性によって表現されます。キュー内のメッセージがこの条件に対して評価されるため、エージェント・リスナーはこの条件を満たすメッセージのみをリスニングするようになります。デフォルト値はNULLです。この場合、エージェント・リスナーで処理するメッセージに制限はありません。前のパラメータにAQ相関IDを指定する場合、このパラメータはNULLにする必要があります。 『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイドおよびリファレンス』のデキューの方法に関する項を参照してください。

関連項目

『Oracle Workflow開発者ガイド』のAnyイベントに関する項

『Oracle Workflow開発者ガイド』のUnexpectedイベントに関する項

『Oracle Workflow管理者ガイド』のwfagtlst.sqlに関する項

『Oracle Workflow開発者ガイド』のキュー・ハンドラの標準APIに関する項


          前へ   次へ           目次   索引   用語集



Oracleロゴ
Copyright © 2003, 2004, Oracle. All rights reserved.