この章では、PL/SQL、DBMS_AQ
およびDBMS_AQADM
向けにOracle Databaseアドバンスト・キューイング(AQ)パッケージで使用されるタイプについて説明します。
関連項目: Oracle Databaseアドバンスト・キューイングの使用方法については、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。 |
この章では、次の項目について説明します。
このセクションには次のトピックが含まれます。
このタイプは、メッセージのプロデューサまたはコンシューマを識別します。
構文
TYPE SYS.AQ$_AGENT IS OBJECT ( name VARCHAR2(30), address VARCHAR2(1024), protocol NUMBER DEFAULT 0);
属性
表271-1 AQ$_AGENTの属性
属性 | 説明 |
---|---|
|
メッセージのプロデューサまたはコンシューマの名前。名前は、予約語に関して、『Oracle Database SQL言語リファレンス』のオブジェクト名ガイドラインに従う必要があります。 |
|
受信者のプロトコル固有のアドレス。プロトコルが たとえば、サイト |
|
アドレスを解釈し、メッセージを伝播するためのプロトコル。プロトコル1から127は、内部的に使用されるものです。プロトコル番号が128から255の場合、受信者のアドレスはOracle Databaseアドバンスト・キューイングで解釈されません。 |
このタイプは、通知時にAQ PL/SQLのコールバックが受信するOracle Databaseアドバンスト・キューイングの記述子を指定します。
メッセージの転送先となる匿名サブスクリプションを指定します。
このタイプは、キュー表のパージで使用可能なオプションを指定します。
構文
TYPE AQ$_PURGE_OPTIONS_T is RECORD ( block BOOLEAN DEFAULT FALSE delivery_mode PLS_INTEGER DEFAULT PERSISTENT);
表271-5 AQ$_PURGE_OPTIONS_Tタイプの属性
属性 | 説明 |
---|---|
|
|
|
パージするメッセージの種類( |
このタイプは、メッセージのプロデューサまたはコンシューマを識別します。
構文
TYPE SYS.AQ$_REG_INFO IS OBJECT ( name VARCHAR2(128), namespace NUMBER, callback VARCHAR2(4000), context RAW(2000) DEFAULT NULL, qosflags NUMBER, timeout NUMBER ntfn_grouping_class NUMBER, ntfn_grouping_value NUMBER DEFAULT 600, ntfn_grouping_type NUMBER, ntfn_grouping_start_time TIMESTAMP WITH TIME ZONE, ntfn_grouping_repeat_count NUMBER);
属性
表271-6 AQ$_REG_INFOタイプの属性
属性 | 説明 |
---|---|
|
サブスクリプション名を指定します。単一コンシューマ・キューの登録の場合は |
|
サブスクリプションのネームスペースを指定します。Oracle Databaseアドバンスト・キューイングのキューから通知を受信するには、namespaceを |
|
メッセージ通知時に実行されるアクションを指定します。HTTP通知を使用する場合は、 |
|
コールバック関数に渡されるコンテキストを指定します。 |
|
次の1つ以上の値に設定して、サービスの通知品質を指定できます。
|
|
グループ化の基準を指定するために現在設定できるのは、次のフラグのみです。デフォルト値は0(ゼロ)です。
|
|
通知のグループ化の時間を秒単位で指定します。この時間の経過後、グループ化した通知は、 |
|
|
|
通知のグループ化の開始時間。通知のグループ化は、ユーザーが指定した時間に開始できますが、この時間はタイムゾーン付きの有効なタイムスタンプである必要があります。グループ化の使用時に |
|
グループ化通知は、通知のグループ化の繰返し回数に指定した回数だけ送信され、その後、通常の通知に戻ります。ntfn_grouping_repeat_countを指定しない場合、次のデフォルトが使用されます。
|
使用上の注意
次の通知方法を使用できます。
OCIコールバック
電子メール・コールバック
PL/SQLのコールバック
表271-7に、RAW表示が指定された場合に他の通知方法の非永続キューに対して実行されるアクションを示します。表271-8には、XML表示が指定された場合に実行されるアクションを示します。
表271-7 RAW表示が指定された場合の非永続キューに対するアクション
キュー・ペイロード・タイプ | OCIコールバック | 電子メール | PL/SQLのコールバック |
---|---|---|---|
|
OCIコールバックはペイロードにおいてRAWデータを受信します。 |
サポートされていません。 |
PL/SQLコールバックはペイロードにおいてRAWデータを受信します。 |
|
サポートされていません。 |
サポートされていません。 |
サポートされていません。 |
表271-8 XML表示が指定された場合の非永続キューに対するアクション
キュー・ペイロード・タイプ | OCIコールバック | 電子メール | PL/SQLのコールバック |
---|---|---|---|
|
OCIコールバックはペイロードにおいてXMLデータを受信します。 |
XMLデータはSOAPメッセージにフォーマットされ、登録済の電子メール・アドレスに送信されます。 |
PL/SQLコールバックはペイロードにおいてXMLデータを受信します。 |
|
OCIコールバックはペイロードにおいてXMLデータを受信します。 |
XMLデータはSOAPメッセージにフォーマットされ、登録済の電子メール・アドレスに送信されます。 |
PL/SQLコールバックはペイロードにおいてXMLデータを受信します。 |
デキュー操作で使用可能なオプションを指定します。
構文
TYPE DEQUEUE_OPTIONS_T IS RECORD ( consumer_name VARCHAR2(30) DEFAULT NULL, dequeue_mode BINARY_INTEGER DEFAULT REMOVE, navigation BINARY_INTEGER DEFAULT NEXT_MESSAGE, visibility BINARY_INTEGER DEFAULT ON_COMMIT, wait BINARY_INTEGER DEFAULT FOREVER, msgid RAW(16) DEFAULT NULL, correlation VARCHAR2(128) DEFAULT NULL, deq_condition VARCHAR2(4000) DEFAULT NULL, signature aq$_sig_prop DEFAULT NULL, transformation VARCHAR2(61) DEFAULT NULL, delivery_mode PLS_INTEGER DEFAULT PERSISTENT);
属性
表271-9 DEQUEUE_OPTIONS_Tの属性
属性 | 説明 |
---|---|
|
コンシューマの名前。コンシューマ名が一致するメッセージのみアクセスされます。キューがマルチ・コンシューマ用に設定されていない場合、このフィールドは キューのセキュリティを確保するため、consumer_nameに有効なAQ引数名を指定し、 |
|
デキューに関連付けるロック動作を指定します。設定可能な値は次のとおりです。
|
|
取り出されるメッセージの位置を指定します。最初に、位置が判断されます。次に、検索基準が適用されます。最後に、メッセージが取り出されます。設定可能な値は次のとおりです。
|
|
新規メッセージを現行トランザクションの一部としてデキューするかどうかを指定します。
|
|
検索基準と一致する使用可能なメッセージが存在していない場合の待機時間を指定します。設定可能な値は次のとおりです。
number: 待機時間(秒)。 |
|
デキューするメッセージのメッセージIDを指定します。 |
|
デキューするメッセージの相関IDを指定します。パーセント記号( |
|
メッセージ・プロパティ、メッセージ・データ・プロパティおよびPL/SQLファンクションに基づいた条件式。
メッセージ・ペイロード(オブジェクト・ペイロード)のデキュー条件を指定するには、句にオブジェクト・タイプの属性を使用します。各属性の前に修飾子として |
|
現在、実装されていません。 |
|
メッセージをデキューした後に適用される変換を指定します。変換のソース・タイプは、キューのタイプと一致させる必要があります。 |
|
デキュー実行者は、デキュー・オプションでデキューするメッセージの配信モードを指定します。 |
エンキュー操作で使用可能なオプションを指定します。
構文
TYPE SYS.ENQUEUE_OPTIONS_T IS RECORD ( visibility BINARY_INTEGER DEFAULT ON_COMMIT, relative_msgid RAW(16) DEFAULT NULL, sequence_deviation BINARY_INTEGER DEFAULT NULL, transformation VARCHAR2(61) DEFAULT NULL, delivery_mode PLS_INTEGER NOT NULL DEFAULT PERSISTENT);
属性
表271-10 ENQUEUE_OPTIONS_Tの属性
属性 | 説明 |
---|---|
|
エンキュー要求のトランザクション動作を指定します。設定可能な値は次のとおりです。
|
|
順序逸脱操作で参照されるメッセージのメッセージIDを指定します。このフィールドは、 |
|
エンキューされるメッセージが、すでにキューにある他のメッセージより前にデキューされる必要があるかどうかを指定します。設定可能な値は次のとおりです。
|
|
メッセージをエンキューする前に適用される変換を指定します。変換ファンクションの戻りタイプは、キューのタイプと一致させる必要があります。 |
|
エンキュー実行者は、エンキュー・オプションにエンキューするメッセージの配信モードを指定します。 |
このタイプは、AQメッセージのメッセージ・プロパティをPL/SQL通知クライアント・コールバックに渡すために、PL/SQL通知でaq$_descriptor
の1つのフィールドとして使用されます。
構文
CREATE or replace TYPE sys.msg_prop_t AS OBJECT ( priority NUMBER, delay NUMBER, expiration NUMBER, correlation VARCHAR2(128), attempts NUMBER, exception_queue VARCHAR2(51), enqueue_time DATE, state NUMBER, sender_id aq$_agent, original_msgid RAW(16), delivery_mode NUMBER);
パラメータ
表271-11 SYS.MSG_PROP_Tタイプの属性
パラメータ | 説明 |
---|---|
|
メッセージの優先順位を指定します。数値が小さいほど優先順位は高くなります。優先順位には、負数も含めたあらゆる数値を使用できます。 |
|
エンキュー・メッセージの遅延を指定します。遅延は、メッセージがデキュー可能になるまでの秒数を表します。 次の値を設定できます。
number: メッセージの遅延秒数。 |
|
メッセージの期限切れを指定します。この時間(秒)を経過したメッセージはデキューされません。このパラメータは、メッセージのデキューが可能になった時間からオフセットされます。期限切れ処理にはキュー・モニターを起動させる必要があります。ただし、必要であれば、システムがキュー・モニターを自動的に起動します。 次の値を設定できます。
number: メッセージを |
|
エンキュー時にメッセージのプロデューサが提供したIDを戻します。 |
|
メッセージのデキューの試行回数を戻します。このパラメータはエンキュー時には設定できません。 |
|
メッセージが正常に処理されなかった場合のメッセージの移動先キュー名を指定します。 メッセージは自動的に例外キューへ移動されます。メッセージが自動的に例外キューへ移動されるのは、次の場合です。
デフォルトは、キュー表に関連付けられている例外キューです。指定した例外キューが移動時に存在しない場合、そのメッセージは、キュー表に関連付けられているデフォルトの例外キューに移動され、アラート・ログに警告ログが記録されます。デフォルトの例外キューが指定されると、デキュー時に |
|
メッセージがエンキューされた時刻を指定します。この値はシステムによって設定され、エンキュー時にユーザーが設定することはできません。 |
|
デキュー時にメッセージの状態を指定します。このパラメータはエンキュー時には設定できません。次の状態を設定できます。
|
|
エンキュー時にメッセージのプロデューサが指定するアプリケーション送信者の識別番号。 保護キューでは、エンキュー時に送信者名が必要です。有効なAQエージェント名を指定し、 メッセージが他のキューから伝播されている場合、デキュー時に戻されるメッセージ・プロパティの送信者IDとして送信者のアドレスが表示される場合があります。リモート・データベース[ |
|
このパラメータは、Oracle Databaseアドバンスト・キューイングでメッセージを伝播するために使用します。 |
|
|
このタイプは、DBMS_AQパッケージ内部で定義されており、個々のメッセージの状態を伝達するためにAQで使用される情報を記述します。これらはエンキュー時に設定され、デキュー時にその値が戻されます。
構文
TYPE message_properties_t IS RECORD ( priority BINARY_INTEGER NOT NULL DEFAULT 1, delay BINARY_INTEGER NOT NULL DEFAULT NO_DELAY, expiration BINARY_INTEGER NOT NULL DEFAULT NEVER, correlation VARCHAR2(128) DEFAULT NULL, attempts BINARY_INTEGER, recipient_list AQ$_RECIPIENT_LIST_T, exception_queue VARCHAR2(61) DEFAULT NULL, enqueue_time DATE, state BINARY_INTEGER, sender_id SYS.AQ$_AGENT DEFAULT NULL, original_msgid RAW(16) DEFAULT NULL, signature aq$_sig_prop DEFAULT NULL, transaction_group VARCHAR2(30) DEFAULT NULL, user_property SYS.ANYDATA DEFAULT NULL delivery_mode PLS_INTEGER NOT NULL DEFAULT DBMS_AQ.PERSISTENT);
属性
表271-12 MESSAGE_PROPERTIES_Tの属性
属性 | 説明 |
---|---|
|
メッセージの優先順位を指定します。数値が小さいほど優先順位は高くなります。優先順位には、負数も含めたあらゆる数値を使用できます。 |
|
エンキュー・メッセージの遅延を指定します。遅延は、メッセージがデキュー可能になるまでの秒数を表します。 次の値を設定できます。
number: メッセージの遅延秒数。 |
|
メッセージの期限切れを指定します。この時間(秒)を経過したメッセージはデキューされません。このパラメータは、メッセージのデキューが可能になった時間からオフセットされます。期限切れ処理にはキュー・モニターを起動させる必要があります。ただし、必要であれば、システムがキュー・モニターを自動的に起動します。 次の値を設定できます。
number: メッセージを |
|
エンキュー時にメッセージのプロデューサが提供したIDを戻します。 |
|
メッセージのデキューの試行回数を戻します。このパラメータはエンキュー時には設定できません。 |
|
このパラメータは、マルチ・コンシューマを許可しているキューに対してのみ有効です。デフォルトの受信者は、キューのサブスクライバです。このパラメータは、デキュー時にコンシューマに戻されません。 タイプ定義の詳細は、「AQ$_AGENTタイプ」を参照してください。 |
|
メッセージが正常に処理されなかった場合のメッセージの移動先キュー名を指定します。 メッセージは自動的に例外キューへ移動されます。メッセージが自動的に例外キューへ移動されるのは、次の場合です。
デフォルトは、キュー表に関連付けられている例外キューです。指定した例外キューが移動時に存在しない場合、そのメッセージは、キュー表に関連付けられているデフォルトの例外キューに移動され、アラート・ログに警告ログが記録されます。デフォルトの例外キューが指定されると、デキュー時に |
|
メッセージがエンキューされた時刻を指定します。この値はシステムによって設定され、エンキュー時にユーザーが設定することはできません。 |
|
デキュー時にメッセージの状態を指定します。このパラメータはエンキュー時には設定できません。次の状態を設定できます。
|
|
エンキュー時にメッセージのプロデューサが指定するアプリケーション送信者の識別番号。 保護キューでは、エンキュー時に送信者名が必要です。有効なAQエージェント名を指定し、 メッセージが他のキューから伝播されている場合、デキュー時に戻されるメッセージ・プロパティの送信者IDとして送信者のアドレスが表示される場合があります。リモート・データベース[ |
|
このパラメータは、Oracle Databaseアドバンスト・キューイングでメッセージを伝播するために使用します。 |
|
現在、実装されていません。 |
|
デキューされたメッセージの |
|
このオプション属性を使用して、ペイロードの追加情報を格納できます。 |
|
このメッセージ・パブリッシャは、 |