ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

22 DBMS_AQADM

DBMS_AQADMパッケージは、Oracle Streams Advanced Queuing(AQ)の構成および管理情報を管理するプロシージャを提供します。


関連項目:

  • 『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』

  • DBMS_AQADMで使用するTYPEに関する情報は、第224章「Oracle Streams AQタイプ」を参照してください。


この章では、次の項目について説明します。


DBMS_AQADMの使用方法

この項では、次の項目について説明します。


定数

INFINITETRANSACTIONALまたはNORMAL_QUEUEなどの列挙定数を使用するときは、それを定義するパッケージの範囲内で、その記号を指定する必要があります。 管理インタフェースに関連付けられているすべてのタイプには、DBMS_AQADMを付加する必要があります。 たとえば、DBMS_AQADM.NORMAL_QUEUEのようにします。

表22-1 管理インタフェース内の列挙タイプ

パラメータ オプション

retention

0, 1, 2...INFINITE

message_grouping

TRANSACTIONALNONE

queue_type

NORMAL_QUEUEEXCEPTION_QUEUENON_PERSISTENT_QUEUE



関連項目:

DBMS_AQおよびDBMS_AQADMで使用されるJavaクラスとデータ構造の詳細は、「DBMS_AQ」パッケージを参照してください。


サブプログラム・グループ

DBMS_AQADMパッケージは、次のサブプログラム・グループで構成されています。


キュー表サブプログラム

表22-2 キュー表サブプログラム

サブプログラム 説明

ALTER_QUEUE_TABLEプロシージャ

キュー表の既存のプロパティを変更します。

CREATE_QUEUE_TABLEプロシージャ

事前定義タイプのメッセージのキュー表を作成します。

DROP_QUEUE_TABLEプロシージャ

既存のキュー表を削除します。

ENABLE_JMS_TYPESプロシージャ

JMSタイプおよびXMLタイプのエンキューの事前条件です。

MIGRATE_QUEUE_TABLEプロシージャ

8.0互換キュー表から8.1以上互換キュー表へのアップグレード、または8.1以上互換キュー表から8.0互換キュー表へのダウングレードを実行します。

PURGE_QUEUE_TABLEプロシージャ

キュー表からメッセージをパージします。



権限サブプログラム

表22-3 権限サブプログラム

サブプログラム 説明

GRANT_QUEUE_PRIVILEGEプロシージャ

ユーザーおよびロールにキューの権限を付与します。

GRANT_SYSTEM_PRIVILEGEプロシージャ

ユーザーおよびロールにOracle Streams AQシステム権限を付与します。

REVOKE_QUEUE_PRIVILEGEプロシージャ

ユーザーおよびロールからキューの権限を取り消します。

REVOKE_SYSTEM_PRIVILEGEプロシージャ

ユーザーおよびロールからOracle Streams AQシステム権限を取り消します。



キュー・サブプログラム

表22-4 キュー・サブプログラム

サブプログラム 説明

ALTER_QUEUEプロシージャ

キューの既存のプロパティを変更します。

CREATE_NP_QUEUEプロシージャ

非永続のRAWキューを作成します。

CREATE_QUEUEプロシージャ

指定したキュー表にキューを作成します。

DROP_QUEUEプロシージャ

既存のキューを削除します。

QUEUE_SUBSCRIBERSファンクション

PL/SQL索引付き表のコレクション・タイプDBMS_AQADM.AQ$_subscriber_list_tで、サブスクライバを8.0互換マルチ・コンシューマ・キューに返します。

START_QUEUEプロシージャ

指定したキューのエンキューまたはデキューを使用可能にします。

STOP_QUEUEプロシージャ

指定したキューのエンキューまたはデキューを使用禁止にします。



サブスクライバ・サブプログラム

表22-5 サブスクライバ・サブプログラム

サブプログラム 説明

ADD_SUBSCRIBERプロシージャ

キューにデフォルトのサブスクライバを追加します。

ALTER_SUBSCRIBERプロシージャ

指定したキューに対するサブスクライバの既存プロパティを変更します。

REMOVE_SUBSCRIBERプロシージャ

キューからデフォルトのサブスクライバを削除します。



通知サブプログラム

表22-6 通知サブプログラム

サブプログラム 説明

GET_WATERMARKプロシージャ

SET_WATERMARKプロシージャによって設定された水位標の値を取り出します。

SET_WATERMARKプロシージャ

Oracle Streams AQ通知に使用し、メモリーの使用を指定したり制限します。



伝播サブプログラム

表22-7 伝播サブプログラム

サブプログラム 説明

ALTER_PROPAGATION_SCHEDULEプロシージャ

伝播スケジュールのパラメータを変更します。

DISABLE_PROPAGATION_SCHEDULEプロシージャ

伝播スケジュールを使用禁止にします。

ENABLE_PROPAGATION_SCHEDULEプロシージャ

以前使用禁止にした伝播スケジュールを使用可能にします。

SCHEDULE_PROPAGATIONプロシージャ

キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播をスケジュールします。

UNSCHEDULE_PROPAGATIONプロシージャ

キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播の旧スケジュールを取り消します。

VERIFY_QUEUE_TYPESプロシージャ

ソース・キューおよび宛先キューのタイプが同じかどうかを検証します。



Oracle Streams AQエージェント・サブプログラム

表22-8 Oracle Streams AQエージェント・サブプログラム

サブプログラム 説明

ALTER_AQ_AGENTプロシージャ

Oracle Streams AQインターネット・アクセス用に登録されているエージェント、および保護キューにアクセスするOracle Streams AQエージェントを変更します。

CREATE_AQ_AGENTプロシージャ

HTTP/SMTPプロトコルを使用するOracle Streams AQインターネット・アクセス用エージェントを登録し、保護キューにアクセスするOracle Streams AQエージェントを作成します。

DISABLE_DB_ACCESSプロシージャ

Oracle Streams AQインターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。

DROP_AQ_AGENTプロシージャ

Oracle Streams AQインターネット・アクセス用に登録されているエージェントを削除します。

ENABLE_DB_ACCESSプロシージャ

Oracle Streams AQインターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。



別名サブプログラム

表22-9 別名サブプログラム

サブプログラム 説明

ADD_ALIAS_TO_LDAPプロシージャ

LDAPにキュー、エージェントまたはJMS ConnectionFactoryの別名を作成します。

DEL_ALIAS_FROM_LDAPプロシージャ

キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPから削除します。



DBMS_AQADMサブプログラムの要約

表22-10 DBMS_AQADMパッケージのサブプログラム

サブプログラム 説明

ADD_ALIAS_TO_LDAPプロシージャ

LDAPにキュー、エージェントまたはJMS ConnectionFactoryの別名を作成します。

ADD_SUBSCRIBERプロシージャ

キューにデフォルトのサブスクライバを追加します。

ALTER_AQ_AGENTプロシージャ

Oracle Streams AQインターネット・アクセス用に登録されているエージェント、および保護キューにアクセスするOracle Streams AQエージェントを変更します。

ALTER_PROPAGATION_SCHEDULEプロシージャ

伝播スケジュールのパラメータを変更します。

ALTER_QUEUEプロシージャ

キューの既存のプロパティを変更します。

ALTER_QUEUE_TABLEプロシージャ

キュー表の既存のプロパティを変更します。

ALTER_SUBSCRIBERプロシージャ

指定したキューに対するサブスクライバの既存プロパティを変更します。

CREATE_AQ_AGENTプロシージャ

HTTP/SMTPプロトコルを使用するOracle Streams AQインターネット・アクセス用エージェントを登録し、保護キューにアクセスするOracle Streams AQエージェントを作成します。

CREATE_NP_QUEUEプロシージャ

非永続のRAWキューを作成します。

CREATE_QUEUEプロシージャ

指定したキュー表にキューを作成します。

CREATE_QUEUE_TABLEプロシージャ

事前定義タイプのメッセージのキュー表を作成します。

DEL_ALIAS_FROM_LDAPプロシージャ

キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPから削除します。

DISABLE_DB_ACCESSプロシージャ

Oracle Streams AQインターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。

DISABLE_PROPAGATION_SCHEDULEプロシージャ

伝播スケジュールを使用禁止にします。

DROP_AQ_AGENTプロシージャ

Oracle Streams AQインターネット・アクセス用に登録されているエージェントを削除します。

DROP_QUEUEプロシージャ

既存のキューを削除します。

DROP_QUEUE_TABLEプロシージャ

既存のキュー表を削除します。

ENABLE_DB_ACCESSプロシージャ

Oracle Streams AQインターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。

ENABLE_JMS_TYPESプロシージャ

JMSタイプおよびXMLタイプのエンキューの事前条件です。

ENABLE_PROPAGATION_SCHEDULEプロシージャ

以前使用禁止にした伝播スケジュールを使用可能にします。

GET_WATERMARKプロシージャ

SET_WATERMARKプロシージャによって設定された水位標の値を取り出します。

GRANT_QUEUE_PRIVILEGEプロシージャ

ユーザーおよびロールにキューの権限を付与します。

GRANT_SYSTEM_PRIVILEGEプロシージャ

ユーザーおよびロールにOracle Streams AQシステム権限を付与します。

MIGRATE_QUEUE_TABLEプロシージャ

8.0互換キュー表から8.1以上互換キュー表へのアップグレード、または8.1以上互換キュー表から8.0互換キュー表へのダウングレードを実行します。

PURGE_QUEUE_TABLEプロシージャ

キュー表からメッセージをパージします。

QUEUE_SUBSCRIBERSファンクション

PL/SQL索引付き表のコレクション・タイプDBMS_AQADM.AQ$_subscriber_list_tで、サブスクライバを8.0互換マルチ・コンシューマ・キューに返します。

REMOVE_SUBSCRIBERプロシージャ

キューからデフォルトのサブスクライバを削除します。

REVOKE_QUEUE_PRIVILEGEプロシージャ

ユーザーおよびロールからキューの権限を取り消します。

REVOKE_SYSTEM_PRIVILEGEプロシージャ

ユーザーおよびロールからOracle Streams AQシステム権限を取り消します。

SCHEDULE_PROPAGATIONプロシージャ

キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播をスケジュールします。

SET_WATERMARKプロシージャ

Oracle Streams AQ通知に使用し、メモリーの使用を指定したり制限します。

START_QUEUEプロシージャ

指定したキューのエンキューまたはデキューを使用可能にします。

STOP_QUEUEプロシージャ

指定したキューのエンキューまたはデキューを使用禁止にします。

UNSCHEDULE_PROPAGATIONプロシージャ

キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播の旧スケジュールを取り消します。

VERIFY_QUEUE_TYPESプロシージャ

ソース・キューおよび宛先キューのタイプが同じかどうかを検証します。



ADD_ALIAS_TO_LDAPプロシージャ

このプロシージャは、キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPに作成します。別名は、LDAP階層においてデータベース・サーバーの識別名の下に直接配置されます。

構文

DBMS_AQADM.ADD_ALIAS_TO_LDAP(
   alias          IN VARCHAR2,
   obj_location   IN VARCHAR2);

パラメータ

表22-11 ADD_ALIAS_TO_LDAPプロシージャのパラメータ

パラメータ 説明

alias

別名。 例: west_shipping

obj_location

aliasが参照するオブジェクト(キュー、エージェントまたはコネクション・ファクトリ)の識別名。


使用上の注意

この方法は、キュー、エージェントおよびJMS ConnectionFactoryオブジェクトの別名の作成に使用できます。別名を作成するには、オブジェクトが存在している必要があります。作成した別名は、JMSのJNDI参照およびOracle Streams AQインターネット・アクセスに使用できます。


ADD_SUBSCRIBERプロシージャ

このプロシージャは、キューにデフォルトのサブスクライバを追加します。

構文

DBMS_AQADM.ADD_SUBSCRIBER (
   queue_name      IN    VARCHAR2,
   subscriber      IN    sys.aq$_agent,
   rule            IN    VARCHAR2 DEFAULT NULL,
   transformation  IN    VARCHAR2 DEFAULT NULL
   queue_to_queue  IN    BOOLEAN DEFAULT FALSE,
   delivery_mode   IN    PLS_INTEGER DEFAULT DBMS_AQADM.PERSISTENT);

パラメータ

表22-12 ADD_SUBSCRIBERプロシージャのパラメータ

パラメータ 説明

queue_name

キュー名。

subscriber

サブスクリプションを定義しようとしているエージェント。

rule

メッセージ・プロパティ、メッセージ・データ・プロパティおよびPL/SQLファンクションに基づいた条件式。ルールはSQL問合せのWHERE句と同様の構文を使用して、ブール式で指定されます。このブール式には、メッセージ・プロパティ、ユーザー・データのプロパティ(オブジェクト・ペイロードのみ)、およびPL/SQLファンクションまたはSQLファンクション(SQL問合せのWHERE句で指定)に関する条件を組み込むことができます。現在サポートされているメッセージ・プロパティは、priorityおよびcorridです。

メッセージ・ペイロード(オブジェクト・ペイロード)のルールを指定するには、句にオブジェクト・タイプの属性を使用します。各属性の前に修飾子としてtab.user_dataを付加して、ペイロードを格納するキュー表の特定の列を示します。ルールのパラメータは4000バイト以内です。

transformation

このサブスクライバがメッセージをデキューしたときに適用される変換を指定します。変換のソース・タイプは、キューのタイプと一致させる必要があります。サブスクライバがリモートで操作している場合、リモート・キューに伝播される前に変換が適用されます。

queue_to_queue

TRUEの場合、キュー間で伝播が実行されます。

delivery_mode

管理者は、サブスクライバで必要なメッセージの配信モードに、DBMS_AQADM.PERSISTENTDBMS_AQADM.BUFFEREDまたはDBMS_AQADM.PERSISTENT_OR_BUFFEREDのいずれかを指定できます。このパラメータは、ALTER_SUBSCRIBERでは変更できません。


使用上の注意

プログラムは、特定の受信者リストまたはデフォルトのサブスクライバ・リストに対してメッセージをエンキューできます。この操作は、マルチ・コンシューマが許可されているキューでのみ成功します。この操作はすぐに有効となり、含まれるトランザクションがコミットされます。このコール後に実行されたエンキュー要求は、新しい動作を反映します。

ルール内の任意の文字列を次に示します。

rule   => 'PRIORITY <= 3 AND CORRID =  ''FROM JAPAN'''

すべて一重引用符が使用されていることに注意してください。


ALTER_AQ_AGENTプロシージャ

このプロシージャは、Oracle Streams AQインターネット・アクセスに登録されたエージェントを変更します。また、保護キューにアクセスするOracle Streams AQエージェントの変更も行います。


関連項目:

保護キューの詳細は、『Oracle Streams概要および管理』を参照してください。

構文

DBMS_AQADM.ALTER_AQ_AGENT (
  agent_name                IN VARCHAR2,
  certificate_location      IN VARCHAR2 DEFAULT NULL,
  enable_http               IN BOOLEAN DEFAULT FALSE,
  enable_smtp               IN BOOLEAN DEFAULT FALSE,
  enable_anyp               IN BOOLEAN DEFAULT FALSE )

パラメータ

表22-13 ALTER_AQ_AGENTプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Streams AQインターネット・エージェントのユーザー名を指定します。

certification_location

LDAPにおけるエージェントの証明書の位置(デフォルトはNULL)。エージェントがSMTPを介してOracle Streams AQへのアクセスを許可されている場合、証明書をLDAPに登録する必要があります。HTTPを介してアクセスする場合は、証明書の位置は必要ありません。

enable_http

TRUEの場合、エージェントはHTTPを介してOracle Streams AQにアクセスできます。FALSEの場合、エージェントはHTTPを介してOracle Streams AQにアクセスできません。

enable_smtp

TRUEの場合、エージェントはSMTP(電子メール)を介してOracle Streams AQにアクセスできます。FALSEの場合、エージェントはSMTPを介してOracle Streams AQにアクセスできません。

enable_anyp

TRUEの場合、エージェントは任意のプロトコル(HTTPまたはSMTP)を介してOracle Streams AQにアクセスできます。



ALTER_PROPAGATION_SCHEDULEプロシージャ

このプロシージャは、伝播スケジュールのパラメータを変更します。

構文

DBMS_AQADM.ALTER_PROPAGATION_SCHEDULE (
   queue_name           IN    VARCHAR2,
   destination          IN    VARCHAR2 DEFAULT NULL,
   duration             IN    NUMBER   DEFAULT NULL,
   next_time            IN    VARCHAR2 DEFAULT NULL,
   latency              IN    NUMBER   DEFAULT 60,
   destination_queue    IN    VARCHAR2 DEFAULT NULL);

パラメータ

表22-14 ALTER_PROPAGATION_SCHEDULEプロシージャのパラメータ

パラメータ 説明

queue_name

伝播対象のメッセージがあるソース・キューの名前。スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。

destination

宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先がNULLの場合は、ローカル・データベースが宛先となり、メッセージはローカル・データベース内の他のキューに伝播されます。このフィールドの長さは128バイトに制限されており、名前が完全に修飾されていない場合は、デフォルトのドメイン名が使用されます。

duration

伝播ウィンドウの継続期間(秒数)。NULL値の場合、伝播ウィンドウは無期限または伝播スケジュールが取り消されるまで継続します。

next_time

現在の伝播ウィンドウの終了から次の伝播ウィンドウの開始を計算する日付ファンクション。この値がNULLの場合は、現在のウィンドウが終了すると伝播は停止されます。 たとえば、毎日同時刻にウィンドウを起動するには、next_timeSYSDATE + 1 - duration/86400と指定します。

latency

伝播ウィンドウにおける、メッセージがエンキュー後に伝播されるまでの最大待機時間(秒数)。デフォルト値は、60です。

注意: このコールに対して待機時間が指定されない場合、待機時間は既存の値をデフォルト値で上書きします。

たとえば、待機時間が60秒で伝播ウィンドウに伝播するメッセージがない場合、そのキューからのその宛先に対するメッセージは、最低60秒間伝播されません。指定した宛先に対してメッセージを伝播するためにキューを再度チェックするまでの時間は、最短で60秒です。待機時間が600の場合、キューは10分間チェックされず、待機時間が0(ゼロ)の場合は、宛先に対するメッセージがエンキューされるまでジョブ・キュー・プロセスが待機することになります。メッセージは、エンキューされるとすぐに伝播されます。

destination_queue

dblinkの形式でメッセージが伝播される宛先キューの名前。



ALTER_QUEUEプロシージャ

このプロシージャは、キューの既存プロパティを変更します。 パラメータmax_retriesretention_timeおよびretry_delayは、非永続キューではサポートされていません。

構文

DBMS_AQADM.ALTER_QUEUE (
   queue_name        IN    VARCHAR2,
   max_retries       IN    NUMBER   DEFAULT NULL,
   retry_delay       IN    NUMBER   DEFAULT NULL,
   retention_time    IN    NUMBER   DEFAULT NULL,
   auto_commit       IN    BOOLEAN  DEFAULT TRUE,
   comment           IN    VARCHAR2 DEFAULT NULL);

パラメータ

表22-15 ALTER_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

変更するキューの名前。

max_retries

REMOVEモードのデキューがメッセージ上で試行される回数を制限します。max_retriesの最大値は2**31 -1です。

RETRY_COUNTMAX_RETRIESより大きい場合、メッセージは例外キューにします。デキューの実行後にアプリケーションがロールバックを発行するたびに、RETRY_COUNTが増加します。サーバー・プロセスの停止(ALTER SYSTEM KILL SESSION)またはインスタンスのSHUTDOWN ABORTによって、デキュー・トランザクションが失敗した場合は、RETRY_COUNTは増加しません。

max_retriesはすべてのシングル・コンシューマ・キューおよび8.1以上互換のマルチ・コンシューマ・キューでサポートされていますが、8.0互換のマルチ・コンシューマ・キューではサポートされていないことに注意してください。

retry_delay

アプリケーションのロールバック後、このメッセージの再処理をスケジュールするまでの遅延時間(秒数)。デフォルトはNULLで、値が変更されないことを意味します。

retry_delayはシングル・コンシューマ・キューおよび8.1以上互換のマルチ・コンシューマ・キューでサポートされていますが、8.0互換のマルチ・コンシューマ・キューではサポートされていないことに注意してください。

retention_time

デキュー後、メッセージがキュー表内に保持される時間(秒数)。デフォルトはNULLで、値が変更されないことを意味します。

auto_commit

TRUEの場合、現行のトランザクションがある場合は、ALTER_QUEUE操作が実行される前にコミットされます。 ALTER_QUEUE操作は、コールから戻ると持続されます。これがデフォルトです。FALSEの場合、この操作は現行トランザクションの一部で、コール元がコミットを入力した場合のみ持続されます。

注意: このパラメータは使用しないことをお薦めします。

comment

キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。デフォルト値はNULLで、値が変更されないことを意味します。



ALTER_QUEUE_TABLEプロシージャ

このプロシージャは、キュー表の既存のプロパティを変更します。

構文

DBMS_AQADM.ALTER_QUEUE_TABLE (
   queue_table          IN   VARCHAR2,
   comment              IN   VARCHAR2       DEFAULT NULL,
   primary_instance     IN   BINARY_INTEGER DEFAULT NULL,
   secondary_instance   IN   BINARY_INTEGER DEFAULT NULL);

パラメータ

表22-16 ALTER_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

作成するキュー表の名前。

comment

キュー表に関するユーザー指定の説明を変更します。このユーザー・コメントは、キュー・カタログに追加されます。デフォルト値はNULLで、値が変更されないことを意味します。

primary_instance

キュー表のプライマリ所有者。キュー表内のキューに対するキュー・モニターのスケジューリングおよび伝播は、このインスタンス内で行われます。デフォルト値はNULLで、現行の値が変更されないことを意味します。

secondary_instance

プライマリ・インスタンスが使用不可の場合、キュー表はセカンダリ・インスタンスにフェイルオーバーします。デフォルト値はNULLで、現行の値が変更されないことを意味します。



ALTER_SUBSCRIBERプロシージャ

このプロシージャは、指定したキューに対するサブスクライバの既存プロパティを変更します。ルールのみの変更が可能です。

構文

DBMS_AQADM.ALTER_SUBSCRIBER (
   queue_name     IN    VARCHAR2,
   subscriber     IN    sys.aq$_agent,
   rule           IN    VARCHAR2
   transformation IN    VARCHAR2);

パラメータ

表22-17 ALTER_SUBSCRIBERプロシージャのパラメータ

パラメータ 説明

queue_name

キュー名。

subscriber

サブスクリプションを変更するエージェント。 「AQ$_AGENTタイプ」を参照してください。

rule

メッセージ・プロパティ、メッセージ・データ・プロパティおよびPL/SQLファンクションに基づいた条件式。ルールのパラメータは4000バイト以内です。ルールを削除する場合は、ルール・パラメータをNULLに設定します。

transformation

このサブスクライバがメッセージをデキューしたときに適用される変換を指定します。変換のソース・タイプは、キューのタイプと一致させる必要があります。サブスクライバがリモートで操作している場合、リモート・キューに伝播される前に変換が適用されます。


使用上の注意

このプロシージャは、サブスクライバのルールおよび変換の両方を変更します。どちらかを既存値のまま保持する場合は、元の値を指定する必要があります。 サブスクライバのルールおよび変換の現在の値を取得するには、schema.AQ$queue_table_Rおよびschema.AQ$queue_table_Sのビューを使用します。


CREATE_AQ_AGENTプロシージャ

このプロシージャは、HTTP/SMTPプロトコルを使用して、Oracle Streams AQインターネット・アクセスのエージェントを登録します。また、保護キューにアクセスするOracle Streams AQエージェントも作成します。


関連項目:

保護キューの詳細は、『Oracle Streams概要および管理』を参照してください。

構文

DBMS_AQADM.CREATE_AQ_AGENT (
  agent_name                IN VARCHAR2,
  certificate_location      IN VARCHAR2 DEFAULT NULL,
  enable_http               IN BOOLEAN DEFAULT FALSE,
  enable_smtp               IN BOOLEAN DEFAULT FALSE,
  enable_anyp               IN BOOLEAN DEFAULT FALSE )

パラメータ

表22-18 CREATE_AQ_AGENTプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Streams AQインターネット・エージェントのユーザー名を指定します。

certification_location

LDAPにおけるエージェントの証明書の位置(デフォルトはNULL)。エージェントがSMTPを介してOracle Streams AQへのアクセスを許可されている場合、証明書をLDAPに登録する必要があります。HTTPを介してアクセスする場合は、証明書の位置は必要ありません。

enable_http

TRUEの場合、エージェントはHTTPを介してOracle Streams AQにアクセスできます。FALSEの場合、エージェントはHTTPを介してOracle Streams AQにアクセスできません。

enable_smtp

TRUEの場合、エージェントはSMTP(電子メール)を介してOracle Streams AQにアクセスできます。FALSEの場合、エージェントはSMTPを介してOracle Streams AQにアクセスできません。

enable_anyp

TRUEの場合、エージェントは任意のプロトコル(HTTPまたはSMTP)を介してOracle Streams AQにアクセスできます。


使用上の注意

SYS.AQ$INTERNET_USERSビューには、Oracle Streams AQインターネット・エージェントがすべてリストされます。


CREATE_NP_QUEUEプロシージャ


注意:

10g リリース2では、非永続キューの使用は推奨されていません。バッファに入れたメッセージを使用することをお薦めします。

このプロシージャは、非永続のRAWキューを作成します。

構文

DBMS_AQADM.CREATE_NP_QUEUE (
   queue_name              IN        VARCHAR2,
   multiple_consumers      IN        BOOLEAN  DEFAULT FALSE,
   comment                 IN        VARCHAR2 DEFAULT NULL);

パラメータ

表22-19 CREATE_NP_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

作成する非永続キューの名前。 名前はスキーマ内で重複しないようにし、『Oracle Database SQL言語リファレンス』のオブジェクト名のガイドラインに従う必要があります。

multiple_consumers

FALSEの場合、表内に作成されたキューには、各メッセージに対してコンシューマを1つのみ設定できます。これがデフォルトです。TRUEの場合、表内に作成されたキューには、各メッセージに対して複数のコンシューマを設定できます。

非永続キューは、ユーザーが作成したキュー表からこの特性を継承しないため、このパラメータはキュー・レベルで識別されることに注意してください。

comment

キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。


使用上の注意

キューは、シングル・コンシューマ・キューまたはマルチ・コンシューマ・キューのいずれかです。すべてのキュー名はスキーマ内で重複しないようにしてください。 キューは、キュー名で指定されたスキーマ内の8.1以上互換のシステム作成キュー表(AQ$_MEM_SCまたはAQ$_MEM_MC)に作成されます。

キュー名でスキーマ名が指定されていない場合、キューはログイン・ユーザーのスキーマ内に作成されます。 CREATE_NP_QUEUEでキューが作成された後、START_QUEUEをコールするとそのキューが使用可能になります。デフォルトでは、キューはエンキューおよびデキューともに使用禁止で作成されます。

非永続キューからはデキューできません。非永続キューからメッセージを取り出す唯一の方法は、OCI通知メカニズムを使用することです。非永続キューでは、LISTENコールは起動できません。


CREATE_QUEUEプロシージャ

このプロシージャは、指定したキュー表にキューを作成します。

構文

DBMS_AQADM.CREATE_QUEUE (
   queue_name          IN       VARCHAR2,
   queue_table         IN       VARCHAR2,
   queue_type          IN       BINARY_INTEGER DEFAULT NORMAL_QUEUE,
   max_retries         IN       NUMBER         DEFAULT NULL,
   retry_delay         IN       NUMBER         DEFAULT 0,
   retention_time      IN       NUMBER         DEFAULT 0,
   dependency_tracking IN       BOOLEAN        DEFAULT FALSE,
   comment             IN       VARCHAR2       DEFAULT NULL,
   auto_commit         IN       BOOLEAN        DEFAULT TRUE);

パラメータ

表22-20 CREATE_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

作成するキューの名前。 名前はスキーマ内で重複しないようにし、予約語については、『Oracle Database SQL言語リファレンス』のオブジェクト名のガイドラインに従う必要があります。

queue_table

キューを格納するキュー表の名前。

queue_type

作成されるキューが例外キューか標準キューかを指定します。 NORMAL_QUEUEの場合、キューは標準キューです。これがデフォルトです。 EXCEPTION_QUEUEの場合、キューは例外キューです。例外キューでは、デキュー操作のみ許可されます。

max_retries

REMOVEモードのデキューがメッセージ上で試行される回数を制限します。max_retriesの最大値は2**31 -1です。

RETRY_COUNTMAX_RETRIESより大きい場合、メッセージは例外キューにします。デキューの実行後にアプリケーションがロールバックを発行するたびに、RETRY_COUNTが増加します。サーバー・プロセスの停止(ALTER SYSTEM KILL SESSION)またはインスタンスのSHUTDOWN ABORTによって、デキュー・トランザクションが失敗した場合は、RETRY_COUNTは増加しません。

max_retriesはすべてのシングル・コンシューマ・キューおよび8.1以上互換のマルチ・コンシューマ・キューでサポートされていますが、8.0互換のマルチ・コンシューマ・キューではサポートされていないことに注意してください。

retry_delay

アプリケーションのロールバック後、このメッセージの再処理をスケジュールするまでの遅延時間(秒数)。

デフォルトは0(ゼロ)で、メッセージを最も迅速に取り出せます。 このパラメータは、max_retriesが0(ゼロ)に設定されている場合は無効です。retry_delayは、シングル・コンシューマ・キューおよび8.1以上互換のマルチ・コンシューマ・キューでサポートされていますが、8.0互換のマルチ・コンシューマ・キューではサポートされていないことに注意してください。

retention_time

キューからデキューされた後に、メッセージがキュー表に保持される秒数。INFINITEでは、メッセージが無期限で保持されます。NUMBERは、メッセージを保持する秒数です。デフォルトは0(ゼロ)で、保持されません。

dependency_tracking

将来使用するために予約されています。FALSEはデフォルトです。TRUEは、このリリースでは指定できません。

comment

キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。

auto_commit

TRUEの場合、現行のトランザクションがある場合は、CREATE_QUEUE操作が実行される前にコミットされます。 CREATE_QUEUE操作は、コールから戻ると持続されます。これがデフォルトです。FALSEの場合、この操作は現行トランザクションの一部で、コール元がコミットを入力した場合のみ持続されます。

注意: このパラメータは使用しないことをお薦めします。


使用上の注意

すべてのキュー名はスキーマ内で重複しないようにしてください。 CREATE_QUEUEでキューが作成された後、START_QUEUEをコールするとそのキューが使用可能になります。デフォルトでは、キューはエンキューおよびデキューともに使用禁止で作成されます。


CREATE_QUEUE_TABLEプロシージャ

このプロシージャは、事前定義タイプのメッセージ用のキュー表を作成します。

構文

DBMS_AQADM.CREATE_QUEUE_TABLE (
   queue_table          IN      VARCHAR2,
   queue_payload_type   IN      VARCHAR2,
   storage_clause       IN      VARCHAR2        DEFAULT NULL,
   sort_list            IN      VARCHAR2        DEFAULT NULL,
   multiple_consumers   IN      BOOLEAN         DEFAULT FALSE,
   message_grouping     IN      BINARY_INTEGER  DEFAULT NONE,
   comment              IN      VARCHAR2        DEFAULT NULL,
   auto_commit          IN      BOOLEAN         DEFAULT TRUE,
   primary_instance     IN      BINARY_INTEGER  DEFAULT 0,
   secondary_instance   IN      BINARY_INTEGER  DEFAULT 0,
   compatible           IN      VARCHAR2        DEFAULT NULL,
   secure               IN      BOOLEAN         DEFAULT FALSE);

パラメータ

表22-21 CREATE_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

作成するキュー表の名前。

queue_payload_type

格納されるユーザー・データのタイプ。このパラメータの有効値については、「タイプ名」を参照してください。

storage_clause

記憶域パラメータ。記憶域パラメータは、キュー表の作成時に、CREATE TABLE文に組み込まれます。 storage_clause引数には標準CREATE TABLE storage_clause引数で使用できるすべてのテキストを指定できます。記憶域パラメータは、PCTFREEPCTUSEDINITRANSMAXTRANSTABLEPSACELOBおよび表STORAGE句のパラメータの任意の組合せから構成できます。

ここで表領域が指定されない場合は、キュー表とそのすべての関連オブジェクトが、デフォルトのユーザー表領域に作成されます。ここで表領域が指定されると、キュー表とそのすべての関連オブジェクトが、STORAGE句で指定された表領域に作成されます。 これらのパラメータの使用方法は、『Oracle Database SQL言語リファレンス』を参照してください。

sort_list

昇順ソート・キーに使用する列。このパラメータの書式は次のとおりです。

'sort_column_1,sort_column_2'

使用可能な列名は、priorityおよびenq_timeです。 両方の列を指定する場合は、sort_column_1に優先順位を定義します。

特定の順序付けメカニズムでキュー表が作成されると、キュー表内のすべてのキューに同じデフォルトが設定されます。キュー表の順序は、キュー表の作成後には変更できません。

ソート・リストが指定されていない場合、このキュー表内のキューはすべて、エンキュー時に昇順ソートされます。この順序はFIFO順と同じです。

デフォルトの順序が定義されている場合でも、デキュー元はmsgidcorrelation. msgidまたはcorrelationを指定して、デキューするメッセージを選択できます。sequence_deviationが指定されている場合は、デフォルトのデキュー順序よりも優先されます。

multiple_consumers

FALSEの場合、表内に作成されたキューには、各メッセージに対してコンシューマを1つのみ設定できます。これがデフォルトです。TRUEの場合、表内に作成されたキューには、各メッセージに対して複数のコンシューマを設定できます。

message_grouping

表内に作成されたキューのメッセージ・グループ化に関する動作。NONEの場合、各メッセージは個々に処理されます。TRANSACTIONALでは、特定のトランザクションの一部としてエンキューされたメッセージ(複数)は同じグループに属するものとみなされ、関連するメッセージのグループとしてデキューできます。

comment

キュー表に関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。

auto_commit

TRUEの場合、現行のトランザクションがある場合は、CREATE_QUEUE_TABLE操作が実行される前にコミットされます。 CREATE_QUEUE_TABLE操作は、コールから戻ると持続されます。これがデフォルトです。FALSEの場合、この操作は現行トランザクションの一部で、コール元がコミットを入力した場合のみ持続されます。

注意: このパラメータは使用しないことをお薦めします。

primary_instance

キュー表のプライマリ所有者。キュー表内のキューに対するキュー・モニターのスケジューリングおよび伝播は、このインスタンス内で行われます。

プライマリ・インスタンスのデフォルト値は0(ゼロ)で、キュー・モニターのスケジューリングおよび伝播は、使用可能なすべてのインスタンス内で行われます。

secondary_instance

プライマリ・インスタンスが使用不可の場合、キュー表はセカンダリ・インスタンスにフェイルオーバーします。デフォルト値は0(ゼロ)で、キュー表は使用可能なすべてのインスタンスにフェイルオーバーします。

compatible

キューと互換性があるデータベースの最下位バージョン。現在、設定可能な値は、8.08.1または10.0のいずれかです。データベースが10.1互換モードの場合、デフォルト値は10.0です。データベースが8.1互換モードまたは9.2互換モードの場合、デフォルト値は8.1です。データベースが8.0互換モードの場合、デフォルト値は8.0です。

secure

保護キューのキュー表を使用する場合は、このパラメータをTRUEに設定する必要があります。保護キューとは、エンキューやデキューなどのキュー操作を実行できる1人以上のデータベース・ユーザーに対して、AQエージェントを明示的に関連付ける必要があるキューのことです。保護キューの所有者は、キューに対してすべてのキュー操作を実行できますが、他のユーザーは保護キュー・ユーザーとして設定されていない限り、保護キューに対してキュー操作を実行することはできません。


使用上の注意

デキュー順序のソート・キーがある場合は、表作成時に定義する必要があります。このときに次のオブジェクトが作成されます。

8.1互換以上のキュー表の場合は、次の索引構成表が作成されます。

aq$_queue_table_name_h: この索引構成表にはデキュー履歴データが格納されます。

CLOBBLOBおよびBFILEは、Oracle Streams AQオブジェクト・タイプのペイロードに関する有効な属性です。 ただし、Oracle8i リリース8.1.5以上でOracle Streams AQ伝播を使用して伝播できるのは、CLOBおよびBLOBのみです。 詳細は、『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。

互換パラメータのデフォルト値は、init.oraのデータベース互換モードにより異なります。データベースが10.1互換モードの場合、デフォルト値は10.0です。データベースが8.1互換モードまたは9.2互換モードの場合、デフォルト値は8.1です。データベースが8.0互換モードの場合、デフォルト値は8.0です。

primary_instancesecondary_instanceは、8.1以上互換モードでのみ指定および変更できます。プライマリ・インスタンスが存在しないと、セカンダリ・インスタンスは指定できません。


DEL_ALIAS_FROM_LDAPプロシージャ

このプロシージャは、キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPから削除します。

構文

DBMS_AQ.DEL_ALIAS_FROM_LDAP(
   alias IN VARCHAR2);

パラメータ

表22-22 DEL_ALIAS_FROM_LDAPプロシージャのパラメータ

パラメータ 説明

alias

削除する別名



DISABLE_DB_ACCESSプロシージャ

このプロシージャは、Oracle Streams AQインターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。

構文

DBMS_AQADM.DISABLE_DB_ACCESS (
  agent_name                IN VARCHAR2,
  db_username               IN VARCHAR2)

パラメータ

表22-23 DISABLE_DB_ACCESSプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Streams AQインターネット・エージェントのユーザー名を指定します。

db_username

Oracle Streams AQインターネット・エージェントから権限を取り消されるデータベース・ユーザーを指定します。


使用上の注意

ENABLE_DB_ACCESSプロシージャを使用して、事前にOracle Streams AQインターネット・エージェントに対してそれらの権限が付与されている必要があります。


DISABLE_PROPAGATION_SCHEDULEプロシージャ

このプロシージャは、伝播スケジュールを無効にします。

構文

DBMS_AQADM.DISABLE_PROPAGATION_SCHEDULE (
   queue_name            IN   VARCHAR2,
   destination           IN   VARCHAR2 DEFAULT NULL,
   destination_queue  IN  VARCHAR2 DEFAULT NULL);

パラメータ

表22-24 DISABLE_PROPAGATION_SCHEDULEプロシージャのパラメータ

パラメータ 説明

queue_name

伝播対象のメッセージがあるソース・キューの名前。スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。

destination

宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先がNULLの場合は、ローカル・データベースが宛先となり、メッセージはローカル・データベース内の他のキューに伝播されます。このフィールドの長さは128バイトに制限されており、名前が完全に修飾されていない場合は、デフォルトのドメイン名が使用されます。

destination_queue

dblinkの形式でメッセージが伝播される宛先キューの名前。



DROP_AQ_AGENTプロシージャ

このプロシージャは、Oracle Streams AQインターネット・アクセス用に登録されているエージェントを削除します。

構文

DBMS_AQADM.DROP_AQ_AGENT (
  agent_name                IN VARCHAR2)

パラメータ

表22-25 DROP_AQ_AGENTプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Streams AQインターネット・エージェントのユーザー名を指定します。



DROP_QUEUEプロシージャ

このプロシージャは、既存のキューを削除します。

構文

DBMS_AQADM.DROP_QUEUE (
   queue_name        IN    VARCHAR2,
   auto_commit       IN    BOOLEAN DEFAULT TRUE);

パラメータ

表22-26 DROP_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

削除するキューの名前。

auto_commit

TRUEの場合、現行のトランザクションがある場合は、DROP_QUEUE操作が実行される前にコミットされます。 DROP_QUEUE操作は、コールから戻ると持続されます。これがデフォルトです。FALSEの場合、この操作は現行トランザクションの一部で、コール元がコミットを入力した場合のみ持続されます。

注意: このパラメータは使用しないことをお薦めします。


使用上の注意

DROP_QUEUEは、STOP_QUEUEをコールして、キューに対するエンキューおよびデキューを使用禁止にしないと許可されません。すべてのキュー・データが、削除操作の一部として削除されます。


DROP_QUEUE_TABLEプロシージャ

このプロシージャは、既存のキュー表を削除します。

構文

DBMS_AQADM.DROP_QUEUE_TABLE (
   queue_table       IN    VARCHAR2,
   force             IN    BOOLEAN DEFAULT FALSE,
   auto_commit       IN    BOOLEAN DEFAULT TRUE);

パラメータ

表22-27 DROP_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

削除するキュー表の名前。

force

FALSEでは、表内にキューが存在する場合は操作は成功しません。これがデフォルトです。TRUEの場合、表内のすべてのキューが自動的に停止および削除されます。

auto_commit

TRUEの場合、現行のトランザクションがある場合は、DROP_QUEUE_TABLE操作が実行される前にコミットされます。 DROP_QUEUE_TABLE操作は、コールから戻ると持続されます。これがデフォルトです。FALSEの場合、この操作は現行トランザクションの一部で、コール元がコミットを入力した場合のみ持続されます。

注意: このパラメータは使用しないことをお薦めします。


使用上の注意

キュー表を削除するには、キュー表内のすべてのキューを停止し、削除しておく必要があります。この処理を自動的に実行するforceオプションを使用しない場合は、明示的に実行する必要があります。


ENABLE_DB_ACCESSプロシージャ

このプロシージャは、Oracle Streams AQインターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。

構文

DBMS_AQADM.ENABLE_DB_ACCESS (
  agent_name                IN VARCHAR2,
  db_username               IN VARCHAR2)

パラメータ

表22-28 ENABLE_DB_ACCESSプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Streams AQインターネット・エージェントのユーザー名を指定します。

db_username

Oracle Streams AQインターネット・エージェントに対する権限を付与されるデータベース・ユーザーを指定します。


使用上の注意

CREATE_AQ_AGENTプロシージャを使用して、事前にOracle Streams AQインターネット・エージェントを作成している必要があります。

保護キューの場合、メッセージの送信者エージェントと受信者エージェントが、エンキュー操作またはデキュー操作を実行するデータベース・ユーザーにマップされる必要があります。


関連項目:

保護キューの詳細は、『Oracle Streams概要および管理』を参照してください。

SYS.AQ$INTERNET_USERSビューには、Oracle Streams AQインターネット・エージェントおよび権限が付与されたデータベース・ユーザーの名前がすべてリストされます。


ENABLE_JMS_TYPESプロシージャ

DBMS_STREAMS_ADM.SET_UP_QUEUEの後にこのプロシージャをコールしない場合、JMSタイプおよびXMLタイプのエンキューがOracle Streams Sys.Anydataキューで機能しません。これらのタイプについてOracle Streamsキューを有効にした場合、キュー表のインポート/エクスポートに影響する可能性があります。

構文

DBMS_AQADM.ENABLE_JMS_TYPES (
   queue_table   IN   VARCHAR2);

パラメータ

表22-29 ENABLE_JMS_TYPESプロシージャのパラメータ

パラメータ 説明

queue_table

JMSタイプおよびXMLタイプについて使用可能にするキュー表の名前を指定します。



ENABLE_PROPAGATION_SCHEDULEプロシージャ

このプロシージャは、以前に使用禁止にした伝播スケジュールを使用可能にします。

構文

DBMS_AQADM.ENABLE_PROPAGATION_SCHEDULE (
   queue_name         IN   VARCHAR2,
   destination        IN   VARCHAR2 DEFAULT NULL,
   destination_queue  IN   VARCHAR2  DEFAULT NULL);

パラメータ

表22-30 ENABLE_PROPAGATION_SCHEDULEプロシージャのパラメータ

パラメータ 説明

queue_name

伝播対象のメッセージがあるソース・キューの名前。スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。

destination

宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先がNULLの場合は、ローカル・データベースが宛先となり、メッセージはローカル・データベース内の他のキューに伝播されます。このフィールドの長さは128バイトに制限されており、名前が完全に修飾されていない場合は、デフォルトのドメイン名が使用されます。

destination_queue

dblinkの形式でメッセージが伝播される宛先キューの名前。



GET_WATERMARKプロシージャ

このプロシージャは、SET_WATERMARKによって設定された水位標の値を取り出します。

構文

DBMS_AQADM.GET_WATERMARK (
   wmvalue     OUT      NUMBER);

パラメータ

表22-31 GET_WATERMARKプロシージャのパラメータ

パラメータ 説明

wmvalue

メガバイト単位での水位標の値。



GRANT_QUEUE_PRIVILEGEプロシージャ

このプロシージャは、ユーザーおよびロールにキューの権限を付与します。権限は、ENQUEUEまたはDEQUEUEです。初期設定では、キュー表の所有者のみがこのプロシージャを使用してそのキューの権限を付与できます。

構文

DBMS_AQADM.GRANT_QUEUE_PRIVILEGE (
   privilege        IN    VARCHAR2,
   queue_name       IN    VARCHAR2,
   grantee          IN    VARCHAR2,
   grant_option     IN    BOOLEAN := FALSE);

パラメータ

表22-32 GRANT_QUEUE_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

privilege

付与するOracle Streams AQキュー権限。ENQUEUEDEQUEUEおよびALLから選択できます。ALLは、ENQUEUEおよびDEQUEUEの両方の権限を付与します。

queue_name

キュー名。

grantee

権限受領者。 権限受領者には、ユーザー、ロールまたはPUBLICロールを指定できます。

grant_option

アクセス権限をGRANTオプション付きで付与するかどうかを指定します。権限がGRANTオプションを使用して付与される場合は、権限受領者はキュー表の所有権に関係なく、このプロシージャを使用して他のユーザーまたはロールにアクセス権限を付与できます。デフォルトはFALSEです。



GRANT_SYSTEM_PRIVILEGEプロシージャ

このプロシージャは、ユーザーおよびロールにOracle Streams AQシステム権限を付与します。 権限には、ENQUEUE_ANYDEQUEUE_ANYおよびMANAGE_ANYがあります。初期設定では、SYSおよびSYSTEMのみがこのプロシージャを正常に使用できます。

構文

DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE (
   privilege         IN    VARCHAR2,
   grantee           IN    VARCHAR2,
   admin_option      IN    BOOLEAN := FALSE);

パラメータ

表22-33 GRANT_SYSTEM_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

privilege

付与するOracle Streams AQシステム権限。ENQUEUE_ANYDEQUEUE_ANYおよびMANAGE_ANYから選択できます。 ENQUEUE_ANYでは、この権限を付与されたユーザーは、データベース内のすべてのキューにメッセージをエンキューできます。 DEQUEUE_ANYでは、この権限を付与されたユーザーは、データベース内のすべてのキューからメッセージをデキューできます。 MANAGE_ANYの場合は、この権限を付与されたユーザーは、データベース内のすべてのスキーマでDBMS_AQADMコールを実行できます。

grantee

権限受領者。 権限受領者には、ユーザー、ロールまたはPUBLICロールを指定できます。

admin_option

システム権限をADMINオプション付きで付与するかどうかを指定します。

権限がADMINオプションを使用して付与される場合は、権限受領者はこのプロシージャを使用して、他のユーザーまたはロールにシステム権限を付与できます。デフォルトはFALSEです。



MIGRATE_QUEUE_TABLEプロシージャ

このプロシージャは、8.0互換キュー表から8.1以上互換キュー表へのアップグレード、または8.1以上互換キュー表から8.0互換キュー表へのダウングレードを実行します。

構文

DBMS_AQADM.MIGRATE_QUEUE_TABLE (
   queue_table   IN   VARCHAR2,
   compatible    IN   VARCHAR2);

パラメータ

表22-34 MIGRATE_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

移行するキュー表の名前を指定します。

compatible

8.0互換キュー表をアップグレードする場合は8.1を設定します。8.1互換キュー表をダウングレードする場合は8.0を設定します。



PURGE_QUEUE_TABLEプロシージャ

このプロシージャは、キュー表からメッセージをパージします。シングル・コンシューマ・キュー表およびマルチ・コンシューマ・キュー表の両方で、永続メッセージおよびバッファに入れたメッセージに対する様々なパージ操作を実行できます。

構文

DBMS_AQADM.PURGE_QUEUE_TABLE(
   queue_table        IN   VARCHAR2,
   purge_condition    IN   VARCHAR2,
   purge_options      IN   aq$_purge_options_t);

タイプaq$_purge_options_tについては、第224章「Oracle Streams AQタイプ」を参照してください。

パラメータ

表22-35 PURGE_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

パージするキュー表の名前を指定します。

purge_condition

キュー表のパージ時に使用するパージ条件を指定します。パージ条件はSQL WHERE句の形式にする必要があり、大/小文字が区別されます。 条件はaq$queue_table_nameビューの列に基づきます。

purge_conditionを指定する場合は、aq$queue_table_nameビューの列名をqtviewで修飾します。

キュー表のすべてのキューをパージする場合、purge_conditionNULL(NULL値のみ、引用符なし)または''(2つの一重引用符)のいずれかを設定します。

purge_options

タイプaq$_purge_options_tは、blockパラメータおよびdelivery_modeパラメータを含みます。

  • blockTRUEの場合、キュー表をパージしている間は、キュー表に含まれるすべてのキューの排他ロックは解放されません。これにより、キュー表のパージ時にエンキュー実行者とデキュー実行者が同時にブロックされます。blockTRUEの場合、パージ・コールは常に成功します。blockのデフォルトはFALSEです。この場合、エンキュー実行者とデキュー実行者はブロックされませんが、同時実行回数が多いと、パージがエラーによって失敗する可能性があります。

  • パージするメッセージのタイプ(DBMS_AQADM.PERSISTENTDBMS_AQADM.BUFFERED、またはDBMS_AQADM.PERSISTENT_OR_BUFFERED)を指定するには、delivery_modeを使用します。バッファに入れたメッセージをパージする必要がある場合、任意のパージ条件は実装できません。


使用上の注意


QUEUE_SUBSCRIBERSファンクション

このファンクションは、PL/SQL索引付き表のコレクション・タイプDBMS_AQADM.AQ$_subscriber_list_tで、サブスクライバを8.0互換マルチ・コンシューマ・キューに返します。 コレクションの各要素のタイプはsys.aq$_agentです。 この機能は、AQ$queue_table_name_Sビューによって、8.1互換キューに対して提供されます。

構文

DBMS_AQADM.QUEUE_SUBSCRIBERS (
   queue_name         IN         VARCHAR2);
RETURN aq$_subscriber_list_t IS

パラメータ

表22-36 QUEUE_SUBSCRIBERSファンクションのパラメータ

パラメータ 説明

queue_name

サブスクライバを出力するキューを指定します。



REMOVE_SUBSCRIBERプロシージャ

このプロシージャは、キューからデフォルトのサブスクライバを削除します。この操作はすぐに有効となり、含まれるトランザクションがコミットされます。既存のメッセージ内のサブスクライバへの参照は、この操作の一部としてすべて削除されます。

構文

DBMS_AQADM.REMOVE_SUBSCRIBER (
   queue_name         IN         VARCHAR2,
   subscriber         IN         sys.aq$_agent);

パラメータ

表22-37 REMOVE_SUBSCRIBERプロシージャのパラメータ

パラメータ 説明

queue_name

キュー名。

subscriber

削除するエージェント。 「AQ$_AGENTタイプ」を参照してください。



REVOKE_QUEUE_PRIVILEGEプロシージャ

このプロシージャは、ユーザーおよびロールからキューの権限を取り消します。権限は、ENQUEUEまたはDEQUEUEです。

構文

DBMS_AQADM.REVOKE_QUEUE_PRIVILEGE (
   privilege         IN      VARCHAR2,
   queue_name        IN      VARCHAR2,
   grantee           IN      VARCHAR2);

パラメータ

表22-38 REVOKE_QUEUE_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

privilege

取り消すOracle Streams AQキュー権限。ENQUEUEDEQUEUEおよびALLから選択できます。ALLは、ENQUEUEおよびDEQUEUEの両方の権限を付与します。

queue_name

キュー名。

grantee

権限受領者。 権限受領者には、ユーザー、ロールまたはPUBLICロールを指定できます。権限受領者によってGRANTオプションを使用して権限が付与されている場合は、その権限も取り消されます。


使用上の注意

権限を取り消すには、取消し実行者がその権限の付与者である必要があります。GRANTオプションを使用して付与された権限は、付与者の権限が取り消されると、同様に取り消されます。


REVOKE_SYSTEM_PRIVILEGEプロシージャ

このプロシージャは、ユーザーおよびロールからOracle Streams AQシステム権限を取り消します。 権限には、ENQUEUE_ANYDEQUEUE_ANYおよびMANAGE_ANYがあります。システム権限のADMINオプションは、選択的に取り消すことはできません。

構文

DBMS_AQADM.REVOKE_SYSTEM_PRIVILEGE (
   privilege         IN   VARCHAR2,
   grantee           IN   VARCHAR2);

パラメータ

表22-39 REVOKE_SYSTEM_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

privilege

取り消すOracle Streams AQシステム権限。ENQUEUE_ANYDEQUEUE_ANYおよびMANAGE_ANYから選択できます。システム権限のADMINオプションは、選択的に取り消すことはできません。

grantee

権限受領者。 権限受領者には、ユーザー、ロールまたはPUBLICロールを指定できます。



SCHEDULE_PROPAGATIONプロシージャ

このプロシージャは、キューから特定のデータベース・リンクによって識別される宛先へのメッセージ伝播をスケジュールします。

構文

DBMS_AQADM.SCHEDULE_PROPAGATION (
   queue_name          IN    VARCHAR2,
   destination         IN    VARCHAR2 DEFAULT NULL,
   start_time          IN    DATE     DEFAULT SYSDATE,
   duration            IN    NUMBER   DEFAULT NULL,
   next_time           IN    VARCHAR2 DEFAULT NULL,
   latency             IN    NUMBER   DEFAULT 60,
   destination_queue   IN    VARCHAR2 DEFAULT NULL);

パラメータ

表22-40 SCHEDULE_PROPAGATIONプロシージャのパラメータ

パラメータ 説明

queue_name

伝播対象のメッセージがあるソース・キューの名前。スキーマ名を含みます。スキーマ名が指定されない場合は、デフォルトで管理ユーザーのスキーマ名に設定されます。

destination

宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先がNULLの場合は、ローカル・データベースが宛先となり、メッセージはローカル・データベース内の他のキューに伝播されます。このフィールドの長さは128バイトに制限されており、名前が完全に修飾されていない場合は、デフォルトのドメイン名が使用されます。

start_time

ソース・キューから宛先へのメッセージに関する伝播ウィンドウの初期起動時間。

duration

伝播ウィンドウの継続期間(秒数)。NULL値の場合、伝播ウィンドウは無期限または伝播スケジュールが取り消されるまで継続します。

next_time

現在の伝播ウィンドウの終了から次の伝播ウィンドウの開始を計算する日付ファンクション。この値がNULLの場合は、現在のウィンドウが終了すると伝播は停止されます。 たとえば、毎日同時刻にウィンドウを起動するには、next_timeにSYSDATE + 1 - duration/86400と指定します。

latency

伝播ウィンドウにおける、メッセージがエンキュー後に伝播されるまでの最大待機時間(秒数)。

たとえば、待機時間が60秒で伝播ウィンドウに伝播するメッセージがない場合、そのキューからのその宛先に対するメッセージは、最低60秒間伝播されません。

指定した宛先に対してメッセージを伝播するためにキューを再度チェックするまでの時間は、最短で60秒です。待機時間が600秒の場合、キューは10分間チェックされず、待機時間が0(ゼロ)の場合は、宛先に対するメッセージがエンキューされるまでジョブ・キュー・プロセスが待機することになります。メッセージは、エンキューされるとすぐに伝播されます。

destination_queue

dblinkの形式でメッセージが伝播される宛先キューの名前。


使用上の注意

宛先にNULLを指定すると、同じデータベース内の他のキューにもメッセージを伝播できます。同じ宛先にメッセージの受信者が複数存在する場合は、同じキューにあるか、異なるキューにあるかに関係なく、そのすべてに同時に伝播されます。


SET_WATERMARKプロシージャ

このプロシージャは、Oracle Streams AQ通知に使用して、メモリーの使用を指定し、制限します。

構文

DBMS_AQADM.SET_WATERMARK (
   wmvalue     IN      NUMBER);

パラメータ

表22-41 SET_WATERMARKプロシージャのパラメータ

パラメータ 説明

wmvalue

メガバイト単位での水位標の値。



START_QUEUEプロシージャ

このプロシージャは、指定したキューのエンキューまたはデキューを可能にします。

構文

DBMS_AQADM.START_QUEUE (
   queue_name      IN     VARCHAR2,
   enqueue         IN     BOOLEAN DEFAULT TRUE,
   dequeue         IN     BOOLEAN DEFAULT TRUE);

パラメータ

表22-42 START_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

使用可能にするキューの名前。

enqueue

このキューでENQUEUEを使用可能にするかどうかを指定します。TRUEの場合、ENQUEUEを使用可能にします。これがデフォルトです。FALSEの場合、現在の設定を変更しません。

dequeue

このキューでDEQUEUEを使用可能にするかどうかを指定します。TRUEの場合、DEQUEUEを使用可能にします。これがデフォルトです。FALSEの場合、現在の設定を変更しません。


使用上の注意

キューの作成後に、管理者はSTART_QUEUEを使用してキューを使用可能にする必要があります。デフォルトでは、ENQUEUEおよびDEQUEUEの両方が使用可能になります。例外キューでは、デキュー操作のみ許可されます。この操作はコールが完了すると有効になり、トランザクションの特性はありません。


STOP_QUEUEプロシージャ

このプロシージャは、指定したキューに対するエンキューまたはデキューを使用禁止にします。

構文

DBMS_AQADM.STOP_QUEUE (
   queue_name      IN   VARCHAR2,
   enqueue         IN   BOOLEAN DEFAULT TRUE,
   dequeue         IN   BOOLEAN DEFAULT TRUE,
   wait            IN   BOOLEAN DEFAULT TRUE);

パラメータ

表22-43 STOP_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

使用禁止にするキューの名前。

enqueue

このキューでENQUEUEを使用禁止にするかどうかを指定します。TRUEの場合、ENQUEUEを使用禁止にします。これがデフォルトです。FALSEの場合、現在の設定を変更しません。

dequeue

このキューでDEQUEUEを使用禁止にするかどうかを指定します。TRUEの場合、DEQUEUEを使用禁止にします。これがデフォルトです。FALSEの場合、現在の設定を変更しません。

wait

未処理のトランザクションの完了を待つかどうかを指定します。TRUEの場合、未処理のトランザクションがある場合は待機します。この状態では、このキューへのエンキューまたはこのキューからのデキューを行う新規トランザクションは許可されません。FALSEの場合、正常終了かエラーかをすぐに戻します。


使用上の注意

デフォルトでは、このプロシージャをコールするとENQUEUEおよびDEQUEUEの両方が使用禁止になります。キューに対する未処理のトランザクションがある場合、キューは停止できません。この操作はコールが完了すると有効になり、トランザクションの特性はありません。


UNSCHEDULE_PROPAGATIONプロシージャ

このプロシージャは、キューから特定のデータベース・リンクによって識別される宛先への以前にスケジュールされたメッセージ伝播のスケジュールを取り消します。

構文

DBMS_AQADM.UNSCHEDULE_PROPAGATION (
   queue_name         IN  VARCHAR2,
   destination        IN  VARCHAR2 DEFAULT NULL
   destination_queue  IN  VARCHAR2 DEFAULT NULL);

パラメータ

表22-44 UNSCHEDULE_PROPAGATIONプロシージャのパラメータ

パラメータ 説明

queue_name

伝播対象のメッセージがあるソース・キューの名前。スキーマ名を含みます。スキーマ名が指定されない場合は、デフォルトで管理ユーザーのスキーマ名に設定されます。

destination

宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先がNULLの場合は、ローカル・データベースが宛先となり、メッセージはローカル・データベース内の他のキューに伝播されます。このフィールドの長さは128バイトに制限されており、名前が完全に修飾されていない場合は、デフォルトのドメイン名が使用されます。

destination_queue

dblinkの形式でメッセージが伝播される宛先キューの名前。



VERIFY_QUEUE_TYPESプロシージャ

このプロシージャは、ソース・キューおよび宛先キューのタイプが同じであるかどうかを検証します。 検証結果は、sys.aq$_message_types表に格納され、このコマンドの以前の出力がすべて上書きされます。

構文

DBMS_AQADM.VERIFY_QUEUE_TYPES (
   src_queue_name    IN    VARCHAR2,
   dest_queue_name   IN    VARCHAR2,
   destination       IN    VARCHAR2 DEFAULT NULL,
   rc                OUT   BINARY_INTEGER);

パラメータ

表22-45 VERIFY_QUEUE_TYPESプロシージャのパラメータ

パラメータ 説明

src_queue_name

伝播対象のメッセージがあるソース・キューの名前。スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。

dest_queue_name

メッセージが伝播される宛先キューの名前。スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。

destination

宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先がNULLの場合は、ローカル・データベースが宛先となり、メッセージはローカル・データベース内の他のキューに伝播されます。このフィールドの長さは128バイトに制限されており、名前が完全に修飾されていない場合は、デフォルトのドメイン名が使用されます。

rc

プロシージャの結果を示すリターン・コード。エラーがなく、ソースと宛先のキュー・タイプが一致している場合、結果は1になります。一致していない場合、結果は0(ゼロ)になります。Oracleエラーが発生した場合は、rcに戻されます。