DBMS_AQADM
パッケージは、Oracle Databaseアドバンスト・キューイング(AQ)の構成および管理情報を管理するプロシージャを提供します。
関連項目:
|
この章では、次の項目について説明します。
セキュリティ・モデル
定数
キュー表サブプログラム
権限サブプログラム
キュー・サブプログラム
サブスクライバ・サブプログラム
通知サブプログラム
伝播サブプログラム
Oracle Streams AQエージェント・サブプログラム
別名サブプログラム
この項では、次の項目について説明します。
最初は、SYS
およびSYSTEM
のみに、DBMS_AQADM
およびDBMS_AQ
内のプロシージャの実行権限が付与されています。DBMS_AQ
とDBMS_AQADM
のEXECUTE
権限が付与されたユーザーは、自分のスキーマで、キューの作成、管理および使用ができます。MANAGE_ANY
AQシステム権限は、その他のスキーマでキューを作成したり管理したりするために使用し、DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE
で権限の付与、DBMS_AQADM.REVOKE_SYSTEM_PRIVILEGE
で権限の削除が行えます。
ユーザー・ロール
ユーザーにこのレベルの制御を付与する場合は、データベース管理者がDBMS_AQADM.GRANT_SYSTEM_PRIVILEGE
およびDBMS_AQADM.REVOKE_SYSTEM_PRIVILEGE
を直接データベース・ユーザーに対して実行し、システム権限ENQUEUE_ANY
およびDEQUEUE_ANY
を付与するオプションがあります。
アプリケーション開発者がキューに権限を付与するには、DBMS_AQADM.GRANT_QUEUE_PRIVILEGE
およびDBMS_AQADM.REVOKE_QUEUE_PRIVILEGE
を実行して、オブジェクト・レベルの権限を付与および取り消します。
伝播に必要なセキュリティ
伝播ジョブの所有者はSYS
ですが、伝播はキュー表の所有者のセキュリティ・コンテキスト内で発生します。以前は、伝播ジョブの所有者は、伝播をスケジューリングするユーザーで、伝播が発生するのは、伝播スケジュールを設定するユーザーのセキュリティ・コンテキスト内でした。キュー表の所有者には、DBMS_AQADM
パッケージのEXECUTE
権限が必要です。権限がない場合、Oracleデータベース・スナップショット・プロセスは、エラー識別子SYS.DBMS_AQADM
が定義されていないトレース・ファイルを伝播および生成しません。伝播には、キュー表の所有者が所有するプライベート・データベース・リンクを使用できます。接続文字列に指定されたユーザーには、リモート・データベース上のDBMS_AQ
パッケージおよびDBMS_AQADM
パッケージに対するEXECUTE
アクセス権限が必要です。
関連項目: 伝播する際のセキュリティ要件の詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。 |
キュー表の移行
MIGRATE_QUEUE_TABLE
プロシージャでは、キュー表の所有者(通常のキュー・ユーザー)にDBMS_AQADM
のEXECUTE
権限を付与する必要があります。通常のキュー・ユーザーに対してキューおよびキュー表の作成と削除、サブスクライバの追加と削除などを許可しない場合は、移行完了の直後にEXECUTE
権限を取り消す必要があります。
関連項目:
|
INFINITE
、TRANSACTIONAL
またはNORMAL_QUEUE
などの列挙定数を使用するときは、それを定義するパッケージの範囲内で、その記号を指定する必要があります。管理インタフェースに関連付けられているすべてのタイプには、DBMS_AQADM
を付加する必要があります。たとえば、DBMS_AQADM.NORMAL_QUEUE
のようにします。
表25-1 管理インタフェース内の列挙タイプ
パラメータ | オプション |
---|---|
|
|
|
|
|
|
DBMS_AQADMパッケージは、次のサブプログラム・グループで構成されています。
表25-4 キュー・サブプログラム
サブプログラム | 説明 |
---|---|
キューの既存のプロパティを変更します。 |
|
非永続の |
|
指定したキュー表にキューを作成します。 |
|
|
共有されるキュー用に、キューとそのキュー表をまとめて作成します。 |
|
データベース・キューイング・システムから既存の共有されているキューを削除します。 |
既存のキューを削除します。 |
|
PL/SQL索引付き表のコレクション・タイプ |
|
指定したキューのエンキューまたはデキューを使用可能にします。 |
|
指定したキューのエンキューまたはデキューを使用禁止にします。 |
表25-6 通知サブプログラム
サブプログラム | 説明 |
---|---|
|
|
Oracle Databaseアドバンスト・キューイングのストリーム・プールの最大メモリー制限値を取り出します。 |
|
|
Oracle Databaseアドバンスト・キューイングのストリーム・プールの最小メモリー制限値を取り出します。 |
|
Oracle Databaseアドバンスト・キューイング通知で、メモリーの使用を指定および制限するために使用されます。 |
Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最大メモリーの使用を指定および制限するために使用されます。 |
|
|
Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最小メモリーの使用を指定および制限するために使用されます。 |
表25-8 Oracle Streams AQエージェント・サブプログラム
サブプログラム | 説明 |
---|---|
Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントと、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを変更します。 |
|
HTTPまたはSMTPプロトコルを使用してOracle Databaseアドバンスト・キューイング・インターネット・アクセス用にエージェントを登録し、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを作成します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。 |
|
以前にOracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントを削除します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。 |
表25-10 DBMS_AQADMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
LDAPにキュー、エージェントまたはJMS ConnectionFactoryの別名を作成します。 |
|
キューにデフォルトのサブスクライバを追加します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントと、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを変更します。 |
|
伝播スケジュールのパラメータを変更します。 |
|
キューの既存のプロパティを変更します。 |
|
キュー表の既存のプロパティを変更します。 |
|
指定したキューに対するサブスクライバの既存プロパティを変更します。 |
|
HTTPまたはSMTPプロトコルを使用してOracle Databaseアドバンスト・キューイング・インターネット・アクセス用にエージェントを登録し、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを作成します。 |
|
非永続の |
|
指定したキュー表にキューを作成します。 |
|
|
共有されるキュー用に、キューとそのキュー表をまとめて作成します。 |
事前定義タイプのメッセージのキュー表を作成します。 |
|
|
データベース・キューイング・システムから既存の共有されているキューを削除します。 |
キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPから削除します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。 |
|
伝播スケジュールを使用禁止にします。 |
|
以前にOracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントを削除します。 |
|
既存のキューを削除します。 |
|
既存のキュー表を削除します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。 |
|
JMSタイプおよびXMLタイプのエンキューの事前条件です。 |
|
以前使用禁止にした伝播スケジュールを使用可能にします。 |
|
|
|
Oracle Databaseアドバンスト・キューイングのストリーム・プールの最大メモリー制限値を取り出します。 |
|
|
Oracle Databaseアドバンスト・キューイングのストリーム・プールの最小メモリー制限値を取り出します。 |
ユーザーおよびロールにキューの権限を付与します。 |
|
ユーザーおよびロールにOracle Databaseアドバンスト・キューイングのシステム権限を付与します。 |
|
8.0互換キュー表から8.1以上互換キュー表へのアップグレード、または8.1以上互換キュー表から8.0互換キュー表へのダウングレードを実行します。 |
|
キュー表からメッセージをパージします。 |
|
PL/SQL索引付き表のコレクション・タイプ |
|
キューからデフォルトのサブスクライバを削除します。 |
|
ユーザーおよびロールからキューの権限を取り消します。 |
|
ユーザーおよびロールからOracle Databaseアドバンスト・キューイングのシステム権限を取り消します。 |
|
キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播をスケジュールします。 |
|
|
Oracle Databaseアドバンスト・キューイング通知で、メモリーの使用を指定および制限するために使用されます。 |
Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最大メモリーの使用を指定および制限するために使用されます。 |
|
|
Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最小メモリーの使用を指定および制限するために使用されます。 |
指定したキューのエンキューまたはデキューを使用可能にします。 |
|
指定したキューのエンキューまたはデキューを使用禁止にします。 |
|
キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播の旧スケジュールを取り消します。 |
|
ソース・キューおよび宛先キューのタイプが同じかどうかを検証します。 |
このプロシージャは、キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPに作成します。別名は、LDAP階層においてデータベース・サーバーの識別名の下に直接配置されます。
このプロシージャは、キューにデフォルトのサブスクライバを追加します。
構文
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);
パラメータ
表25-12 ADD_SUBSCRIBERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
キュー名。 |
|
サブスクリプションを定義しようとしているエージェント。 |
|
メッセージ・プロパティ、メッセージ・データ・プロパティおよびPL/SQLファンクションに基づいた条件式。ルールはSQL問合せの メッセージ・ペイロード(オブジェクト・ペイロード)のルールを指定するには、句にオブジェクト・タイプの属性を使用します。各属性の前に修飾子として |
|
このサブスクライバがメッセージをデキューしたときに適用される変換を指定します。変換のソース・タイプは、キューのタイプと一致させる必要があります。サブスクライバがリモートで操作している場合、リモート・キューに伝播される前に変換が適用されます。 |
|
|
|
管理者は、サブスクライバで必要なメッセージの配信モードに、 |
このプロシージャは、Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントを変更します。セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを変更するためにも使用されます。
関連項目: 保護キューの詳細は、『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 )
パラメータ
表25-13 ALTER_AQ_AGENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。 |
|
LDAPにおけるエージェントの証明書の位置(デフォルトは |
|
|
|
|
|
|
このプロシージャは、伝播スケジュールのパラメータを変更します。
構文
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);
パラメータ
表25-14 ALTER_PROPAGATION_SCHEDULEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
伝播ウィンドウの継続期間(秒数)。 |
|
現在の伝播ウィンドウの終了から次の伝播ウィンドウの開始を計算する日付ファンクション。この値が |
|
伝播ウィンドウにおける、メッセージがエンキュー後に伝播されるまでの最大待機時間(秒数)。デフォルト値は、60です。注意: このコールに対して待機時間が指定されない場合、待機時間は既存の値をデフォルト値で上書きします。 たとえば、待機時間が60秒で伝播ウィンドウに伝播するメッセージがない場合、そのキューからのその宛先に対するメッセージは、最低60秒間伝播されません。指定した宛先に対してメッセージを伝播するためにキューを再度チェックするまでの時間は、最短で60秒になります。待機時間が600の場合、キューは10分間チェックされず、待機時間が0 (ゼロ)の場合は、宛先に対するメッセージがエンキューされるまでジョブ・キュー・プロセスが待機することになり、メッセージがエンキューされるとすぐに伝播されます。 |
|
|
このプロシージャは、キューの既存プロパティを変更します。パラメータmax_retries
、retention_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);
パラメータ
表25-15 ALTER_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変更するキューの名前。 |
|
|
|
アプリケーションのロールバック後、このメッセージの再処理をスケジュールするまでの遅延時間(秒数)。デフォルトは
|
|
デキュー後、メッセージがキュー表内に保持される時間(秒数)。デフォルトは |
|
注意: このパラメータは非推奨となっています。 |
|
キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。デフォルト値は |
このプロシージャは、キュー表の既存のプロパティを変更します。
構文
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);
パラメータ
表25-16 ALTER_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するキュー表の名前。 |
|
キュー表に関するユーザー指定の説明を変更します。このユーザー・コメントは、キュー・カタログに追加されます。デフォルト値は |
|
キュー表のプライマリ所有者。キュー表内のキューに対するキュー・モニターのスケジューリングおよび伝播は、このインスタンス内で行われます。デフォルト値は |
|
プライマリ・インスタンスが使用不可の場合、キュー表はセカンダリ・インスタンスにフェイルオーバーします。デフォルト値は |
このプロシージャは、指定したキューに対するサブスクライバの既存プロパティを変更します。ルールのみの変更が可能です。
構文
DBMS_AQADM.ALTER_SUBSCRIBER ( queue_name IN VARCHAR2, subscriber IN sys.aq$_agent, rule IN VARCHAR2 transformation IN VARCHAR2);
パラメータ
表25-17 ALTER_SUBSCRIBERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
キュー名。 |
|
サブスクリプションを変更するエージェント。「AQ$_AGENTタイプ」を参照してください。 |
|
メッセージ・プロパティ、メッセージ・データ・プロパティおよびPL/SQLファンクションに基づいた条件式。ルールのパラメータは4000バイト以内です。ルールを削除する場合は、ルール・パラメータを |
|
このサブスクライバがメッセージをデキューしたときに適用される変換を指定します。変換のソース・タイプは、キューのタイプと一致させる必要があります。サブスクライバがリモートで操作している場合、リモート・キューに伝播される前に変換が適用されます。 |
このプロシージャは、HTTPまたはSMTPプロトコルを使用して、Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用にエージェントを登録します。セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを作成するためにも使用されます。
関連項目: 保護キューの詳細は、『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 )
パラメータ
表25-18 CREATE_AQ_AGENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。 |
|
LDAPにおけるエージェントの証明書の位置(デフォルトは |
|
|
|
|
|
|
注意: リリース10gR2では、非永続キューの使用は推奨されていません。バッファに入れたメッセージを使用することをお薦めします。 |
このプロシージャは、非永続のRAW
キューを作成します。
構文
DBMS_AQADM.CREATE_NP_QUEUE ( queue_name IN VARCHAR2, multiple_consumers IN BOOLEAN DEFAULT FALSE, comment IN VARCHAR2 DEFAULT NULL);
パラメータ
表25-19 CREATE_NP_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成する非永続キューの名前。名前はスキーマ内で重複しないようにし、『Oracle Database SQL言語リファレンス』のオブジェクト名のガイドラインに従う必要があります。 |
|
非永続キューは、ユーザーが作成したキュー表からこの特性を継承しないため、このパラメータはキュー・レベルで識別されることに注意してください。 |
|
キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。 |
使用上の注意
キューは、シングル・コンシューマ・キューまたはマルチ・コンシューマ・キューのいずれかです。すべてのキュー名はスキーマ内で重複しないようにしてください。キューは、キュー名で指定されたスキーマ内の8.1以上互換のシステム作成キュー表(AQ$_MEM_SC
またはAQ$_MEM_MC
)に作成されます。
キュー名でスキーマ名が指定されていない場合、キューはログイン・ユーザーのスキーマ内に作成されます。CREATE_NP_QUEUE
でキューが作成された後、START_QUEUE
をコールするとそのキューが使用可能になります。デフォルトでは、キューはエンキューおよびデキューともに使用禁止で作成されます。
非永続キューからはデキューできません。非永続キューからメッセージを取り出す唯一の方法は、OCI通知メカニズムを使用することです。非永続キューでは、LISTEN
コールは起動できません。
このプロシージャは、指定したキュー表にキューを作成します。
構文
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);
パラメータ
表25-20 CREATE_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するキューの名前。名前はスキーマ内で重複しないようにし、予約語については、『Oracle Database SQL言語リファレンス』のオブジェクト名のガイドラインに従う必要があります。 |
|
キューを格納するキュー表の名前。 |
|
作成されるキューが例外キューか標準キューかを指定します。 |
|
|
|
アプリケーションのロールバック後、このメッセージの再処理をスケジュールするまでの遅延時間(秒数)。 デフォルトは0(ゼロ)で、メッセージを最も迅速に取り出せます。このパラメータは、 |
|
キューからデキューされた後に、メッセージがキュー表に保持される秒数。 |
|
将来使用するために予約されています。 |
|
キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。 |
|
注意: このパラメータは非推奨となっています。 |
CREATE_SHARDED_QUEUE
は、12cリリース1(12.1)の新しいAPIで、JMSの共有されたキューに適したキューとキュー表を作成します。このAPIは、共有されていないキューの作成には使用できません。JMSの共有されたキューは、この統合された単一のAPIを使用して作成する必要があります。これにより、JMSでAQプロパティが必要に応じて自動的に設定されます。
JMSの共有されたキューは、シングル・コンシューマ・キューとマルチ・コンシューマ・キューのいずれかとして作成可能です。
構文
PROCEDURE CREATE_SHARDED_QUEUE ( queue_name IN VARCHAR2, storage_clause IN VARCHAR2 DEFAULT NULL, multiple_consumers IN BOOLEAN DEFAULT FALSE, max_retries IN NUMBER DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL);
パラメータ
表25-21 CREATE_SHARDED_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
この必須パラメータは、新しいキューの名前を指定します。 |
|
記憶域パラメータは、キュー表の作成時に、 ここで表領域が指定されない場合は、キュー表とそのすべての関連オブジェクトが、デフォルトのユーザー表領域に作成されます。ここで表領域が指定されると、キュー表とそのすべての関連オブジェクトが、STORAGE句で指定された表領域に作成されます。これらのパラメータの使用方法は、『Oracle Database SQL言語リファレンス』を参照してください。 |
|
|
|
このオプション・パラメータは、メッセージのデキューに失敗した後に再試行できる回数を制限します。 |
|
このオプション・パラメータは、ユーザーが指定したキュー表の説明です。このユーザー・コメントは、キュー・カタログに追加されます。 |
このプロシージャは、データベース・キューイング・システムから既存の共有されているキューを削除します。DROP_SHARDED_QUEUE
をコールする前に、キューを停止する必要があります。forceをFALSE
に設定した場合、ユーザーはDROP_SHARDED_QUEUE
をコールする前にキューを明示的に停止する必要があります。forceをTRUE
に設定した場合、キューは内部的に停止されてから削除されます。
このプロシージャは、事前定義タイプのメッセージ用のキュー表を作成します。
構文
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);
パラメータ
表25-23 CREATE_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するキュー表の名前。 |
|
格納されるユーザー・データのタイプ。このパラメータの有効値については、「タイプ名」を参照してください。 |
|
記憶域パラメータ。記憶域パラメータは、キュー表の作成時に、 ここで表領域が指定されない場合は、キュー表とそのすべての関連オブジェクトが、デフォルトのユーザー表領域に作成されます。ここで表領域が指定されると、キュー表とそのすべての関連オブジェクトが、STORAGE句で指定された表領域に作成されます。これらのパラメータの使用方法は、『Oracle Database SQL言語リファレンス』を参照してください。 |
|
昇順ソート・キーに使用する列。このパラメータの書式は次のとおりです。 ' 指定できる列名は、 特定の順序付けメカニズムでキュー表が作成されると、キュー表内のすべてのキューに同じデフォルトが設定されます。キュー表の順序は、キュー表の作成後には変更できません。 ソート・リストが指定されていない場合、このキュー表内のキューはすべて、エンキュー時に昇順ソートされます。この順序はFIFO順と同じです。 デフォルトの順序が定義されている場合でも、デキュー元は
Oracle Databaseアドバンスト・キューイングでのメッセージの順序付けについては、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』のメッセージの優先順位と順序付けに関する項も参照してください。 |
|
|
|
表内に作成されたキューのメッセージ・グループ化に関する動作。 |
|
キュー表に関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。 |
|
注意: このパラメータは非推奨となっています。 |
|
キュー表のプライマリ所有者。キュー表内のキューに対するキュー・モニターのスケジューリングおよび伝播は、このインスタンス内で行われます。 プライマリ・インスタンスのデフォルト値は0(ゼロ)で、キュー・モニターのスケジューリングおよび伝播は、使用可能なすべてのインスタンス内で行われます。 |
|
プライマリ・インスタンスが使用不可の場合、キュー表はセカンダリ・インスタンスにフェイルオーバーします。デフォルト値は0(ゼロ)で、キュー表は使用可能なすべてのインスタンスにフェイルオーバーします。 |
|
キューと互換性があるデータベースの最下位バージョン。現在、設定可能な値は、 |
|
保護キューのキュー表を使用する場合は、このパラメータを |
使用上の注意
デキュー順序のソート・キーがある場合は、表作成時に定義する必要があります。このときに次のオブジェクトが作成されます。
aq$_
queue_table_name
_e
: キュー表に関連付けられているデフォルトの例外キューです。
aq$
queue_table_name
: Oracle Databaseアドバンスト・キューイング・アプリケーションでのキュー・データの問合せに使用する読取り専用ビューです。
aq$_
queue_table_name
_t
: キュー・モニター操作用の索引(マルチ・コンシューマ・キューの場合は索引構成表)です。
aq$_
queue_table_name
_i
: デキュー操作用の索引(マルチ・コンシューマ・キューの場合は索引構成表)です。
8.1互換以上のキュー表の場合は、次の索引構成表が作成されます。
aq$_
queue_table_name
_s
: この表にはサブスクライバに関する情報が格納されます。
aq$_
queue_table_name
_r
: この表にはサブスクリプションのルールに関する情報が格納されます。
aq$_
queue_table_name
_h
: この索引構成表にはデキュー履歴データが格納されます。
CLOB
、BLOB
およびBFILE
は、Oracle Databaseアドバンスト・キューイングのオブジェクト・タイプ・ペイロードに有効な属性です。ただし、Oracle8i
リリース8.1.5以降では、Oracle Databaseアドバンスト・キューイング伝播を使用して伝播できるのはCLOB
とBLOBのみです。詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。
互換パラメータのデフォルト値は、init.ora
のデータベース互換モードにより異なります。データベースが10.1互換モードの場合、デフォルト値は10.0です。データベースが8.1互換モードまたは9.2互換モードの場合、デフォルト値は8.1です。データベースが8.0互換モードの場合、デフォルト値は8.0です。
primary_instance
とsecondary_instance
は、8.1以上互換モードでのみ指定および変更できます。プライマリ・インスタンスが存在しないと、セカンダリ・インスタンスは指定できません。
このプロシージャは、Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。
使用上の注意
ENABLE_DB_ACCESSプロシージャを使用して、事前にOracle Databaseアドバンスト・キューイング・インターネット・エージェントに対してそれらの権限が付与されている必要があります。
このプロシージャは、伝播スケジュールを無効にします。
構文
DBMS_AQADM.DISABLE_PROPAGATION_SCHEDULE ( queue_name IN VARCHAR2, destination IN VARCHAR2 DEFAULT NULL, destination_queue IN VARCHAR2 DEFAULT NULL);
パラメータ
表25-26 DISABLE_PROPAGATION_SCHEDULEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
|
このプロシージャは、既存のキュー表を削除します。
構文
DBMS_AQADM.DROP_QUEUE_TABLE ( queue_table IN VARCHAR2, force IN BOOLEAN DEFAULT FALSE, auto_commit IN BOOLEAN DEFAULT TRUE);
パラメータ
表25-29 DROP_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するキュー表の名前。 |
|
|
|
注意: このパラメータは非推奨となっています。 |
このプロシージャは、Oracle Databaseアドバンスト・キューイング・インターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。
使用上の注意
CREATE_AQ_AGENTプロシージャを使用して、事前にOracle Databaseアドバンスト・キューイング・インターネット・エージェントを作成している必要があります。
保護キューの場合、メッセージの送信者エージェントと受信者エージェントが、エンキュー操作またはデキュー操作を実行するデータベース・ユーザーにマップされる必要があります。
関連項目: 保護キューの詳細は、『Oracle Streams概要および管理』を参照してください。 |
SYS.AQ$INTERNET_USERS
ビューには、すべてのOracle Databaseアドバンスト・キューイング・インターネット・エージェント、および権限が付与されているデータベース・ユーザーの名前のリストが表示されます。
DBMS_STREAMS_ADM.SET_UP_QUEUE
の後にこのプロシージャをコールしない場合、JMSタイプおよびXMLタイプのエンキューがOracle Streams Sys.Anydata
キューで機能しません。これらのタイプについてOracle Streamsキューを有効にした場合、キュー表のインポート/エクスポートに影響する可能性があります。
このプロシージャは、以前に使用禁止にした伝播スケジュールを使用可能にします。
構文
DBMS_AQADM.ENABLE_PROPAGATION_SCHEDULE ( queue_name IN VARCHAR2, destination IN VARCHAR2 DEFAULT NULL, destination_queue IN VARCHAR2 DEFAULT NULL);
パラメータ
表25-32 ENABLE_PROPAGATION_SCHEDULEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
|
このプロシージャは、ユーザーおよびロールにキューの権限を付与します。権限は、ENQUEUE
またはDEQUEUE
です。初期設定では、キュー表の所有者のみがこのプロシージャを使用してそのキューの権限を付与できます。
構文
DBMS_AQADM.GRANT_QUEUE_PRIVILEGE ( privilege IN VARCHAR2, queue_name IN VARCHAR2, grantee IN VARCHAR2, grant_option IN BOOLEAN := FALSE);
パラメータ
表25-36 GRANT_QUEUE_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
付与するOracle Databaseアドバンスト・キューイングのキュー権限。 |
|
キュー名。 |
|
権限受領者。権限受領者には、ユーザー、ロールまたは |
|
アクセス権限を |
このプロシージャは、ユーザーおよびロールにOracle Databaseアドバンスト・キューイングのシステム権限を付与します。権限には、ENQUEUE_ANY
、DEQUEUE_ANY
およびMANAGE_ANY
があります。初期設定では、SYS
およびSYSTEM
のみがこのプロシージャを正常に使用できます。
構文
DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE ( privilege IN VARCHAR2, grantee IN VARCHAR2, admin_option IN BOOLEAN := FALSE);
パラメータ
表25-37 GRANT_SYSTEM_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
付与するOracle Databaseアドバンスト・キューイングのシステム権限。 |
|
権限受領者。権限受領者には、ユーザー、ロールまたは |
|
システム権限を 権限が |
このプロシージャは、8.0互換キュー表から8.1以上互換キュー表へのアップグレード、または8.1以上互換キュー表から8.0互換キュー表へのダウングレードを実行します。
このプロシージャは、キュー表からメッセージをパージします。シングル・コンシューマ・キュー表およびマルチ・コンシューマ・キュー表の両方で、永続メッセージおよびバッファに入れたメッセージに対する様々なパージ操作を実行できます。
構文
DBMS_AQADM.PURGE_QUEUE_TABLE( queue_table IN VARCHAR2, purge_condition IN VARCHAR2, purge_options IN aq$_purge_options_t);
aq$_purge_options_t
タイプについては、第271章「Oracle Databaseアドバンスト・キューイング(AQ)のタイプ」を参照してください。
パラメータ
表25-39 PURGE_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パージするキュー表の名前を指定します。 |
|
キュー表のパージ時に使用するパージ条件を指定します。パージ条件はSQL
キュー表のすべてのキューをパージする場合、 |
|
タイプ
|
使用上の注意
purge_conditionを指定すると、選択したメッセージをキュー表からパージできます。これらのパラメータについては、表25-39を参照してください。キュー表のパージ中に、メッセージをキュー表にエンキューしたりキュー表からデキューできます。
このプロシージャを実行すると、トレース・ファイルがudump
の宛先に生成されます。プロシージャの実行内容の詳細が示されます。
このプロシージャは、自律型トランザクションのメッセージのバッチをコミットします。このような自律型トランザクションは、キュー表のメッセージ数に応じてpurge_queue_table
コールの一部として実行できます。
このファンクションは、PL/SQL索引付き表のコレクション・タイプDBMS_AQADM.AQ$_subscriber_list_t
で、サブスクライバを8.0互換マルチ・コンシューマ・キューに返します。コレクションの各要素のタイプはsys.aq$_agent
です。この機能は、AQ$
queue_table_name
_S
ビューによって、8.1互換キューに対して提供されます。
このプロシージャは、キューからデフォルトのサブスクライバを削除します。この操作はすぐに有効となり、含まれるトランザクションがコミットされます。既存のメッセージ内のサブスクライバへの参照は、この操作の一部としてすべて削除されます。
パラメータ
表25-41 REMOVE_SUBSCRIBERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
キュー名。 |
|
削除するエージェント。「AQ$_AGENTタイプ」を参照してください。 |
このプロシージャは、ユーザーおよびロールからキューの権限を取り消します。権限は、ENQUEUE
またはDEQUEUE
です。
構文
DBMS_AQADM.REVOKE_QUEUE_PRIVILEGE ( privilege IN VARCHAR2, queue_name IN VARCHAR2, grantee IN VARCHAR2);
このプロシージャは、ユーザーおよびロールからOracle Databaseアドバンスト・キューイングのシステム権限を取り消します。権限には、ENQUEUE_ANY
、DEQUEUE_ANY
およびMANAGE_ANY
があります。システム権限のADMIN
オプションは、選択的に取り消すことはできません。
このプロシージャは、キューから特定のデータベース・リンクによって識別される宛先へのメッセージ伝播をスケジュールします。
構文
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);
パラメータ
表25-44 SCHEDULE_PROPAGATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されない場合は、デフォルトで管理ユーザーのスキーマ名に設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
ソース・キューから宛先へのメッセージに関する伝播ウィンドウの初期起動時間。 |
|
伝播ウィンドウの継続期間(秒数)。 |
|
現在の伝播ウィンドウの終了から次の伝播ウィンドウの開始を計算する日付ファンクション。この値が |
|
伝播ウィンドウにおける、メッセージがエンキュー後に伝播されるまでの最大待機時間(秒数)。 たとえば、待機時間が60秒で伝播ウィンドウに伝播するメッセージがない場合、そのキューからのその宛先に対するメッセージは、最低60秒間伝播されません。 指定した宛先に対してメッセージを伝播するためにキューを再度チェックするまでの時間は、最短で60秒です。待機時間が600秒の場合、キューは10分間チェックされず、待機時間が0(ゼロ)の場合は、宛先に対するメッセージがエンキューされるまでジョブ・キュー・プロセスが待機することになります。メッセージは、エンキューされるとすぐに伝播されます。 |
|
|
このプロシージャはOracle Databaseアドバンスト・キューイングで、ストリーム・プールの最大メモリーの使用を指定および制限するために使用されます。
このプロシージャはOracle Databaseアドバンスト・キューイングで、ストリーム・プールの最小メモリーの使用を指定および制限するために使用されます。
このプロシージャは、指定したキューのエンキューまたはデキューを可能にします。
構文
DBMS_AQADM.START_QUEUE ( queue_name IN VARCHAR2, enqueue IN BOOLEAN DEFAULT TRUE, dequeue IN BOOLEAN DEFAULT TRUE);
このプロシージャは、指定したキューに対するエンキューまたはデキューを使用禁止にします。
構文
DBMS_AQADM.STOP_QUEUE ( queue_name IN VARCHAR2, enqueue IN BOOLEAN DEFAULT TRUE, dequeue IN BOOLEAN DEFAULT TRUE, wait IN BOOLEAN DEFAULT TRUE);
パラメータ
表25-49 STOP_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
使用禁止にするキューの名前。 |
|
このキューで |
|
このキューで |
|
未処理のトランザクションの完了を待つかどうかを指定します。 |
このプロシージャは、キューから特定のデータベース・リンクによって識別される宛先への以前にスケジュールされたメッセージ伝播のスケジュールを取り消します。
構文
DBMS_AQADM.UNSCHEDULE_PROPAGATION ( queue_name IN VARCHAR2, destination IN VARCHAR2 DEFAULT NULL destination_queue IN VARCHAR2 DEFAULT NULL);
パラメータ
表25-50 UNSCHEDULE_PROPAGATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されない場合は、デフォルトで管理ユーザーのスキーマ名に設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
|
このプロシージャは、ソース・キューおよび宛先キューのタイプが同じであるかどうかを検証します。検証結果は、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);
パラメータ
表25-51 VERIFY_QUEUE_TYPESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
メッセージが伝播される宛先キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
プロシージャの結果を示すリターン・コード。エラーがなく、ソースと宛先のキュー・タイプが一致している場合、結果は1になります。一致していない場合、結果は0(ゼロ)になります。Oracleエラーが発生した場合は、 |