26 DBMS_AQADM
DBMS_AQADM
パッケージは、Oracle Databaseアドバンスト・キューイング(AQ)の構成および管理情報を管理するプロシージャを提供します。
参照:
-
DBMS_AQADM
と一緒に使用するTYPE
については、「Oracle Databaseアドバンスト・キューイング(AQ)のタイプ」を参照してください。
この章のトピックは、次のとおりです:
26.1 DBMS_AQADMのセキュリティ・モデル
最初は、SYS
およびSYSTEM
のみに、DBMS_AQADM
およびDBMS_AQ
内のプロシージャの実行権限が付与されています。DBMS_AQ
とDBMS_AQADM
のEXECUTE
権限が付与されたユーザーは、自分のスキーマで、キューの作成、管理および使用ができます。MANAGE_ANY
AQシステム権限は、その他のスキーマでキューを作成したり管理したりするために使用し、DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE
で権限の付与、DBMS_AQADM.REVOKE_SYSTEM_PRIVILEGE
で権限の削除が行えます。Oracle Database 12cリリース2以降、MANAGE_ANY
権限では、SYS
以外のユーザーがSYS
所有のキューにアクセスできなくなりました。
ユーザー・ロール
ユーザーにこのレベルの制御を付与する場合は、データベース管理者がDBMS_AQADM.GRANT_SYSTEM_PRIVILEGE
およびDBMS_AQADM.REVOKE_SYSTEM_PRIVILEGE
を直接データベース・ユーザーに対して実行し、システム権限ENQUEUE_ANY
およびDEQUEUE_ANY
を付与するオプションがあります。
アプリケーション開発者がキューに権限を付与するには、DBMS_AQADM.GRANT_QUEUE_PRIVILEGE
およびDBMS_AQADM.REVOKE_QUEUE_PRIVILEGE
を実行して、オブジェクト・レベルの権限を付与および取り消します。Oracle Database 12cリリース2以降、ENQUEUE_ANY
およびDEQUEUE_ANY
権限では、SYS
以外のユーザーがSYS
所有のキューにアクセスできなくなりました。
参照:
-
キュー権限およびアクセス制御の詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。
伝播に必要なセキュリティ
伝播ジョブの所有者はSYS
ですが、伝播はキュー表の所有者のセキュリティ・コンテキスト内で発生します。以前は、伝播ジョブの所有者は、伝播をスケジューリングするユーザーで、伝播が発生するのは、伝播スケジュールを設定するユーザーのセキュリティ・コンテキスト内でした。キュー表の所有者には、DBMS_AQADM
パッケージのEXECUTE
権限が必要です。権限がない場合、Oracleデータベース・スナップショット・プロセスは、エラー識別子SYS.DBMS_AQADM
が定義されていないトレース・ファイルを伝播および生成しません。伝播には、キュー表の所有者が所有するプライベート・データベース・リンクを使用できます。接続文字列に指定されたユーザーには、リモート・データベース上のDBMS_AQ
パッケージおよびDBMS_AQADM
パッケージに対するEXECUTE
アクセス権限が必要です。
参照:
伝播する際のセキュリティ要件の詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。
キュー表の移行
MIGRATE_QUEUE_TABLE
プロシージャでは、キュー表の所有者(通常のキュー・ユーザー)にDBMS_AQADM
のEXECUTE
権限を付与する必要があります。通常のキュー・ユーザーに対してキューおよびキュー表の作成と削除、サブスクライバの追加と削除などを許可しない場合は、移行完了の直後にEXECUTE
権限を取り消す必要があります。
参照:
-
Oracle Databaseアドバンスト・キューイングのシステム権限の付与の詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。
26.2 DBMS_AQADMの定数
INFINITE
、TRANSACTIONAL
またはNORMAL_QUEUE
などの列挙定数を使用するときは、それを定義するパッケージの範囲内で、その記号を指定する必要があります。管理インタフェースに関連付ける型の前には、必ずDBMS_AQADM
を付加します。たとえば、DBMS_AQADM.NORMAL_QUEUE
のようにします。
表26-1 管理インタフェース内の列挙タイプ
パラメータ | オプション |
---|---|
|
|
|
|
|
|
参照:
DBMS_AQ
およびDBMS_AQADM
で使用されるJavaクラスとデータ構造の詳細は、 「DBMS_AQ」パッケージを参照してください。
26.3 DBMS_AQADMのサブプログラム・グループ
この項では、DBMS_AQADMのサブプログラム・グループについて説明しています。
DBMS_AQADMパッケージは、次のサブプログラム・グループで構成されています。
26.3.1 DBMS_AQADMキュー表サブプログラム
この項では、DBMS_AQADMキュー表サブプログラムとその説明を示します。
表26-2 キュー表サブプログラム
サブプログラム | 説明 |
---|---|
キュー表の既存のプロパティを変更します。 |
|
事前定義タイプのメッセージのキュー表を作成します。 |
|
既存のキュー表を削除します。 |
|
JMSタイプおよびXMLタイプのエンキューの事前条件です。 |
|
8.0互換キュー表から8.1以上互換キュー表へのアップグレード、または8.1以上互換キュー表から8.0互換キュー表へのダウングレードを実行します。 |
|
キュー表からメッセージをパージします。 |
26.3.2 DBMS_AQADM権限サブプログラム
この項では、DBMS_AQADM権限サブプログラムとその説明を示します。
表26-3 権限サブプログラム
サブプログラム | 説明 |
---|---|
ユーザーおよびロールにキューの権限を付与します。 |
|
ユーザーおよびロールにOracle Databaseアドバンスト・キューイングのシステム権限を付与します。 |
|
ユーザーおよびロールからキューの権限を取り消します。 |
|
ユーザーおよびロールからOracle Databaseアドバンスト・キューイングのシステム権限を取り消します。 |
26.3.3 DBMS_AQADMキュー・サブプログラム
この項では、DBMS_AQADMキュー・サブプログラムとその説明を示します。
表26-4 キュー・サブプログラム
サブプログラム | 説明 |
---|---|
キューの既存のプロパティを変更します。 |
|
非永続の |
|
指定したキュー表にキューを作成します。 |
|
シャード・キュー用に、キューとそのキュー表をまとめて作成します。 |
|
データベース・キューイング・システムから既存のシャード・キューを削除します。 |
|
データベース・キューイング・システムのシャード・キューを変更します。 |
|
シャード・キューの例外キューを作成します。 |
|
既存のキューを削除します。 |
|
PL/SQL索引付き表のコレクション・タイプ |
|
指定したキューのエンキューまたはデキューを使用可能にします。 |
|
指定したキューのエンキューまたはデキューを使用禁止にします。 |
26.3.4 DBMS_AQADMサブスクライバ・サブプログラム
この項では、DBMS_AQADMサブスクライバ・サブプログラムとその説明を示します。
表26-5 サブスクライバ・サブプログラム
サブプログラム | 説明 |
---|---|
キューにデフォルトのサブスクライバを追加します。 |
|
指定したキューに対するサブスクライバの既存プロパティを変更します。 |
|
キューからデフォルトのサブスクライバを削除します。 |
26.3.5 DBMS_AQADM伝播サブプログラム
この項では、DBMS_AQADM伝播サブプログラムとその説明を示します。
表26-6 伝播サブプログラム
サブプログラム | 説明 |
---|---|
伝播スケジュールのパラメータを変更します。 |
|
伝播スケジュールを使用禁止にします。 |
|
以前使用禁止にした伝播スケジュールを使用可能にします。 |
|
キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播をスケジュールします。 |
|
キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播の旧スケジュールを取り消します。 |
|
ソース・キューおよび宛先キューのタイプが同じかどうかを検証します。 |
26.3.6 DBMS_AQADMのその他のサブプログラム
この項では、DBMS_AQADMのその他のサブプログラムとその説明を示します。
表26-7 その他のサブプログラム
サブプログラム | 説明 |
---|---|
シャード・キューの様々なパラメータをキューまたはデータベース・レベルで取得するために使用されます。 |
|
Oracle Databaseアドバンスト・キューイングのストリーム・プールの最大メモリー制限値を取り出します。 |
|
Oracle Databaseアドバンスト・キューイングのストリーム・プールの最小メモリー制限値を取り出します。 |
|
|
|
シャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定するために使用されます。 |
|
Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最大メモリーの使用を指定および制限するために使用されます。 |
|
Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最小メモリーの使用を指定および制限するために使用されます。 |
|
Oracle Databaseアドバンスト・キューイング通知で、メモリーの使用を指定および制限するために使用されます。 |
|
シャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定解除するために使用されます。 |
26.3.7 DBMS_AQADMエージェント・サブプログラム
この項では、DBMS_AQADMエージェントのサブプログラムとその説明を示します。
表26-8 Oracle Streams AQエージェント・サブプログラム
サブプログラム | 説明 |
---|---|
Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントと、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを変更します。 |
|
HTTPまたはSMTPプロトコルを使用してOracle Databaseアドバンスト・キューイング・インターネット・アクセス用にエージェントを登録し、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを作成します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。 |
|
以前にOracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントを削除します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。 |
26.4 DBMS_AQADMサブプログラムの要約
この項では、DBMS_AQADMパッケージのサブプログラムについて説明しています。
表26-10 DBMS_AQADMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
LDAPにキュー、エージェントまたはJMS ConnectionFactoryの別名を作成します。 |
|
キューにデフォルトのサブスクライバを追加します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントと、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを変更します。 |
|
伝播スケジュールのパラメータを変更します。 |
|
キューの既存のプロパティを変更します。 |
|
キュー表の既存のプロパティを変更します。 |
|
シャード・キューの Oracle Database 20c以降では、シャード・キューは非推奨であり、将来のリリースでサポートされなくなります。かわりにトランザクション・イベント・キュー(TEQ)を使用してください。 |
|
指定したキューに対するサブスクライバの既存プロパティを変更します。 |
|
TEQキューの |
|
HTTPまたはSMTPプロトコルを使用してOracle Databaseアドバンスト・キューイング・インターネット・アクセス用にエージェントを登録し、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを作成します。 |
|
非永続の |
|
指定したキュー表にキューを作成します。 |
|
シャード・キュー用に、キューとそのキュー表をまとめて作成します。 Oracle Database 20c以降では、シャード・キューは非推奨であり、将来のリリースでサポートされなくなります。かわりにトランザクション・イベント・キュー(TEQ)を使用してください。 |
|
例外キューを作成します。 Oracle Database 20c以降では、シャード・キューは非推奨であり、将来のリリースでサポートされなくなります。かわりにトランザクション・イベント・キュー(TEQ)を使用してください。 |
|
例外キューを作成します。 |
|
トランザクション・イベント・キュー(TEQ)のキューおよびそのキュー表を作成します。 |
|
事前定義タイプのメッセージのキュー表を作成します。 |
|
キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPから削除します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。 |
|
伝播スケジュールを使用禁止にします。 |
|
以前にOracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントを削除します。 |
|
既存のキューを削除します。 |
|
データベース・キューイング・システムから既存のシャード・キューを削除します。 Oracle Database 20c以降では、シャード・キューは非推奨であり、将来のリリースでサポートされなくなります。かわりにトランザクション・イベント・キュー(TEQ)を使用してください。 |
|
データベース・キューイング・システムから既存のTEQキューを削除します。 |
|
既存のキュー表を削除します。 |
|
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アドバンスト・キューイング通知で、メモリーの使用を指定および制限するために使用されます。 |
|
指定したキューのエンキューまたはデキューを使用可能にします。 |
|
指定したキューのエンキューまたはデキューを使用禁止にします。 |
|
キューから特定のデータベース・リンクで指定された宛先へのメッセージ伝播の旧スケジュールを取り消します。 |
|
シャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定解除するために使用されます。 |
|
ソース・キューおよび宛先キューのタイプが同じかどうかを検証します。 |
26.4.1 ADD_ALIAS_TO_LDAPプロシージャ
このプロシージャは、キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPに作成します。別名は、LDAP階層においてデータベース・サーバーの識別名の下に直接配置されます。
構文
DBMS_AQADM.ADD_ALIAS_TO_LDAP( alias IN VARCHAR2, obj_location IN VARCHAR2);
パラメータ
表26-11 ADD_ALIAS_TO_LDAPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
別名。例: |
|
|
使用上のノート
この方法は、キュー、エージェントおよびJMS ConnectionFactoryオブジェクトの別名の作成に使用できます。別名を作成するには、オブジェクトが存在している必要があります。これらの別名は、JMSのJNDI参照と、Oracle Databaseアドバンスト・キューイング・インターネット・アクセスで使用できます。
26.4.2 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);
パラメータ
表26-12 ADD_SUBSCRIBERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
キュー名。 |
|
サブスクリプションを定義しようとしているエージェント。 |
|
メッセージ・プロパティ、メッセージ・データ・プロパティおよびPL/SQLファンクションに基づいた条件式。ルールはSQL問合せの メッセージ・ペイロード(オブジェクト・ペイロード)のルールを指定するには、句にオブジェクト・タイプの属性を使用します。各属性には、ペイロードを格納するキュー表の特定の列を示す識別子として、接頭辞 |
|
このサブスクライバがメッセージをデキューしたときに適用される変換を指定します。変換のソース・タイプは、キューのタイプと一致させる必要があります。サブスクライバがリモートで操作している場合、リモート・キューに伝播される前に変換が適用されます。 |
|
|
|
管理者は、サブスクライバで必要なメッセージの配信モードに、 |
使用上のノート
プログラムは、特定の受信者リストまたはデフォルトのサブスクライバ・リストに対してメッセージをエンキューできます。この操作は、マルチ・コンシューマが許可されているキューでのみ成功します。この操作はすぐに有効となり、含まれるトランザクションがコミットされます。このコール後に実行されたエンキュー要求は、新しい動作を反映します。
ルール内の任意の文字列を次に示します。
rule => 'PRIORITY <= 3 AND CORRID = ''FROM JAPAN'''
すべて一重引用符が使用されていることに注意してください。
26.4.3 ALTER_AQ_AGENTプロシージャ
このプロシージャは、Oracle Database Advanced Queuingインターネット・アクセスに登録されたエージェントを変更します。セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを変更するためにも使用されます。
構文
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 )
パラメータ
表26-13 ALTER_AQ_AGENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。 |
|
LDAPにおけるエージェントの証明書の位置(デフォルトは |
|
|
|
|
|
|
26.4.4 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);
パラメータ
表26-14 ALTER_PROPAGATION_SCHEDULEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
伝播ウィンドウの継続期間(秒数)。 |
|
現在の伝播ウィンドウの終了から次の伝播ウィンドウの開始を計算する日付ファンクション。この値が |
|
伝播ウィンドウにおける、メッセージがエンキュー後に伝播されるまでの最大待機時間(秒数)。デフォルト値は60です。注意: このコールに対して待機時間が指定されない場合、待機時間は既存の値をデフォルト値で上書きします。 たとえば、待機時間が60秒で伝播ウィンドウに伝播するメッセージがない場合、そのキューからのその宛先に対するメッセージは、最低60秒間伝播されません。指定した宛先に対してメッセージを伝播するためにキューを再度チェックするまでの時間は、最短で60秒になります。待機時間が600の場合、キューは10分間チェックされず、待機時間が0 (ゼロ)の場合は、宛先に対するメッセージがエンキューされるまでジョブ・キュー・プロセスが待機することになり、メッセージがエンキューされるとすぐに伝播されます。 |
|
|
26.4.5 ALTER_QUEUEプロシージャ
このプロシージャは、キューの既存プロパティを変更します。パラメータ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);
パラメータ
表26-15 ALTER_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変更するキューの名前。 |
|
|
|
アプリケーションのロールバック後、このメッセージの再処理をスケジュールするまでの遅延時間(秒数)。デフォルトは
|
|
デキュー後、メッセージがキュー表内に保持される時間(秒数)。デフォルトは |
|
注意: このパラメータは非推奨となっています。 |
|
キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。デフォルト値は |
26.4.6 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, replication_mode IN BINARY_INTEGER DEFAULT NULL);
パラメータ
表26-16 ALTER_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するキュー表の名前。 |
|
キュー表に関するユーザー指定の説明を変更します。このユーザー・コメントは、キュー・カタログに追加されます。デフォルト値は |
|
キュー表のプライマリ所有者。キュー表内のキューに対するキュー・モニターのスケジューリングおよび伝播は、このインスタンス内で行われます。デフォルト値は |
|
プライマリ・インスタンスが使用不可の場合、キュー表はセカンダリ・インスタンスにフェイルオーバーします。デフォルト値は |
|
キューをレプリケーション・モードにするために変更する場合は、 |
26.4.7 ALTER_SHARDED_QUEUEプロシージャ
このプロシージャは、シャード・キューを変更する機能を提供します。
参照:
シャード・キューの詳細は、『Oracle® Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。
構文
PROCEDURE ALTER_SHARDED_QUEUE( queue_name IN VARCHAR2, max_retries IN NUMBER DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL, queue_properties IN QUEUE_PROPS_T DEFAULT NULL, replication_mode IN BINARY_INTEGER DEFAULT NULL);
パラメータ
表26-17 ALTER_SHARDED_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
このパラメータは、シャード・キューの名前を指定します。最大で128文字を使用できます。 |
|
許可される最大再試行回数。 |
|
キューのコメント。 |
|
標準または例外キュー、再試行の遅延、保存期間、ソート・リスト、キャッシュ・ヒントなどのプロパティ。
|
|
将来の使用のために予約されています。キューをレプリケーション・モードにするために変更する場合は、 |
26.4.8 ALTER_SUBSCRIBERプロシージャ
このプロシージャは、指定されたキューのサブスクライバの既存のプロパティを変更します。ルールのみの変更が可能です。
構文
DBMS_AQADM.ALTER_SUBSCRIBER ( queue_name IN VARCHAR2, subscriber IN sys.aq$_agent, rule IN VARCHAR2 transformation IN VARCHAR2);
パラメータ
表26-18 ALTER_SUBSCRIBERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
キュー名。 |
|
サブスクリプションを変更するエージェント。「AQ_AGENTタイプ」を参照してください。 |
|
メッセージ・プロパティ、メッセージ・データ・プロパティおよびPL/SQLファンクションに基づいた条件式。ルールのパラメータは4000バイト以内です。ルールを削除する場合は、ルール・パラメータを |
|
このサブスクライバがメッセージをデキューしたときに適用される変換を指定します。変換のソース・タイプは、キューのタイプと一致させる必要があります。サブスクライバがリモートで操作している場合、リモート・キューに伝播される前に変換が適用されます。 |
使用上のノート
このプロシージャは、サブスクライバのルールおよび変換の両方を変更します。どちらかを既存値のまま保持する場合は、元の値を指定する必要があります。サブスクライバのルールおよび変換の現在の値を取得するには、schema
.AQ$
queue_table
_R
およびschema
.AQ$
queue_table
_S
のビューを使用します。
26.4.9 ALTER_TRANSACTIONAL_EVENT_QUEUEプロシージャ
このプロシージャは、TEQキューを変更する機能を提供します。
参照:
TEQキューの詳細は、『Oracle® Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください
構文
PROCEDURE ALTER_TRANSACTIONAL_EVENT_QUEUE( queue_name IN VARCHAR2, max_retries IN NUMBER DEFAULT NULL, comment IN VARCHAR2 DEFAULT NULL, queue_properties IN QUEUE_PROPS_T DEFAULT NULL, replication_mode IN BINARY_INTEGER DEFAULT NULL);
パラメータ
表26-19 ALTER_TRANSACTIONAL_EVENT_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
このパラメータは、TEQキューの名前を指定します。最大で128文字を使用できます。 |
|
許可される最大再試行回数。 |
|
キューのコメント。 |
|
標準または例外キュー、再試行の遅延、保存期間、ソート・リスト、キャッシュ・ヒントなどのプロパティ。
|
|
将来の使用のために予約されています。キューをレプリケーション・モードにするために変更する場合は、 |
26.4.10 CREATE_AQ_AGENTプロシージャ
このプロシージャは、HTTPまたはSMTPプロトコルを使用して、Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用にエージェントを登録します。セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを作成するためにも使用されます。
構文
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 )
パラメータ
表26-20 CREATE_AQ_AGENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。 |
|
LDAPにおけるエージェントの証明書の位置(デフォルトは |
|
|
|
|
|
|
使用上のノート
SYS.AQ$INTERNET_USERS
ビューには、すべてのOracle Database Advanced Queuingインターネット・エージェントのリストが表示されます。
26.4.11 CREATE_NP_QUEUEプロシージャ
このプロシージャは、非永続のRAW
キューを作成します。
ノート:
リリース10gR2では、非永続キューの使用は推奨されていません。バッファに入れたメッセージを使用することをお薦めします。
構文
DBMS_AQADM.CREATE_NP_QUEUE ( queue_name IN VARCHAR2, multiple_consumers IN BOOLEAN DEFAULT FALSE, comment IN VARCHAR2 DEFAULT NULL);
パラメータ
表26-21 CREATE_NP_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成する非永続キューの名前。名前はスキーマ内で重複しないようにし、『Oracle Database SQL言語リファレンス』のオブジェクト名のガイドラインに従う必要があります。 |
|
非永続キューは、ユーザーが作成したキュー表からこの特性を継承しないため、このパラメータはキュー・レベルで識別されることに注意してください。 |
|
キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。 |
使用上のノート
キューは、シングル・コンシューマ・キューまたはマルチ・コンシューマ・キューのいずれかです。すべてのキュー名はスキーマ内で重複しないようにしてください。キューは、キュー名で指定されたスキーマ内の8.1以上互換のシステム作成キュー表(AQ$_MEM_SC
またはAQ$_MEM_MC
)に作成されます。
キュー名でスキーマ名が指定されていない場合、キューはログイン・ユーザーのスキーマ内に作成されます。CREATE_NP_QUEUE
でキューが作成された後、START_QUEUE
をコールするとそのキューが使用可能になります。デフォルトでは、キューはエンキューおよびデキューともに使用禁止で作成されます。
非永続キューからはデキューできません。非永続キューからメッセージを取り出す唯一の方法は、OCI通知メカニズムを使用することです。非永続キューでは、LISTEN
コールは起動できません。
26.4.12 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);
パラメータ
表26-22 CREATE_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するキューの名前。名前はスキーマ内で重複しないようにし、予約語については、『Oracle Database SQL言語リファレンス』のオブジェクト名のガイドラインに従う必要があります。 |
|
キューを格納するキュー表の名前。 |
|
作成されるキューが例外キューか標準キューかを指定します。 |
|
|
|
アプリケーションのロールバック後、このメッセージの再処理をスケジュールするまでの遅延時間(秒数)。 デフォルトは0(ゼロ)で、メッセージを最も迅速に取り出せます。このパラメータは、 |
|
キューからデキューされた後に、メッセージがキュー表に保持される秒数。 |
|
将来の使用のために予約されています。 |
|
キューに関するユーザー指定の説明。このユーザー・コメントは、キュー・カタログに追加されます。 |
|
注意: このパラメータは非推奨となっています。 |
使用上のノート
すべてのキュー名はスキーマ内で重複しないようにしてください。CREATE_QUEUE
でキューが作成された後、START_QUEUE
をコールするとそのキューが使用可能になります。デフォルトでは、キューはエンキューおよびデキューともに使用禁止で作成されます。
26.4.13 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 replication_mode IN BINARY_INTEGER DEFAULT NONE);
パラメータ
表26-23 CREATE_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
作成するキュー表の名前。 |
|
格納されるユーザー・データのタイプ。このパラメータの有効な値については、「DBMS_AQのデータ・タイプ」のタイプ名を参照してください。 |
|
記憶域パラメータ。記憶域パラメータは、キュー表の作成時に、 ここで表領域が指定されない場合は、キュー表とそのすべての関連オブジェクトが、デフォルトのユーザー表領域に作成されます。ここで表領域が指定されると、キュー表とそのすべての関連オブジェクトが、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以上互換モードでのみ指定および変更できます。プライマリ・インスタンスが存在しないと、セカンダリ・インスタンスは指定できません。
26.4.14 CREATE_SHARDED_QUEUEプロシージャ
CREATE_SHARDED_QUEUE
APIでは、共有されたキューに適したキューとキュー表を作成します。このAPIは、共有されていないキューの作成には使用できません。シャード・キューは、この統合された単一のAPIを使用して作成する必要があります。これにより、AQプロパティが必要に応じて自動的に設定されます
Oracle Database 20c以降では、CREATE_SHARDED_QUEUE
プロシージャは非推奨であり、将来のリリースでサポートされなくなります。かわりにCREATE_TRANSACTIONAL_EVENT_QUEUEプロシージャを使用してください。
シャード・キューは、シングル・コンシューマ・キューとマルチ・コンシューマ・キューのいずれかとして作成可能です。
構文
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, queue_payload_type IN VARCHAR2 DEFAULT JMS_TYPE, queue_properties IN QUEUE_PROPS_T DEFAULT NULL, replication_mode IN BINARY_INTEGER DEFAULT NONE, queue_type IN BINARY_INTEGER DEFAULT SHARDED_QUEUE, squeue_ver IN BINARY_INTEGER DEFAULT SQ);
パラメータ
表26-24 CREATE_SHARDED_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
この必須パラメータは、新しいキューの名前を指定します。最大で128文字まで使用できます。 |
|
記憶域パラメータは、キュー表の作成時に、 ここで表領域が指定されない場合は、キュー表とそのすべての関連オブジェクトが、デフォルトのユーザー表領域に作成されます。ここで表領域が指定されると、キュー表とそのすべての関連オブジェクトが、STORAGE句で指定された表領域に作成されます。これらのパラメータの使用方法は、『Oracle Database SQL言語リファレンス』を参照してください。 |
|
|
|
このオプション・パラメータは、メッセージのデキューに失敗した後に再試行できる回数を制限します。 |
|
このオプション・パラメータは、ユーザーが指定したキュー表の説明です。このユーザー・コメントは、キュー・カタログに追加されます。 |
|
ペイロードは、 DBMS_AQのデータ・タイプを参照してください。 |
|
標準または例外キュー、再試行の遅延、保存期間、ソート・リスト、キャッシュ・ヒントなどのプロパティ。
|
|
将来の使用のために予約されています。キューをレプリケーション・モードで作成する場合は、 |
|
このパラメータはキュー・タイプを指定します。次のタイプがあります。
デフォルト値は |
|
シャード・キューのフェーズ/バージョン。
|
26.4.15 CREATE_EXCEPTION_QUEUEプロシージャ
CREATE_EXCEPTION_QUEUE
APIでは、シャード・キューの例外キューを作成します。
構文
PROCEDURE CREATE_EXCEPTION_QUEUE( sharded_queue_name IN VARCHAR2, exception_queue_name IN VARCHAR2 DEFAULT NULL );
パラメータ
表26-25 CREATE_EXCEPTION_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
シャード・キューの名前を指定します。 |
|
例外キューの名前を指定します。 |
26.4.16 CREATE_EQ EXCEPTION_QUEUEプロシージャ
CREATE_EQ_EXCEPTION_QUEUE
APIでは、TEQキューの例外キューを作成します。
構文
PROCEDURE CREATE_EQ_EXCEPTION_QUEUE( teq_queue_name IN VARCHAR2, exception_queue_name IN VARCHAR2 DEFAULT NULL );
パラメータ
表26-26 CREATE_EQ_EXCEPTION_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
TEQキューの名前。 |
|
例外キューの名前を指定します。 |
26.4.17 CREATE_TRANSACTIONAL_EVENT_QUEUEプロシージャ
CREATE_TRANSACTIONAL_EVENT_QUEUE
APIでは、トランザクション・イベント・キュー(TEQ)に適したキューとキュー表を作成します。このAPIは、AQキューの作成には使用できません。TEQは、この統合された単一のAPIを使用して作成する必要があります。これにより、AQプロパティが必要に応じて自動的に設定されます。
TEQは、シングル・コンシューマ・キューとマルチ・コンシューマ・キューのいずれかとして作成可能です。
構文
PROCEDURE CREATE_TRANSACTIONAL_EVENT_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, queue_payload_type IN VARCHAR2 DEFAULT JMS_TYPE, queue_properties IN QUEUE_PROPS_T DEFAULT NULL, replication_mode IN BINARY_INTEGER DEFAULT NONE);
パラメータ
表26-27 CREATE_TRANSACTIONAL_EVENT_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
この必須パラメータは、新しいキューの名前を指定します。最大で128文字まで使用できます。 |
|
記憶域パラメータは、キュー表の作成時に、 ここで表領域が指定されない場合は、キュー表とそのすべての関連オブジェクトが、デフォルトのユーザー表領域に作成されます。ここで表領域が指定されると、キュー表とそのすべての関連オブジェクトが、STORAGE句で指定された表領域に作成されます。これらのパラメータの使用方法は、『Oracle Database SQL言語リファレンス』を参照してください。 |
|
|
|
このオプション・パラメータは、メッセージのデキューに失敗した後に再試行できる回数を制限します。 |
|
このオプション・パラメータは、ユーザーが指定したキュー表の説明です。このユーザー・コメントは、キュー・カタログに追加されます。 |
|
ペイロードは、 DBMS_AQのデータ・タイプを参照してください。 |
|
標準または例外キュー、再試行の遅延、保存期間、ソート・リスト、キャッシュ・ヒントなどのプロパティ。
|
|
将来の使用のために予約されています。キューをレプリケーション・モードで作成する場合は、 |
26.4.18 DEL_ALIAS_FROM_LDAPプロシージャ
このプロシージャは、キュー、エージェントまたはJMS ConnectionFactoryの別名をLDAPから削除します。
構文
DBMS_AQADM.DEL_ALIAS_FROM_LDAP( alias IN VARCHAR2);
パラメータ
表26-28 DEL_ALIAS_FROM_LDAPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除する別名 |
26.4.19 DISABLE_DB_ACCESSプロシージャ
このプロシージャは、Oracle Database Advanced Queuingインターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。
構文
DBMS_AQADM.DISABLE_DB_ACCESS ( agent_name IN VARCHAR2, db_username IN VARCHAR2)
パラメータ
表26-29 DISABLE_DB_ACCESSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから権限を取り消されるデータベース・ユーザーを指定します。 |
使用上のノート
ENABLE_DB_ACCESSプロシージャを使用して、事前にOracle Databaseアドバンスト・キューイング・インターネット・エージェントに対してそれらの権限が付与されている必要があります。
26.4.20 DISABLE_PROPAGATION_SCHEDULEプロシージャ
このプロシージャは、伝播スケジュールを無効にします。
構文
DBMS_AQADM.DISABLE_PROPAGATION_SCHEDULE ( queue_name IN VARCHAR2, destination IN VARCHAR2 DEFAULT NULL, destination_queue IN VARCHAR2 DEFAULT NULL);
パラメータ
表26-30 DISABLE_PROPAGATION_SCHEDULEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
|
26.4.21 DROP_AQ_AGENTプロシージャ
このプロシージャは、以前にOracle Database Advanced Queuingインターネット・アクセスに登録されたエージェントを削除します。
構文
DBMS_AQADM.DROP_AQ_AGENT ( agent_name IN VARCHAR2)
パラメータ
表26-31 DROP_AQ_AGENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。 |
26.4.22 DROP_QUEUEプロシージャ
このプロシージャは、既存のキューを削除します。
構文
DBMS_AQADM.DROP_QUEUE ( queue_name IN VARCHAR2, auto_commit IN BOOLEAN DEFAULT TRUE);
パラメータ
表26-32 DROP_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するキューの名前。 |
|
注意: このパラメータは非推奨となっています。 |
使用上のノート
あらかじめSTOP_QUEUE
がコールされ、キューがエンキューおよびデキューの両方に対して無効にされていないかぎり、DROP_QUEUE
は許可されません。すべてのキュー・データが、削除操作の一部として削除されます。
26.4.23 DROP_QUEUE_TABLEプロシージャ
このプロシージャは、既存のキュー表を削除します。
構文
DBMS_AQADM.DROP_QUEUE_TABLE ( queue_table IN VARCHAR2, force IN BOOLEAN DEFAULT FALSE, auto_commit IN BOOLEAN DEFAULT TRUE);
パラメータ
表26-33 DROP_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するキュー表の名前。 |
|
|
|
注意: このパラメータは非推奨となっています。 |
使用上のノート
キュー表を削除するには、キュー表内のすべてのキューを停止し、削除しておく必要があります。この処理を自動的に実行するforce
オプションを使用しない場合は、明示的に実行する必要があります。
26.4.24 DROP_SHARDED_QUEUEプロシージャ
このプロシージャは、データベース・キューイング・システムから既存のシャード・キューを削除します。
DROP_SHARDED_QUEUE
をコールする前に、キューを停止する必要があります。forceをFALSE
に設定した場合、ユーザーはDROP_SHARDED_QUEUE
をコールする前にキューを明示的に停止する必要があります。forceをTRUE
に設定した場合、キューは内部的に停止されてから削除されます。
構文
DBMS_AQADM.DROP_SHARDED_QUEUE( queue_name IN VARCHAR2, force IN BOOLEAN DEFAULT FALSE )
パラメータ
表26-34 DROP_SHARDED_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
この必須パラメータは、シャード・キューの名前を指定します。 |
|
キューが停止されていない場合でも、シャード・キューは削除されます。 |
26.4.25 DROP_TRANSACTIONAL_EVENT_QUEUEプロシージャ
このプロシージャは、データベース・キューイング・システムから既存のTEQキューを削除します。
DROP_TRANSACTIONAL_EVENT_QUEUE
をコールする前に、キューを停止する必要があります。forceをFALSE
に設定した場合、ユーザーはDROP_TRANSACTIONAL_EVENT_QUEUE
をコールする前にキューを明示的に停止する必要があります。forceをTRUE
に設定した場合、キューは内部的に停止されてから削除されます。
構文
DBMS_AQADM.DROP_TRANSACTIONAL_EVENT_QUEUE( queue_name IN VARCHAR2, force IN BOOLEAN DEFAULT FALSE )
パラメータ
表26-35 DROP_TRANSACTIONAL_EVENT_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
この必須パラメータは、TEQキューの名前を指定します。 |
|
キューが停止されていない場合でも、TEQキューは削除されます。 |
26.4.26 ENABLE_DB_ACCESSプロシージャ
このプロシージャは、Oracle Database Advanced Queuingインターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。
構文
DBMS_AQADM.ENABLE_DB_ACCESS ( agent_name IN VARCHAR2, db_username IN VARCHAR2)
パラメータ
表26-36 ENABLE_DB_ACCESSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。 |
|
Oracle Databaseアドバンスト・キューイング・インターネット・エージェントに対する権限を付与されるデータベース・ユーザーを指定します。 |
使用上のノート
CREATE_AQ_AGENTプロシージャを使用して、事前にOracle Databaseアドバンスト・キューイング・インターネット・エージェントを作成している必要があります。
保護キューの場合、メッセージの送信者エージェントと受信者エージェントが、エンキュー操作またはデキュー操作を実行するデータベース・ユーザーにマップされる必要があります。
SYS.AQ$INTERNET_USERS
ビューには、すべてのOracle Database Advanced Queuingインターネット・エージェント、および権限が付与されているデータベース・ユーザーの名前のリストが表示されます。
26.4.27 ENABLE_JMS_TYPESプロシージャ
JMSタイプとXMLタイプをエンキューします。
構文
DBMS_AQADM.ENABLE_JMS_TYPES ( queue_table IN VARCHAR2);
パラメータ
表26-37 ENABLE_JMS_TYPESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
JMSタイプおよびXMLタイプについて使用可能にするキュー表の名前を指定します。 |
26.4.28 ENABLE_PROPAGATION_SCHEDULEプロシージャ
このプロシージャは、以前に無効化した伝播スケジュールを有効化します。
構文
DBMS_AQADM.ENABLE_PROPAGATION_SCHEDULE ( queue_name IN VARCHAR2, destination IN VARCHAR2 DEFAULT NULL, destination_queue IN VARCHAR2 DEFAULT NULL);
パラメータ
表26-38 ENABLE_PROPAGATION_SCHEDULEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
|
26.4.29 GET_MAX_STREAMS_POOLプロシージャ
このプロシージャは、Oracle Databaseアドバンスト・キューイングのストリーム・プールの最大メモリー制限値を取り出します。
構文
DBMS_AQADM.GET_MAX_STREAMS_POOL ( value OUT NUMBER);
パラメータ
表26-39 GET_MAX_STREAMS_POOLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
メガバイト単位での値。 |
26.4.30 GET_MIN_STREAMS_POOLプロシージャ
このプロシージャは、Oracle Databaseアドバンスト・キューイングのストリーム・プールの最小メモリー制限値を取り出します。
構文
DBMS_AQADM.GET_MIN_STREAMS_POOL ( value OUT NUMBER);
パラメータ
表26-40 GET_MIN_STREAMS_POOLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
メガバイト単位での値。 |
26.4.31 GET_QUEUE_PARAMETERプロシージャ
このプロシージャを使用すると、ユーザーはシャード・キューの様々なパラメータをキューまたはデータベース・レベルで取得できます。
データベース・レベルでは、queue_name
をNULL
に設定する必要があります。キューはデータベース・レベルのパラメータ値を上書きすることに注意してください。
参照:
シャード・キューの詳細は、『Oracle® Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。
構文
PROCEDURE GET_QUEUE_PARAMETER( queue_name IN VARCHAR2, param_name IN VARCHAR2, param_value OUT NUMBER);
パラメータ
表26-41 GET_QUEUE_PARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
シャード・キューの名前を指定します。 |
|
|
|
パラメータの値。 |
表26-42 シャード・キューのパラメータ
パラメータ名 | 有効範囲 | 指定可能な値 | 説明 |
---|---|---|---|
|
キュー・レベル |
|
デフォルト値は |
|
キュー・レベル |
|
設定すると、メッセージがエンキューされるシャードは、メッセージで指定されたキー値によって決定されます。詳細は、キーベースのシャーディング(リンク)を参照してください。このパラメータは、一旦設定すると解除できません。 このパラメータが設定されていない場合(デフォルト)、セッションはキューへの最初のエンキュー時にシャードにバインドされます。セッションによってエンキューされるメッセージはすべて、セッションがバインドされるのと同じシャードに移動します。 |
|
キュー・レベル |
|
設定すると、デキュー・セッションはキュー内のシャードに固定されます。セッションは、キューからの最初のデキュー時にシャードにバインドされます。セッションによってデキューされるメッセージはすべて、セッションがバインドされるのと同じシャードから取得されます。このパラメータは、一旦設定すると解除できません。 このパラメータが設定されていない場合、セッションでデキューされたメッセージは、キューの複数のシャードに分散できます。 |
表26-43 キーベースのパラメータ
パラメータ名 | 有効範囲 | 説明 |
---|---|---|
|
キュー・レベル |
指定されたキーがマップされるシャード番号。キーベースのシャーディングが有効な場合、このパラメータはキーとシャード番号間のマッピングの確立、または指定されたキーがマップされるシャード番号の取得に使用されます。 |
|
キュー・レベル |
特定のキーがマップされるシャードを所有するインスタンス番号。キーベースのシャーディングが有効な場合にのみ適用されます。読取り専用のパラメータです。 |
例26-1 シャード・マッピングへのキー
ユーザーは、新しいキーを既存のシャードまたは新しいシャードに明示的にマップできます。
キー値'RED
'を、MY_SHQ1
という名前のキューのID 0
を持つシャードにマップするには、次のように発行します。
execute
dbms_aqadm.set_queue_paramter('MY_SHQ1', 'AQ$KEY_TO_SHARD_MAP=RED', 0);
シャードに明示的にマップされていないキーがエンキューされている場合、シャードの1つがランダムに選択され、そのキーにマップされます。キーがシャードにマップされると、マッピングは変更できません。
すでにマップされているキーのシャード識別子を取得するには、次のように発行します。
declare pval number; begin dbms_aqadm.get_queue_parameter('MY_SHQ1', 'AQ$GET_KEY_SHARD=RED', pval); dbms_output.put_line('The key RED is mapped to shard id ' || pval); END; /
例26-2 インスタンス・マッピングへのキー
ユーザー・シャーディングは、クロス・インスタンス・エンキューが関与しないときに最も効果的に機能します。インスタンス間エンキューなしでキーをエンキューできるインスタンスを確認するには、次を発行します。
declare pval number; begin dbms_aqadm.get_queue_parameter('MY_SHQ1', 'AQ$GET_KEY_SHARD_INST=RED', pval); dbms_output.put_line('The key RED is owned by instance id ' || pval); END; /
26.4.32 GET_WATERMARKプロシージャ
このプロシージャは、SET_WATERMARK
によって設定された水位標の値を取り出します。
構文
DBMS_AQADM.GET_WATERMARK ( wmvalue IN NUMBER);
パラメータ
表26-44 GET_WATERMARKプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
メガバイト単位での水位標の値。 |
26.4.33 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);
パラメータ
表26-45 GRANT_QUEUE_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
付与するOracle Databaseアドバンスト・キューイングのキュー権限。 |
|
キュー名。 |
|
権限受領者。権限受領者には、ユーザー、ロールまたは |
|
アクセス権限を |
26.4.34 GRANT_SYSTEM_PRIVILEGEプロシージャ
このプロシージャは、ユーザーおよびロールにOracle Databaseアドバンスト・キューイングのシステム権限を付与します。
権限は、ENQUEUE_ANY
、DEQUEUE_ANY
,およびMANAGE_ANY
です。最初は、SYS
およびSYSTEM
のみがこのプロシージャを正常に使用できます。
ノート:
Oracle Database 12cリリース2以降、MANAGE_ANY
、ENQUEUE_ANY
およびDEQUEUE_ANY
権限では、SYS
以外のユーザーがSYS
所有のキューにアクセスできなくなりました。
構文
DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE ( privilege IN VARCHAR2, grantee IN VARCHAR2, admin_option IN BOOLEAN := FALSE);
パラメータ
表26-46 GRANT_SYSTEM_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
付与するOracle Databaseアドバンスト・キューイングのシステム権限。 ノート: Oracle Database 12cリリース2以降、 |
|
権限受領者。権限受領者には、ユーザー、ロールまたは |
|
システム権限を 権限が |
26.4.35 MIGRATE_QUEUE_TABLEプロシージャ
このプロシージャは、8.0互換キュー表から8.1以上互換キュー表へのアップグレード、または8.1以上互換キュー表から8.0互換キュー表へのダウングレードを実行します。
構文
DBMS_AQADM.MIGRATE_QUEUE_TABLE ( queue_table IN VARCHAR2, compatible IN VARCHAR2);
パラメータ
表26-47 MIGRATE_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
移行するキュー表の名前を指定します。 |
|
8.0互換キュー表をアップグレードする場合は |
26.4.36 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
タイプについては、「Oracle Databaseアドバンスト・キューイング(AQ)のタイプ」を参照してください。
パラメータ
表26-48 PURGE_QUEUE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パージするキュー表の名前を指定します。 |
|
キュー表のパージ時に使用するパージ条件を指定します。パージ条件はSQL
キュー表のすべてのキューをパージする場合、 |
|
タイプ
|
使用上のノート
-
purge_conditionを指定すると、選択したメッセージをキュー表からパージできます。表26-48は、これらのパラメータについて説明しています。キュー表のパージ中に、メッセージをキュー表にエンキューしたりキュー表からデキューできます。
-
このプロシージャを実行すると、トレース・ファイルが
udump
の宛先に生成されます。プロシージャの実行内容の詳細が示されます。 -
このプロシージャは、自律型トランザクションのメッセージのバッチをコミットします。このような自律型トランザクションは、キュー表のメッセージ数に応じて
purge_queue_table
コールの一部として実行できます。
26.4.37 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
パラメータ
表26-49 QUEUE_SUBSCRIBERSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
サブスクライバを出力するキューを指定します。 |
26.4.38 REMOVE_SUBSCRIBERプロシージャ
このプロシージャは、デフォルトのサブスクライバをキューから削除します。この操作はすぐに有効となり、含まれるトランザクションがコミットされます。既存メッセージ内のこのサブスクライバに対するすべての参照は、操作の一部として削除されます。
構文
DBMS_AQADM.REMOVE_SUBSCRIBER ( queue_name IN VARCHAR2, subscriber IN sys.aq$_agent);
パラメータ
表26-50 REMOVE_SUBSCRIBERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
キュー名。 |
|
削除するエージェント。「AQ$_AGENTタイプ」を参照してください。 |
26.4.39 REVOKE_QUEUE_PRIVILEGEプロシージャ
このプロシージャは、ユーザーおよびロールからキューの権限を取り消します。この権限とは、ENQUEUE
またはDEQUEUE
です。
構文
DBMS_AQADM.REVOKE_QUEUE_PRIVILEGE ( privilege IN VARCHAR2, queue_name IN VARCHAR2, grantee IN VARCHAR2);
パラメータ
表26-51 REVOKE_QUEUE_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
取り消すOracle Databaseアドバンスト・キューイングのキュー権限。 |
|
キュー名。 |
|
権限受領者。権限受領者には、ユーザー、ロールまたは |
使用上のノート
権限を取り消すには、取消し実行者がその権限の付与者である必要があります。GRANT
オプションによって伝播された権限は、付与者の権限が取り消されたときに取り消されます。
26.4.40 REVOKE_SYSTEM_PRIVILEGEプロシージャ
このプロシージャは、ユーザーおよびロールからOracle Databaseアドバンスト・キューイングのシステム権限を取り消します。権限は、ENQUEUE_ANY
、DEQUEUE_ANY
およびMANAGE_ANY
です。システム権限のADMIN
オプションを選択的に取り消すことはできません。Oracle Database 12cリリース2以降、MANAGE_ANY
、ENQUEUE_ANY
およびDEQUEUE_ANY
権限では、SYS
以外のユーザーがSYS
所有のキューにアクセスできなくなりました。
構文
DBMS_AQADM.REVOKE_SYSTEM_PRIVILEGE ( privilege IN VARCHAR2, grantee IN VARCHAR2);
パラメータ
表26-52 REVOKE_SYSTEM_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
取り消すOracle Databaseアドバンスト・キューイングのシステム権限。 ノート: Oracle Database 12cリリース2以降、 |
|
権限受領者。権限受領者には、ユーザー、ロールまたは |
26.4.41 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);
パラメータ
表26-53 SCHEDULE_PROPAGATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されない場合は、デフォルトで管理ユーザーのスキーマ名に設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
ソース・キューから宛先へのメッセージに関する伝播ウィンドウの初期起動時間。 |
|
伝播ウィンドウの継続期間(秒数)。 |
|
現在の伝播ウィンドウの終了から次の伝播ウィンドウの開始を計算する日付ファンクション。この値が |
|
伝播ウィンドウにおける、メッセージがエンキュー後に伝播されるまでの最大待機時間(秒数)。 たとえば、待機時間が60秒で伝播ウィンドウに伝播するメッセージがない場合、そのキューからのその宛先に対するメッセージは、最低60秒間伝播されません。 指定した宛先に対してメッセージを伝播するためにキューを再度チェックするまでの時間は、最短で60秒です。待機時間が600秒の場合、キューは10分間チェックされず、待機時間が0(ゼロ)の場合は、宛先に対するメッセージがエンキューされるまでジョブ・キュー・プロセスが待機することになります。メッセージは、エンキューされるとすぐに伝播されます。 |
|
|
使用上のノート
宛先にNULL
を指定すると、同じデータベース内の他のキューにもメッセージを伝播できます。同じ宛先にメッセージの受信者が複数存在する場合は、同じキューにあるか、異なるキューにあるかに関係なく、そのすべてに同時に伝播されます。
JMS伝播やリモート・サブスクライバなどのJMSのOracle拡張機能は、シャード・キューでは現在サポートされていません。シャード・キューと共有されていないキューとの間の伝播はサポートされていません。
26.4.42 SET_QUEUE_PARAMETERプロシージャ
このプロシージャを使用すると、ユーザーはシャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定できます。データベース・レベルでは、queue_name
をNULL
に設定する必要があります。キューはデータベース・レベルのパラメータ値を上書きすることに注意してください。
参照:
シャード・キューの詳細は、『Oracle® Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。
構文
PROCEDURE SET_QUEUE_PARAMETER( queue_name IN VARCHAR2, param_name IN VARCHAR2, param_value IN NUMBER);
パラメータ
表26-54 SET_QUEUE_PARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
シャード・キューの名前を指定します。 |
|
|
|
パラメータの値。 |
表26-55 シャード・キューのパラメータ
パラメータ名 | 有効範囲 | 指定可能な値 | 説明 |
---|---|---|---|
|
キュー・レベル |
|
キューに許可されているシャードの最大数。 |
|
キュー・レベル |
|
デフォルト値は20,000です。 これは、シャード内のメモリーを割り当てるための各パーティションのサイズです。各シャードは複数のサブシャードで構成され、サブシャードはシャードに対するメッセージのエンキューおよびデキュー率に基づいて自動的に割り当てられ、使用され、パージされます。 |
|
キュー・レベル |
|
設定すると、メッセージがエンキューされるシャードは、メッセージで指定されたキー値によって決定されます。詳細は、キーベースのシャーディング(リンク)を参照してください。このパラメータは、一旦設定すると解除できません。 このパラメータが設定されていない場合(デフォルト)、セッションはキューへの最初のエンキュー時にシャードにバインドされます。セッションによってエンキューされるメッセージはすべて、セッションがバインドされるのと同じシャードに移動します。 |
|
キュー・レベル |
|
設定すると、デキュー・セッションはキュー内のシャードに固定されます。セッションは、キューからの最初のデキュー時にシャードにバインドされます。セッションによってデキューされるメッセージはすべて、セッションがバインドされるのと同じシャードから取得されます。このパラメータは、一旦設定すると解除できません。 このパラメータが設定されていない場合、セッションでデキューされたメッセージは、キューの複数のシャードに分散できます。 |
表26-56 キーベースのパラメータ
パラメータ名 | 有効範囲 | 説明 |
---|---|---|
|
キュー・レベル |
指定されたキーがマップされるシャード番号。キーベースのシャーディングが有効な場合、このパラメータはキーとシャード番号間のマッピングの確立、または指定されたキーがマップされるシャード番号の取得に使用されます。 |
|
キュー・レベル |
特定のキーがマップされるシャードを所有するインスタンス番号。キーベースのシャーディングが有効な場合にのみ適用されます。読取り専用のパラメータです。 |
例26-3 キー・ベースのエンキューを使用したシャード・キューの作成
キー・ベースのエンキュー(ユーザー・シャーディング)を使用してシャード・キューを作成するには、PL/SQLプロシージャDBMS_AQADM.SET_QUEUE_PARAMETER
をCREATE_SHARDED_QUEUE
の後にコールします。
execute
sys.dbms_aqadm.create_sharded_queue(queue_name => 'MY_SHQ1');
execute
dbms_aqadm.set_queue_parameter('MY_SHQ1', 'KEY_BASED_ENQUEUE', 1);
例26-4 スティッキー・デキューを使用したシャード・キューの作成
キー・ベースのエンキュー(ユーザー・シャーディング)を使用してシャード・キューを作成するには、PL/SQLプロシージャDBMS_AQADM.SET_QUEUE_PARAMETER
をCREATE_SHARDED_QUEUE
の後にコールします。
execute
sys.dbms_aqadm.create_sharded_queue(queue_name => 'MY_SHQ1');
execute
dbms_aqadm.set_queue_parameter('MY_SHQ1', 'STICKY_DEQUEUE', 1);
例26-5 シャード数の設定または変更
Oracle RAC以外のデータベースでは、キューを作成したら、そのキューにデフォルトで最大5つのシャードを設定できます。Oracle RACデータベースでは、各キューに対して、デフォルトでデータベース・インスタンスごとに最大5つのシャードを設定できます。
execute
dbms_aqadm.set_queue_parameter('MY_SHQ1', 'SHARD_NUM', 200);
ノート:
奇数番号のシャードIDは内部で使用するために予約されています。前述の例では、使用される200シャードIDは0、2、4、...、398です。
26.4.43 SET_MAX_STREAMS_POOLプロシージャ
このプロシージャはOracle Databaseアドバンスト・キューイングで、ストリーム・プールの最大メモリーの使用を指定および制限するために使用されます。
構文
DBMS_AQADM.SET_MAX_STREAMS_POOL ( value IN NUMBER);
パラメータ
表26-57 SET_MAX_STREAMS_POOLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
メガバイト単位での値。 |
26.4.44 SET_MIN_STREAMS_POOLプロシージャ
このプロシージャはOracle Databaseアドバンスト・キューイングで、ストリーム・プールの最小メモリーの使用を指定および制限するために使用されます。
構文
DBMS_AQADM.SET_MIN_STREAMS_POOL ( value IN NUMBER);
パラメータ
表26-58 SET_MIN_STREAMS_POOLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
メガバイト単位での値。 |
26.4.45 SET_WATERMARKプロシージャ
このプロシージャはOracle Databaseアドバンスト・キューイング通知で、メモリーの使用を指定および制限するために使用されます。
構文
DBMS_AQADM.SET_WATERMARK ( wmvalue IN NUMBER);
パラメータ
表26-59 SET_WATERMARKプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
メガバイト単位での水位標の値。 |
26.4.46 START_QUEUEプロシージャ
このプロシージャは、指定したキューに対するエンキューまたはデキューを有効にします。
構文
DBMS_AQADM.START_QUEUE ( queue_name IN VARCHAR2, enqueue IN BOOLEAN DEFAULT TRUE, dequeue IN BOOLEAN DEFAULT TRUE);
パラメータ
表26-60 START_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
使用可能にするキューの名前。 |
|
このキューで |
|
このキューで |
使用上のノート
管理者は、キューを作成した後、START_QUEUE
を使用してそのキューを有効にする必要があります。デフォルトでは、ENQUEUE
およびDEQUEUE
の両方が使用可能になります。例外キューでは、デキュー操作のみ許可されます。この操作はコールが完了すると有効になり、トランザクションの特性はありません。
26.4.47 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, free_memory IN BOOLEAN DEFAULT FALSE);
パラメータ
表26-61 STOP_QUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
使用禁止にするキューの名前。 |
|
このキューで |
|
このキューで |
|
未処理のトランザクションの完了を待つかどうかを指定します。 |
|
キューを停止するかどうかを指定します。 |
使用上のノート
デフォルトでは、このプロシージャをコールするとENQUEUE
およびDEQUEUE
の両方が使用禁止になります。キューに対する未処理のトランザクションがある場合、キューは停止できません。この操作はコールが完了すると有効になり、トランザクションの特性はありません。
26.4.48 UNSCHEDULE_PROPAGATIONプロシージャ
このプロシージャは、キューから特定のデータベース・リンクによって識別される宛先への以前にスケジュールされたメッセージ伝播のスケジュールを取り消します。
構文
DBMS_AQADM.UNSCHEDULE_PROPAGATION ( queue_name IN VARCHAR2, destination IN VARCHAR2 DEFAULT NULL destination_queue IN VARCHAR2 DEFAULT NULL);
パラメータ
表26-62 UNSCHEDULE_PROPAGATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されない場合は、デフォルトで管理ユーザーのスキーマ名に設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
|
26.4.49 UNSET_QUEUE_PARAMETERプロシージャ
このプロシージャを使用すると、ユーザーはシャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定解除できます。
データベース・レベルでは、queue_name
をNULL
に設定する必要があります。キューはデータベース・レベルのパラメータ値を上書きすることに注意してください。
参照:
シャード・キューの詳細は、『Oracle® Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。
構文
PROCEDURE UNSET_QUEUE_PARAMETER( queue_name IN VARCHAR2, param_name IN VARCHAR2);
パラメータ
表26-63 UNSET_QUEUE_PARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
シャード・キューの名前を指定します。 |
|
表26-64 シャード・キューのパラメータ
パラメータ名 | 有効範囲 | 指定可能な値 | 説明 |
---|---|---|---|
|
キュー・レベル |
|
キューに許可されているシャードの最大数。 |
|
キュー・レベル |
|
デフォルト値は20,000です。 これは、シャード内のメモリーを割り当てるための各パーティションのサイズです。各シャードは複数のサブシャードで構成され、サブシャードはシャードに対するメッセージのエンキューおよびデキュー率に基づいて自動的に割り当てられ、使用され、パージされます。 |
|
キュー・レベル |
|
設定すると、メッセージがエンキューされるシャードは、メッセージで指定されたキー値によって決定されます。詳細は、キーベースのシャーディング(リンク)を参照してください。このパラメータは、一旦設定すると解除できません。 このパラメータが設定されていない場合(デフォルト)、セッションはキューへの最初のエンキュー時にシャードにバインドされます。セッションによってエンキューされるメッセージはすべて、セッションがバインドされるのと同じシャードに移動します。 |
|
キュー・レベル |
|
設定すると、デキュー・セッションはキュー内のシャードに固定されます。セッションは、キューからの最初のデキュー時にシャードにバインドされます。セッションによってデキューされるメッセージはすべて、セッションがバインドされるのと同じシャードから取得されます。このパラメータは、一旦設定すると解除できません。 このパラメータが設定されていない場合、セッションでデキューされたメッセージは、キューの複数のシャードに分散できます。 |
表26-65 キーベースのパラメータ
パラメータ名 | 有効範囲 | 説明 |
---|---|---|
|
キュー・レベル |
指定されたキーがマップされるシャード番号。キーベースのシャーディングが有効な場合、このパラメータはキーとシャード番号間のマッピングの確立、または指定されたキーがマップされるシャード番号の取得に使用されます。 |
|
キュー・レベル |
特定のキーがマップされるシャードを所有するインスタンス番号。キーベースのシャーディングが有効な場合にのみ適用されます。読取り専用のパラメータです。 |
26.4.50 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);
パラメータ
表26-66 VERIFY_QUEUE_TYPESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
伝播対象のメッセージがあるソース・キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
メッセージが伝播される宛先キューの名前で、スキーマ名を含みます。スキーマ名が指定されていない場合は、デフォルトでユーザーのスキーマ名が設定されます。 |
|
宛先のデータベース・リンク。この宛先の受信者に対するソース・キュー内のメッセージが伝播されます。宛先が |
|
プロシージャの結果を示すリターン・コード。エラーがなく、ソースと宛先のキュー・タイプが一致している場合、結果は1になります。一致していない場合、結果は0(ゼロ)になります。Oracleエラーが発生した場合は、 |
ノート:
-
SYS.AQ$_MESSAGE_TYPES
は、同じソース・キュー、宛先キューおよびデータベース・リンクに対して複数のエントリを持ちますが、変換は異なります。 -
VERIFY_QUEUE_TYPES
チェックは、伝播されたメッセージの送信ごとではなく、AQ伝播スケジュールごとに1回実行されます。 -
キューのペイロードが変更された場合は、ソース・キューと宛先キュー間の既存の伝播スケジュールを削除して再作成する必要があります。