機械翻訳について

26 DBMS_AQADM

DBMS_AQADMパッケージは、Oracle Databaseアドバンスト・キューイング(AQ)の構成および管理情報を管理するプロシージャを提供します。

この章のトピックは、次のとおりです:

26.1 DBMS_AQADMのセキュリティ・モデル

最初は、SYSおよびSYSTEMのみに、DBMS_AQADMおよびDBMS_AQ内のプロシージャの実行権限が付与されています。 DBMS_AQDBMS_AQADMEXECUTE権限が付与されたユーザーは、自分のスキーマで、キューの作成、管理および使用ができます。 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所有のキューにアクセスできなくなりました。

参照:

伝播に必要なセキュリティ

伝播ジョブの所有者はSYSですが、伝播はキュー表の所有者のセキュリティ・コンテキスト内で発生します。 以前は、伝播ジョブの所有者は、伝播をスケジューリングするユーザーで、伝播が発生するのは、伝播スケジュールを設定するユーザーのセキュリティ・コンテキスト内でした。 キュー表の所有者には、DBMS_AQADMパッケージのEXECUTE権限が必要です。 権限がない場合、Oracleデータベース・スナップショット・プロセスは、エラー識別子SYS.DBMS_AQADMが定義されていないトレース・ファイルを伝播および生成しません。 伝播には、キュー表の所有者が所有するプライベート・データベース・リンクを使用できます。 接続文字列に指定されたユーザーには、リモート・データベース上のDBMS_AQパッケージおよびDBMS_AQADMパッケージに対するEXECUTEアクセス権限が必要です。

参照:

伝播する際のセキュリティ要件の詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。

キュー表の移行

MIGRATE_QUEUE_TABLEプロシージャでは、キュー表の所有者(通常のキュー・ユーザー)にDBMS_AQADMEXECUTE権限を付与する必要があります。 通常のキュー・ユーザーに対してキューおよびキュー表の作成と削除、サブスクライバの追加と削除などを許可しない場合は、移行完了の直後にEXECUTE権限を取り消す必要があります。

参照:

26.2 DBMS_AQADMの定数

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

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

パラメータ オプション

retention

012...INFINITE

message_grouping

TRANSACTIONALNONE

queue_type

NORMAL_QUEUEEXCEPTION_QUEUENON_PERSISTENT_QUEUE

参照:

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

26.3 DBMS_AQADMのサブプログラム・グループ

この項では、DBMS_AQADMのサブプログラム・グループについて説明しています。

26.3.1 DBMS_AQADMキュー表サブプログラム

この項では、DBMS_AQADMキュー表サブプログラムとその説明を示します。

表26-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互換キュー表へのダウングレードを実行します。

MOVE_QUEUE_TABLEプロシージャ

同じ表領域内のAQキュー表(ローカル再定義)または別の表領域(ローカル再定義以外)に移動

PURGE_QUEUE_TABLEプロシージャ

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

26.3.2 DBMS_AQADM権限サブプログラム

この項では、DBMS_AQADM権限サブプログラムとその説明を示します。

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

サブプログラム 説明

GRANT_QUEUE_PRIVILEGEプロシージャ

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

GRANT_SYSTEM_PRIVILEGEプロシージャ

ユーザーおよびロールにOracle Databaseアドバンスト・キューイングのシステム権限を付与します。

REVOKE_QUEUE_PRIVILEGEプロシージャ

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

REVOKE_SYSTEM_PRIVILEGEプロシージャ

ユーザーおよびロールからOracle Databaseアドバンスト・キューイングのシステム権限を取り消します。

26.3.3 DBMS_AQADMキュー・サブプログラム

この項では、DBMS_AQADMキュー・サブプログラムとその説明を示します。

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

サブプログラム 説明

ALTER_QUEUEプロシージャ

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

CREATE_NP_QUEUEプロシージャ

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

CREATE_QUEUEプロシージャ

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

CREATE_SHARDED_QUEUEプロシージャ

シャード・キュー用に、キューとそのキュー表をまとめて作成します。

DROP_SHARDED_QUEUEプロシージャ

データベース・キューイング・システムから既存のシャード・キューを削除します。

ALTER_SHARDED_QUEUEプロシージャ

データベース・キューイング・システムのシャード・キューを変更します。

CREATE_EXCEPTION_QUEUEプロシージャ

シャード・キューの例外キューを作成します。

DROP_QUEUEプロシージャ

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

QUEUE_SUBSCRIBERSファンクション

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

START_QUEUEプロシージャ

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

STOP_QUEUEプロシージャ

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

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

この項では、DBMS_AQADMサブスクライバ・サブプログラムとその説明を示します。

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

サブプログラム 説明

ADD_SUBSCRIBERプロシージャ

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

ALTER_SUBSCRIBERプロシージャ

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

REMOVE_SUBSCRIBERプロシージャ

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

26.3.5 DBMS_AQADM OKafkaサブプログラム

この項では、DBMS_AQADM OKafkaのサブプログラムとその説明を示します。

表26-6 OKafkaサブプログラム

サブプログラム 説明

CREATE_DATABASE_KAFKA_TOPICプロシージャ

OKafkaトピックを作成します。 OKafkaトピックは、OKafkaアプリケーションで使用するために特別に設計されたマルチコンシューマ・トランザクション・イベント・キューです。

DROP_DATABASE_KAFKA_TOPICプロシージャ

既存のOKafkaトピックを削除します。 OKafkaトピックは、OKafkaアプリケーションで使用するために特別に設計されたマルチコンシューマ・トランザクション・イベント・キューです。

26.3.6 DBMS_AQADM伝播サブプログラム

この項では、DBMS_AQADM伝播サブプログラムとその説明を示します。

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

サブプログラム 説明

ALTER_PROPAGATION_SCHEDULEプロシージャ

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

DISABLE_PROPAGATION_SCHEDULEプロシージャ

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

ENABLE_PROPAGATION_SCHEDULEプロシージャ

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

SCHEDULE_PROPAGATIONプロシージャ

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

UNSCHEDULE_PROPAGATIONプロシージャ

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

VERIFY_QUEUE_TYPESプロシージャ

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

26.3.7 DBMS_AQADMのその他のサブプログラム

この項では、DBMS_AQADMのその他のサブプログラムとその説明を示します。

表26-8 その他のサブプログラム

サブプログラム 説明

GET_QUEUE_PARAMETERプロシージャ

シャード・キューの様々なパラメータをキューまたはデータベース・レベルで取得するために使用されます。

GET_MAX_STREAMS_POOLプロシージャ

Oracle Databaseアドバンスト・キューイングのストリーム・プールの最大メモリー制限値を取り出します。

GET_MIN_STREAMS_POOLプロシージャ

Oracle Databaseアドバンスト・キューイングのストリーム・プールの最小メモリー制限値を取り出します。

GET_WATERMARKプロシージャ

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

SET_QUEUE_PARAMETERプロシージャ

シャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定するために使用されます。

SET_MAX_STREAMS_POOLプロシージャ

Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最大メモリーの使用を指定および制限するために使用されます。

SET_MIN_STREAMS_POOLプロシージャ

Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最小メモリーの使用を指定および制限するために使用されます。

SET_WATERMARKプロシージャ

Oracle Databaseアドバンスト・キューイング通知で、メモリーの使用を指定および制限するために使用されます。

UNSET_QUEUE_PARAMETERプロシージャ

シャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定解除するために使用されます。

26.3.8 DBMS_AQADMエージェント・サブプログラム

この項では、DBMS_AQADMエージェントのサブプログラムとその説明を示します。

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

サブプログラム 説明

ALTER_AQ_AGENTプロシージャ

Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントと、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを変更します。

CREATE_AQ_AGENTプロシージャ

HTTPまたはSMTPプロトコルを使用してOracle Databaseアドバンスト・キューイング・インターネット・アクセス用にエージェントを登録し、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを作成します。

DISABLE_DB_ACCESSプロシージャ

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。

DROP_AQ_AGENTプロシージャ

以前にOracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントを削除します。

ENABLE_DB_ACCESSプロシージャ

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。

26.3.9 DBMS_AQADM別名サブプログラム

この項では、DBMS_AQADM別名サブプログラムとその説明を示します。

表26-10 別名サブプログラム

サブプログラム 説明

ADD_ALIAS_TO_LDAPプロシージャ

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

DEL_ALIAS_FROM_LDAPプロシージャ

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

26.4 DBMS_AQADMサブプログラムの要約

この項では、DBMS_AQADMパッケージのサブプログラムについて説明しています。

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

サブプログラム 説明

ADD_ALIAS_TO_LDAPプロシージャ

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

ADD_SUBSCRIBERプロシージャ

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

ALTER_AQ_AGENTプロシージャ

Oracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントと、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを変更します。

ALTER_PROPAGATION_SCHEDULEプロシージャ

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

ALTER_QUEUEプロシージャ

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

ALTER_QUEUE_TABLEプロシージャ

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

ALTER_SHARDED_QUEUEプロシージャ

シャード・キューのcache_hintおよびコメントを変更する機能を提供します。

Oracle Database 20c以降では、シャード・キューは非推奨であり、将来のリリースでサポートされなくなります。 かわりにトランザクション・イベント・キュー(TEQ)を使用してください。

ALTER_SUBSCRIBERプロシージャ

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

ALTER_TRANSACTIONAL_EVENT_QUEUEプロシージャ

TEQキューのcache_hintおよびコメントを変更する機能を提供します。

CREATE_AQ_AGENTプロシージャ

HTTPまたはSMTPプロトコルを使用してOracle Databaseアドバンスト・キューイング・インターネット・アクセス用にエージェントを登録し、セキュアなキューにアクセスするOracle Databaseアドバンスト・キューイング・エージェントを作成します。

CREATE_NP_QUEUEプロシージャ

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

CREATE_QUEUEプロシージャ

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

CREATE_SHARDED_QUEUEプロシージャ

シャード・キュー用に、キューとそのキュー表をまとめて作成します。

Oracle Database 20c以降では、シャード・キューは非推奨であり、将来のリリースでサポートされなくなります。 かわりにトランザクション・イベント・キュー(TEQ)を使用してください。

CREATE_EXCEPTION_QUEUEプロシージャ

例外キューを作成します。

Oracle Database 20c以降では、シャード・キューは非推奨であり、将来のリリースでサポートされなくなります。 かわりにトランザクション・イベント・キュー(TEQ)を使用してください。

CREATE_EQ EXCEPTION_QUEUEプロシージャ

例外キューを作成します。

CREATE_TRANSACTIONAL_EVENT_QUEUEプロシージャ

トランザクション・イベント・キュー(TEQ)のキューおよびそのキュー表を作成します。

CREATE_QUEUE_TABLEプロシージャ

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

DEL_ALIAS_FROM_LDAPプロシージャ

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

DISABLE_DB_ACCESSプロシージャ

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから特定のデータベース・ユーザーの権限を取り消します。

DISABLE_PROPAGATION_SCHEDULEプロシージャ

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

DROP_AQ_AGENTプロシージャ

以前にOracle Databaseアドバンスト・キューイング・インターネット・アクセス用に登録されたエージェントを削除します。

DROP_QUEUEプロシージャ

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

DROP_SHARDED_QUEUEプロシージャ

データベース・キューイング・システムから既存のシャード・キューを削除します。

Oracle Database 20c以降では、シャード・キューは非推奨であり、将来のリリースでサポートされなくなります。 かわりにトランザクション・イベント・キュー(TEQ)を使用してください。

DROP_TRANSACTIONAL_EVENT_QUEUEプロシージャ

データベース・キューイング・システムから既存のTEQキューを削除します。

DROP_QUEUE_TABLEプロシージャ

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

ENABLE_DB_ACCESSプロシージャ

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントに特定のデータベース・ユーザーの権限を付与します。

ENABLE_JMS_TYPESプロシージャ

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

ENABLE_PROPAGATION_SCHEDULEプロシージャ

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

GET_MAX_STREAMS_POOLプロシージャ

Oracle Databaseアドバンスト・キューイングのストリーム・プールの最大メモリー制限値を取り出します。

GET_MIN_STREAMS_POOLプロシージャ

Oracle Databaseアドバンスト・キューイングのストリーム・プールの最小メモリー制限値を取り出します。

GET_QUEUE_PARAMETERプロシージャ

シャード・キューの様々なパラメータをキューまたはデータベース・レベルで取得するために使用されます。

GET_WATERMARKプロシージャ

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

GRANT_QUEUE_PRIVILEGEプロシージャ

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

GRANT_SYSTEM_PRIVILEGEプロシージャ

ユーザーおよびロールにOracle Databaseアドバンスト・キューイングのシステム権限を付与します。

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 Databaseアドバンスト・キューイングのシステム権限を取り消します。

SCHEDULE_PROPAGATIONプロシージャ

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

SET_QUEUE_PARAMETERプロシージャ

シャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定するために使用されます。

SET_MAX_STREAMS_POOLプロシージャ

Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最大メモリーの使用を指定および制限するために使用されます。

SET_MIN_STREAMS_POOLプロシージャ

Oracle Databaseアドバンスト・キューイングで、ストリーム・プールの最小メモリーの使用を指定および制限するために使用されます。

SET_WATERMARKプロシージャ

Oracle Databaseアドバンスト・キューイング通知で、メモリーの使用を指定および制限するために使用されます。

START_QUEUEプロシージャ

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

STOP_QUEUEプロシージャ

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

UNSCHEDULE_PROPAGATIONプロシージャ

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

UNSET_QUEUE_PARAMETERプロシージャ

シャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定解除するために使用されます。

VERIFY_QUEUE_TYPESプロシージャ

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

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-12 ADD_ALIAS_TO_LDAPプロシージャのパラメータ

パラメータ 説明

alias

別名。 例: west_shipping

obj_location

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

使用上のノート

この方法は、キュー、エージェントおよび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-13 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'''
 

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

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-14 ALTER_AQ_AGENTプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。

certification_location

LDAPにおけるエージェントの証明書の位置(デフォルトはNULL)。 Oracle Databaseアドバンスト・キューイングへのSMTPを介したアクセスをエージェントに許可する場合、エージェントの証明書をLDAPで登録する必要があります。 HTTPを介してアクセスする場合は、証明書の位置は必要ありません。

enable_http

TRUEの場合、エージェントがHTTPを介してOracle Databaseアドバンスト・キューイングにアクセスできることを意味します。 FALSEの場合、エージェントがHTTPを介してOracle Databaseアドバンスト・キューイングにアクセスできないことを意味します。

enable_smtp

TRUEの場合、エージェントがSMTP(電子メール)を介してOracle Databaseアドバンスト・キューイングにアクセスできることを意味します。 FALSEの場合、エージェントがSMTPを介してOracle Databaseアドバンスト・キューイングにアクセスできないことを意味します。

enable_anyp

TRUEの場合、エージェントがどんなプロトコル(HTTPまたはSMTP)を介してもOracle Databaseアドバンスト・キューイングにアクセスできることを意味します。

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-15 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の形式でメッセージが伝播される宛先キューの名前。

26.4.5 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);

パラメータ

表26-16 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で、値が変更されないことを意味します。

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-17 ALTER_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

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

comment

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

primary_instance

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

secondary_instance

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

replication_mode

キューをレプリケーション・モードにするために変更する場合は、DBMS_AQADM.REPLICATION_MODE レプリケートされないようにキューを変更する場合は、DBMS_AQADM.NONE デフォルト値はNULLです。

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-18 ALTER_SHARDED_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

このパラメータは、シャード・キューの名前を指定します。 最大で128文字を使用できます。

max_retries

許可される最大再試行回数。

comment

キューのコメント。

queue_properties

標準または例外キュー、再試行の遅延、保存期間、ソート・リスト、キャッシュ・ヒントなどのプロパティ。

queue_propertiesの詳細は、「QUEUE_PROPS_Tタイプ」を参照してください。

replication_mode

将来の使用のために予約されています。 キューをレプリケーション・モードにするために変更する場合は、DBMS_AQADM.REPLICATION_MODE、それ以外の場合は、DBMS_AQADM.NONE デフォルトはNULLです。

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-19 ALTER_SUBSCRIBERプロシージャのパラメータ

パラメータ 説明

queue_name

キュー名。

subscriber

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

rule

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

transformation

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

使用上のノート

このプロシージャは、サブスクライバのルールおよび変換の両方を変更します。 どちらかを既存値のまま保持する場合は、元の値を指定する必要があります。 サブスクライバのルールおよび変換の現在の値を取得するには、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-20 ALTER_TRANSACTIONAL_EVENT_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

このパラメータは、TEQキューの名前を指定します。 最大で128文字を使用できます。

max_retries

許可される最大再試行回数。

comment

キューのコメント。

queue_properties

標準または例外キュー、再試行の遅延、保存期間、ソート・リスト、キャッシュ・ヒントなどのプロパティ。

queue_propertiesの詳細は、「QUEUE_PROPS_Tタイプ」を参照してください。

replication_mode

将来の使用のために予約されています。 キューをレプリケーション・モードにするために変更する場合は、DBMS_AQADM.REPLICATION_MODE、それ以外の場合は、DBMS_AQADM.NONE デフォルトはNULLです。

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-21 CREATE_AQ_AGENTプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。

certification_location

LDAPにおけるエージェントの証明書の位置(デフォルトはNULL)。 Oracle Databaseアドバンスト・キューイングへのSMTPを介したアクセスをエージェントに許可する場合、エージェントの証明書をLDAPで登録する必要があります。 HTTPを介してアクセスする場合は、証明書の位置は必要ありません。

enable_http

TRUEの場合、エージェントがHTTPを介してOracle Databaseアドバンスト・キューイングにアクセスできることを意味します。 FALSEの場合、エージェントがHTTPを介してOracle Databaseアドバンスト・キューイングにアクセスできないことを意味します。

enable_smtp

TRUEの場合、エージェントがSMTP(電子メール)を介してOracle Databaseアドバンスト・キューイングにアクセスできることを意味します。 FALSEの場合、エージェントがSMTPを介してOracle Databaseアドバンスト・キューイングにアクセスできないことを意味します。

enable_anyp

TRUEの場合、エージェントがどんなプロトコル(HTTPまたはSMTP)を介してもOracle Databaseアドバンスト・キューイングにアクセスできることを意味します。

使用上のノート

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

26.4.11 CREATE_DATABASE_KAFKA_TOPICプロシージャ

このプロシージャは、OKafkaトピックを作成します。 OKafkaトピックは、OKafkaアプリケーションで使用するために特別に設計されたマルチコンシューマ・トランザクション・イベント・キューです。

このプロシージャは、トランザクション・イベント・キューを作成します。その下では、「Oracle Transactional Event QueuesのKafka API」に記載されているOKafkaプログラミング・インタフェースによってのみアクセスする必要があります。

構文

PROCEDURE CREATE_DATABASE_KAFKA_TOPIC(
            topicname IN VARCHAR2,
            partition_num IN NUMBER  Default 1,
            retentiontime IN NUMBER Default 7*24*3600,
            partition_assignment_mode IN NUMBER DEFAULT 2,
            replication_mode IN BINARY_INTEGER DEFAULT SYS.DBMS_AQADM.NONE)

パラメータ

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

パラメータ 説明

topicname

作成するトピックの名前を指定します。 名前はスキーマ内で重複しないようにし、予約語については、「Oracle SQLの予約語とキーワード」のオブジェクト名のガイドラインに従う必要があります。

partition_num

このトピックに設定できる最大パーティション数を指定します

retentiontime

このトピックの保存時間(秒)を指定します

partition_assignment_mode

このトピックのパーティション割当て戦略。 このパラメータの値は2にする必要があります。

replication_mode

キューをレプリケーション・モードで作成する場合は、DBMS_AQADM.REPLICATION_MODE、それ以外の場合は、DBMS_AQADM.NONE デフォルトはDBMS_AQADM.NONEです。

26.4.12 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-23 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コールは起動できません。

26.4.13 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-24 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をコールするとそのキューが使用可能になります。 デフォルトでは、キューはエンキューおよびデキューともに使用禁止で作成されます。

26.4.14 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-25 CREATE_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

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

queue_payload_type

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

storage_clause

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

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

sort_list

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

'sort_column_1,sort_column_2'

指定できる列名は、priorityenq_time、およびcommit_timeです。両方の列を指定する場合は、sort_column_1に優先順位を定義します。

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

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

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

sort_listパラメータにcommit_timeを指定すると、生成されるキュー表でコミット時間による順序付けが使用されます。

Oracle Databaseアドバンスト・キューイングでのメッセージの順序付けについては、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』のメッセージの優先順位と順序付けに関する項も参照してください。

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エージェントを明示的に関連付ける必要があるキューのことです。 保護キューの所有者は、キューに対してすべてのキュー操作を実行できますが、他のユーザーは保護キュー・ユーザーとして設定されていないかぎり、保護キューに対してキュー操作を実行することはできません。

replication_mode

キューをレプリケーション・モードで作成する場合は、DBMS_AQADM.REPLICATION_MODE、それ以外の場合は、DBMS_AQADM.NONE デフォルトはDBMS_AQADM.NONEです。

使用上のノート

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

  • 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: この索引構成表にはデキュー履歴データが格納されます。

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

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

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

26.4.15 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-26 CREATE_SHARDED_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

この必須パラメータは、新しいキューの名前を指定します。 最大で128文字まで使用できます。

storage_clause

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

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

multiple_consumers

FALSEの場合、各メッセージに対してコンシューマを1つのみ設定できます。 これはデフォルトです。 TRUEは、表で作成されたキューにはメッセージごとにマルチ・コンシューマを指定できることを意味します。

max_retries

このオプション・パラメータは、メッセージのデキューに失敗した後に再試行できる回数を制限します。 max_retriesの最大値は2**31 -1です。 再試行の制限を超えると、メッセージがキューからパージされます。 デキューの実行後にアプリケーションがロールバックを発行するたびに、RETRY_COUNTが増加します。 サーバー・プロセスがインスタンスで停止した(ALTER SYSTEM KILL SESSIONまたはSHUTDOWN ABORTなど)ためにデキュー・トランザクションが失敗した場合、RETRY_COUNTは増分されません。

comment

このオプション・パラメータは、ユーザーが指定したキュー表の説明です。 このユーザー・コメントは、キュー・カタログに追加されます。

queue_payload_type

ペイロードは、RAWJSONDBMS_AQADM.JMS_TYPEまたはオブジェクト・タイプを指定できます。 デフォルトはDBMS_AQADM.JMS_TYPEです。

DBMS_AQのデータ・タイプを参照してください。

queue_properties

標準または例外キュー、再試行の遅延、保存期間、ソート・リスト、キャッシュ・ヒントなどのプロパティ。

queue_propertiesの詳細は、「QUEUE_PROPS_Tタイプ」 を参照してください。

replication_mode

将来の使用のために予約されています。 キューをレプリケーション・モードで作成する場合は、DBMS_AQADM.REPLICATION_MODE、それ以外の場合は、DBMS_AQADM.NONE デフォルトはDBMS_AQADM.NONEです。

queue_kind

このパラメータはキュー・タイプを指定します。 次のタイプがあります。

CLASSIC_QUEUE CONSTANT BINARY_INTEGER := 0;

SHARDED_QUEUE CONSTANT BINARY_INTEGER := 1;

TRANSACTIONAL_EVENT_QUEUE CONSTANT BINARY_INTEGER := 2;

デフォルト値はSHARDED_QUEUEです。

squeue_ver

シャード・キューのフェーズ/バージョン。

SQ CONSTANT BINARY_INTEGER := 0;

TEQ CONSTANT BINARY_INTEGER := 1;

26.4.16 CREATE_EXCEPTION_QUEUEプロシージャ

CREATE_EXCEPTION_QUEUE APIでは、シャード・キューの例外キューを作成します。

構文

PROCEDURE CREATE_EXCEPTION_QUEUE(
    sharded_queue_name     IN VARCHAR2,
    exception_queue_name   IN VARCHAR2 DEFAULT NULL
    );

パラメータ

表26-27 CREATE_EXCEPTION_QUEUEプロシージャのパラメータ

パラメータ 説明

sharded_queue_name

シャード・キューの名前を指定します。

exception_queue_name

例外キューの名前を指定します。

26.4.17 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-28 CREATE_EQ_EXCEPTION_QUEUEプロシージャのパラメータ

パラメータ 説明

teq_queue_name

TEQキューの名前。

exception_queue_name

例外キューの名前を指定します。

26.4.18 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-29 CREATE_TRANSACTIONAL_EVENT_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

この必須パラメータは、新しいキューの名前を指定します。 最大で128文字まで使用できます。

storage_clause

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

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

multiple_consumers

FALSEの場合、各メッセージに対してコンシューマを1つのみ設定できます。 これはデフォルトです。 TRUEは、表で作成されたキューにはメッセージごとにマルチ・コンシューマを指定できることを意味します。

max_retries

このオプション・パラメータは、メッセージのデキューに失敗した後に再試行できる回数を制限します。 max_retriesの最大値は2**31 -1です。 再試行の制限を超えると、メッセージがキューからパージされます。 デキューの実行後にアプリケーションがロールバックを発行するたびに、RETRY_COUNTが増加します。 サーバー・プロセスがインスタンスで停止した(ALTER SYSTEM KILL SESSIONまたはSHUTDOWN ABORTなど)ためにデキュー・トランザクションが失敗した場合、RETRY_COUNTは増分されません。

comment

このオプション・パラメータは、ユーザーが指定したキュー表の説明です。 このユーザー・コメントは、キュー・カタログに追加されます。

queue_payload_type

ペイロードは、RAWJSONDBMS_AQADM.JMS_TYPEまたはオブジェクト・タイプを指定できます。 デフォルトはDBMS_AQADM.JMS_TYPEです。

DBMS_AQのデータ・タイプを参照してください。

queue_properties

標準または例外キュー、再試行の遅延、保存期間、ソート・リスト、キャッシュ・ヒントなどのプロパティ。

queue_propertiesの詳細は、「QUEUE_PROPS_Tタイプ」 を参照してください。

replication_mode

将来の使用のために予約されています。 キューをレプリケーション・モードで作成する場合は、DBMS_AQADM.REPLICATION_MODE、それ以外の場合は、DBMS_AQADM.NONE デフォルトはDBMS_AQADM.NONEです。

26.4.19 DEL_ALIAS_FROM_LDAPプロシージャ

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

構文

DBMS_AQADM.DEL_ALIAS_FROM_LDAP(
   alias IN VARCHAR2);

パラメータ

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

パラメータ 説明

alias

削除する別名

26.4.20 DISABLE_DB_ACCESSプロシージャ

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

構文

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

パラメータ

表26-31 DISABLE_DB_ACCESSプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。

db_username

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントから権限を取り消されるデータベース・ユーザーを指定します。

使用上のノート

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

26.4.21 DISABLE_PROPAGATION_SCHEDULEプロシージャ

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

構文

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

パラメータ

表26-32 DISABLE_PROPAGATION_SCHEDULEプロシージャのパラメータ

パラメータ 説明

queue_name

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

destination

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

destination_queue

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

26.4.22 DROP_AQ_AGENTプロシージャ

このプロシージャは、以前にOracle Database Advanced Queuingインターネット・アクセスに登録されたエージェントを削除します。

構文

DBMS_AQADM.DROP_AQ_AGENT (
  agent_name                IN VARCHAR2)

パラメータ

表26-33 DROP_AQ_AGENTプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。

26.4.23 DROP_DATABASE_KAFKA_TOPICプロシージャ

このプロシージャは、既存のOKafkaトピックを削除します。 OKafkaトピックは、OKafkaアプリケーションで使用するために特別に設計されたマルチコンシューマ・トランザクション・イベント・キューです。

構文

PROCEDURE DROP_DATABASE_KAFKA_TOPIC(
            topicname IN VARCHAR2)

パラメータ

表26-34 DROP_DATABASE_KAFKA_TOPICプロシージャのパラメータ

パラメータ 説明

topicname

削除するトピックの名前を指定します。 名前はスキーマ内で重複しないようにし、予約語については、「Oracle SQLの予約語とキーワード」のオブジェクト名のガイドラインに従う必要があります。

26.4.24 DROP_QUEUEプロシージャ

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

構文

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

パラメータ

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

パラメータ 説明

queue_name

削除するキューの名前。

auto_commit

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

注意: このパラメータは非推奨となっています。

使用上のノート

あらかじめSTOP_QUEUEがコールされ、キューがエンキューおよびデキューの両方に対して無効にされていないかぎり、DROP_QUEUEは許可されません。 すべてのキュー・データが、削除操作の一部として削除されます。

26.4.25 DROP_QUEUE_TABLEプロシージャ

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

構文

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

パラメータ

表26-36 DROP_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

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

force

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

auto_commit

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

注意: このパラメータは非推奨となっています。

使用上のノート

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

26.4.26 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-37 DROP_SHARDED_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

この必須パラメータは、シャード・キューの名前を指定します。

force

キューが停止されていない場合でも、シャード・キューは削除されます。

26.4.27 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-38 DROP_TRANSACTIONAL_EVENT_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

この必須パラメータは、TEQキューの名前を指定します。

force

キューが停止されていない場合でも、TEQキューは削除されます。

26.4.28 ENABLE_DB_ACCESSプロシージャ

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

構文

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

パラメータ

表26-39 ENABLE_DB_ACCESSプロシージャのパラメータ

パラメータ 説明

agent_name

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントのユーザー名を指定します。

db_username

Oracle Databaseアドバンスト・キューイング・インターネット・エージェントに対する権限を付与されるデータベース・ユーザーを指定します。

使用上のノート

CREATE_AQ_AGENTプロシージャを使用して、事前にOracle Databaseアドバンスト・キューイング・インターネット・エージェントを作成している必要があります。

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

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

26.4.29 ENABLE_JMS_TYPESプロシージャ

JMSタイプとXMLタイプをエンキューします。

構文

DBMS_AQADM.ENABLE_JMS_TYPES (
   queue_table   IN   VARCHAR2);

パラメータ

表26-40 ENABLE_JMS_TYPESプロシージャのパラメータ

パラメータ 説明

queue_table

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

26.4.30 ENABLE_PROPAGATION_SCHEDULEプロシージャ

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

構文

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

パラメータ

表26-41 ENABLE_PROPAGATION_SCHEDULEプロシージャのパラメータ

パラメータ 説明

queue_name

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

destination

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

destination_queue

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

26.4.31 GET_MAX_STREAMS_POOLプロシージャ

このプロシージャは、Oracle Databaseアドバンスト・キューイングのストリーム・プールの最大メモリー制限値を取り出します。

構文

DBMS_AQADM.GET_MAX_STREAMS_POOL (
   value     OUT      NUMBER);

パラメータ

表26-42 GET_MAX_STREAMS_POOLプロシージャのパラメータ

パラメータ 説明

value

メガバイト単位での値。

26.4.32 GET_MIN_STREAMS_POOLプロシージャ

このプロシージャは、Oracle Databaseアドバンスト・キューイングのストリーム・プールの最小メモリー制限値を取り出します。

構文

DBMS_AQADM.GET_MIN_STREAMS_POOL (
   value     OUT      NUMBER);

パラメータ

表26-43 GET_MIN_STREAMS_POOLプロシージャのパラメータ

パラメータ 説明

value

メガバイト単位での値。

26.4.33 GET_QUEUE_PARAMETERプロシージャ

このプロシージャを使用すると、ユーザーはシャード・キューの様々なパラメータをキューまたはデータベース・レベルで取得できます。

データベース・レベルでは、queue_nameNULLに設定する必要があります。 キューはデータベース・レベルのパラメータ値を上書きすることに注意してください。

参照:

シャード・キューの詳細は、『Oracle® Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。

構文

PROCEDURE  GET_QUEUE_PARAMETER(
    queue_name          IN VARCHAR2,
    param_name          IN VARCHAR2,
    param_value         OUT NUMBER);

パラメータ

表26-44 GET_QUEUE_PARAMETERプロシージャのパラメータ

パラメータ 説明

queue_name

シャード・キューの名前を指定します。

param_name

パラメータ名。 有効なパラメータの名前は、表26-45および表26-46を参照してください。

param_value

パラメータの値。

表26-45 シャード・キューのパラメータ

パラメータ名 有効範囲 指定可能な値 説明

SHARD_NUM

キュー・レベル

[1, UB4MAXVAL]

KEY_BASED_ENQUEUEが設定されていない場合に、キューのインスタンスごとに作成されるシャードの数。 KEY_BASED_ENQUEUEが設定されている場合、この値はすべてのインスタンスでキューに対して作成されるシャードの最大数です。

デフォルト値は5です。

KEY_BASED_ENQUEUE

キュー・レベル

[0,1]

設定すると、メッセージがエンキューされるシャードは、メッセージで指定されたキー値によって決定されます。 詳細は、キーベースのシャーディング(リンク)を参照してください。 このパラメータは、一旦設定すると解除できません。

このパラメータが設定されていない場合(デフォルト)、セッションはキューへの最初のエンキュー時にシャードにバインドされます。 セッションによってエンキューされるメッセージはすべて、セッションがバインドされるのと同じシャードに移動します。

STICKY_DEQUEUE

キュー・レベル

[0,1]

設定すると、デキュー・セッションはキュー内のシャードに固定されます。 セッションは、キューからの最初のデキュー時にシャードにバインドされます。 セッションによってデキューされるメッセージはすべて、セッションがバインドされるのと同じシャードから取得されます。 このパラメータは、一旦設定すると解除できません。

このパラメータが設定されていない場合、セッションでデキューされたメッセージは、キューの複数のシャードに分散できます。

表26-46 キーベースのパラメータ

パラメータ名 有効範囲 説明

AQ$KEY_TO_SHARD_MAP

キュー・レベル

指定されたキーがマップされるシャード番号。 キーベースのシャーディングが有効な場合、このパラメータはキーとシャード番号間のマッピングの確立、または指定されたキーがマップされるシャード番号の取得に使用されます。

AQ$GET_KEY_SHARD_INST

キュー・レベル

特定のキーがマップされるシャードを所有するインスタンス番号。 キーベースのシャーディングが有効な場合にのみ適用されます。 読取り専用のパラメータです。

例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.34 GET_WATERMARKプロシージャ

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

構文

DBMS_AQADM.GET_WATERMARK (
   wmvalue     IN      NUMBER);

パラメータ

表26-47 GET_WATERMARKプロシージャのパラメータ

パラメータ 説明

wmvalue

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

26.4.35 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-48 GRANT_QUEUE_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

privilege

付与するOracle Databaseアドバンスト・キューイングのキュー権限。 ENQUEUEDEQUEUEおよびALLから選択できます。 ALLは、ENQUEUEおよびDEQUEUEの両方の権限を付与します。

queue_name

キュー名。

grantee

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

grant_option

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

26.4.36 GRANT_SYSTEM_PRIVILEGEプロシージャ

このプロシージャは、ユーザーおよびロールにOracle Databaseアドバンスト・キューイングのシステム権限を付与します。

権限は、ENQUEUE_ANYDEQUEUE_ANY,およびMANAGE_ANYです。 最初は、SYSおよびSYSTEMのみがこのプロシージャを正常に使用できます。

ノート:

Oracle Database 12cリリース2以降、MANAGE_ANYENQUEUE_ANYおよびDEQUEUE_ANY権限では、SYS以外のユーザーがSYS所有のキューにアクセスできなくなりました。

構文

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

パラメータ

表26-49 GRANT_SYSTEM_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

privilege

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

ノート:

Oracle Database 12cリリース2以降、MANAGE_ANYENQUEUE_ANYおよびDEQUEUE_ANY権限では、SYS以外のユーザーがSYS所有のキューにアクセスできなくなりました。

grantee

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

admin_option

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

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

26.4.37 MIGRATE_QUEUE_TABLEプロシージャ

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

構文

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

パラメータ

表26-50 MIGRATE_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

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

compatible

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

26.4.38 MOVE_QUEUE_TABLEプロシージャ

このプロシージャは、同じ表領域内のAQキュー表の移動(ローカル再定義)または別の表領域への移動(ローカル再定義以外)に使用されます。

ノート:

MOVE_QUEUE_TABLEインタフェースでは、現在、SYS以外のキュー表の移動のみがサポートされています。 SYS所有のキュー表の移動は失敗します。

構文

DBMS_AQADM.MOVE_QUEUE_TABLE (
  queue_table    IN VARCHAR2,
  to_tablespace  IN VARCHAR2 DEFAULT NULL,
  flags          IN BINARY_INTEGER DEFAULT DBMS_AQADM.MOVEQT_OFFLINE);

パラメータ

表26-51 MOVE_QUEUE_TABLEプロシージャのパラメータ

パラメータ 説明

queue_table

移動するキュー表の名前

to_tablespace

キュー表の移動先の表領域の名前。 同じ表領域内で移動する場合は、このパラメータをNULLとして指定できます。

flags

移動操作を制御するフラグのセット。 このパラメータは、ビット単位のORで同時に編集できる複数の値を受け入れます。 DBMS_AQADMパッケージで使用可能な次の定数は、フラグとして指定できます。

  • MOVEQT_OFFLINE - オフライン・モードで移動を実行する(デフォルト)

  • MOVEQT_ONLINE - オンライン・モードでの移動の実行

  • MOVEQT_LOCALREDEF - ローカル移動の実行(同じ表領域内の移動)

動作モード

MOVE_QUEUE_TABLEインタフェースは、次の2つのモードで使用できます:

  • オフライン・モード

    • DBMS_AQAM.MOVEQT_OFFLINE

    • これはデフォルトの移動モードです。 このモードでは、移動操作がトリガーされる前に、キュー表に関連付けられた基礎となるキューがエンキューおよびデキュー・アクティビティに対して停止されます。 キューは、移動後に元の状態にリストアされます。

  • オンライン・モード

    • DBMS_AQAM.MOVEQT_ONLINE

    • これにより、オンライン・モードでの動作が提供されます。 つまり、AQがキューの移動を管理している間に、キューにエンキューおよびデキュー・アクティビティを設定できます。

移動のタイプ

  • ローカル移動

    • これにより、現在の表領域内でキュー表を移動(または再定義)できます。 ローカル移動は様々なユースケースに役立ちます - 1.キュー表セグメントによって消費される領域の解放、2.キュー表IOTおよび索引セグメントのデフラグ、3.表領域の縮小、4. キュー表セグメント内のブロック破損の修正など。

    • to_tablespaceパラメータは、このタイプの移動に指定するオプションになります。

    • to_tablespaceを指定しない場合、デフォルトでNULLに設定され、MOVE_QUEUE_TABLEインタフェースは現在の表領域内のキュー表を自動的に再定義します。

    • NULL以外のto_tablespaceを指定する場合は、ローカル移動を実行できるように、フラグMOVEQT_LOCALREDEFも指定する必要があります。 NULL以外のto_tablespaceが指定されているときにMOVEQT_LOCALREDEFフラグを指定しない場合、MOVE_QUEUE_TABLEインタフェースは非ローカル移動として扱います。

    • ローカルの移動はオフライン・モードまたはオンライン・モードで実行できるため、他の適用可能なフラグでビット単位のORを実行して、適切なフラグを指定する必要があります。

  • 非ローカル移動

    • これにより、キュー表を現在の表領域から別の表領域に物理的に移動できます。

    • このタイプの移動では、to_tablespaceパラメータをNULL以外にする必要があります。

    • 指定したto_tablespaceがキュー表の現在の表領域と一致する場合、MOVE_QUEUE_TABLEインタフェースは移動を最適化し、エラーをスローせずにサイレントに戻します。

    • 非ローカル移動はオフライン・モードまたはオンライン・モードで実行できるため、他の適用可能なフラグでビット単位のORを実行して、適切なフラグを指定する必要があります。

ユーザーの権限および権限

MOVE_QUEUE_TABLEインタフェースには、次のユーザー権限が必要です。
  • キュー表所有者スキーマは、ローカル以外の移動に必要な権限がターゲット表領域にある場合、独自のキュー表を移動できます。

  • MANAGE ANY AQ権限またはAQ_ADMINISTRATOR_ROLを持つユーザーは、ローカル移動用のキュー表の所有表領域および非ローカル移動用のターゲット表領域に対して必要な権限を持っている場合、任意のキュー表を移動できます。

  • SYSユーザーは、任意のキュー表を移動できます。

26.4.39 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-52 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を使用します。 バッファに入れたメッセージをパージする必要がある場合、任意のパージ条件は実装できません。

使用上のノート

  • purge_conditionを指定すると、選択したメッセージをキュー表からパージできます。 「表26-52」は、これらのパラメータを示します。 キュー表のパージ中に、メッセージをキュー表にエンキューしたりキュー表からデキューできます。

  • このプロシージャを実行すると、トレース・ファイルがudumpの宛先に生成されます。 プロシージャの実行内容の詳細が示されます。

  • このプロシージャは、自律型トランザクションのメッセージのバッチをコミットします。 このような自律型トランザクションは、キュー表のメッセージ数に応じてpurge_queue_tableコールの一部として実行できます。

26.4.40 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-53 QUEUE_SUBSCRIBERSファンクションのパラメータ

パラメータ 説明

queue_name

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

26.4.41 REMOVE_SUBSCRIBERプロシージャ

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

構文

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

パラメータ

表26-54 REMOVE_SUBSCRIBERプロシージャのパラメータ

パラメータ 説明

queue_name

キュー名。

subscriber

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

26.4.42 REVOKE_QUEUE_PRIVILEGEプロシージャ

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

構文

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

パラメータ

表26-55 REVOKE_QUEUE_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

privilege

取り消すOracle Databaseアドバンスト・キューイングのキュー権限。 ENQUEUEDEQUEUEおよびALLから選択できます。 ALLは、ENQUEUEおよびDEQUEUEの両方の権限を付与します。

queue_name

キュー名。

grantee

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

使用上のノート

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

26.4.43 REVOKE_SYSTEM_PRIVILEGEプロシージャ

このプロシージャは、ユーザーおよびロールからOracle Databaseアドバンスト・キューイングのシステム権限を取り消します。 権限は、ENQUEUE_ANYDEQUEUE_ANYおよびMANAGE_ANYです。 システム権限のADMINオプションを選択的に取り消すことはできません。 Oracle Database 12cリリース2以降、MANAGE_ANYENQUEUE_ANYおよびDEQUEUE_ANY権限では、SYS以外のユーザーがSYS所有のキューにアクセスできなくなりました。

構文

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

パラメータ

表26-56 REVOKE_SYSTEM_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

privilege

取り消すOracle Databaseアドバンスト・キューイングのシステム権限。 ENQUEUE_ANYDEQUEUE_ANYおよびMANAGE_ANYから選択できます。 システム権限のADMINオプションを選択的に取り消すことはできません。

ノート:

Oracle Database 12cリリース2以降、MANAGE_ANYENQUEUE_ANYおよびDEQUEUE_ANY権限では、SYS以外のユーザーがSYS所有のキューにアクセスできなくなりました。

grantee

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

26.4.44 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-57 SCHEDULE_PROPAGATIONプロシージャのパラメータ

パラメータ 説明

queue_name

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

destination

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

start_time

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

duration

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

next_time

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

latency

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

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

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

destination_queue

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

使用上のノート

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

JMS伝播やリモート・サブスクライバなどのJMSのOracle拡張機能は、シャード・キューでは現在サポートされていません。 シャード・キューと共有されていないキューとの間の伝播はサポートされていません。

26.4.45 SET_QUEUE_PARAMETERプロシージャ

このプロシージャを使用すると、ユーザーはシャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定できます。 データベース・レベルでは、queue_nameNULLに設定する必要があります。 キューはデータベース・レベルのパラメータ値を上書きすることに注意してください。

参照:

シャード・キューの詳細は、『Oracle® Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。

構文

  PROCEDURE  SET_QUEUE_PARAMETER(
    queue_name          IN VARCHAR2,
    param_name          IN VARCHAR2,
    param_value         IN NUMBER);

パラメータ

表26-58 SET_QUEUE_PARAMETERプロシージャのパラメータ

パラメータ 説明

queue_name

シャード・キューの名前を指定します。

param_name

パラメータ名。 「表26-59」および「表26-60」は、有効なパラメータ名を示します。

param_value

パラメータの値。

表26-59 シャード・キューのパラメータ

パラメータ名 有効範囲 指定可能な値 説明

SHARD_NUM

キュー・レベル

[1, UB4MAXVAL]

キューに許可されているシャードの最大数。

SUBSHARD_SIZE

キュー・レベル

[1, UB2MAXVAL]

デフォルト値は20,000です。

これは、シャード内のメモリーを割り当てるための各パーティションのサイズです。 各シャードは複数のサブシャードで構成され、サブシャードはシャードに対するメッセージのエンキューおよびデキュー率に基づいて自動的に割り当てられ、使用され、パージされます。

KEY_BASED_ENQUEUE

キュー・レベル

[0,1]

設定すると、メッセージがエンキューされるシャードは、メッセージで指定されたキー値によって決定されます。 詳細は、キーベースのシャーディング(リンク)を参照してください。 このパラメータは、一旦設定すると解除できません。

このパラメータが設定されていない場合(デフォルト)、セッションはキューへの最初のエンキュー時にシャードにバインドされます。 セッションによってエンキューされるメッセージはすべて、セッションがバインドされるのと同じシャードに移動します。

STICKY_DEQUEUE

キュー・レベル

[0,1]

設定すると、デキュー・セッションはキュー内のシャードに固定されます。 セッションは、キューからの最初のデキュー時にシャードにバインドされます。 セッションによってデキューされるメッセージはすべて、セッションがバインドされるのと同じシャードから取得されます。 このパラメータは、一旦設定すると解除できません。

このパラメータが設定されていない場合、セッションでデキューされたメッセージは、キューの複数のシャードに分散できます。

表26-60 キー・ベース・パラメータ

パラメータ名 有効範囲 説明

AQ$KEY_TO_SHARD_MAP

キュー・レベル

指定されたキーがマップされるシャード番号。 キーベースのシャーディングが有効な場合、このパラメータはキーとシャード番号間のマッピングの確立、または指定されたキーがマップされるシャード番号の取得に使用されます。

AQ$GET_KEY_SHARD_INST

キュー・レベル

特定のキーがマップされるシャードを所有するインスタンス番号。 キーベースのシャーディングが有効な場合にのみ適用されます。 読取り専用のパラメータです。

例26-3 キー・ベースのエンキューを使用したシャード・キューの作成

キー・ベースのエンキュー(ユーザー・シャーディング)を使用してシャード・キューを作成するには、PL/SQLプロシージャDBMS_AQADM.SET_QUEUE_PARAMETERCREATE_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_PARAMETERCREATE_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.46 SET_MAX_STREAMS_POOLプロシージャ

このプロシージャはOracle Databaseアドバンスト・キューイングで、ストリーム・プールの最大メモリーの使用を指定および制限するために使用されます。

構文

DBMS_AQADM.SET_MAX_STREAMS_POOL (
   value     IN      NUMBER);

パラメータ

表26-61 SET_MAX_STREAMS_POOLプロシージャのパラメータ

パラメータ 説明

value

メガバイト単位での値。

26.4.47 SET_MIN_STREAMS_POOLプロシージャ

このプロシージャはOracle Databaseアドバンスト・キューイングで、ストリーム・プールの最小メモリーの使用を指定および制限するために使用されます。

構文

DBMS_AQADM.SET_MIN_STREAMS_POOL (
   value     IN      NUMBER);

パラメータ

表26-62 SET_MIN_STREAMS_POOLプロシージャのパラメータ

パラメータ 説明

value

メガバイト単位での値。

26.4.48 SET_WATERMARKプロシージャ

このプロシージャはOracle Databaseアドバンスト・キューイング通知で、メモリーの使用を指定および制限するために使用されます。

構文

DBMS_AQADM.SET_WATERMARK (
   wmvalue     IN      NUMBER);

パラメータ

表26-63 SET_WATERMARKプロシージャのパラメータ

パラメータ 説明

wmvalue

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

26.4.49 START_QUEUEプロシージャ

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

構文

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

パラメータ

表26-64 START_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

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

enqueue

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

dequeue

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

使用上のノート

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

26.4.50 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-65 STOP_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

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

enqueue

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

dequeue

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

wait

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

free_memory

キューを停止するかどうかを指定します。

使用上のノート

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

26.4.51 UNSCHEDULE_PROPAGATIONプロシージャ

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

構文

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

パラメータ

表26-66 UNSCHEDULE_PROPAGATIONプロシージャのパラメータ

パラメータ 説明

queue_name

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

destination

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

destination_queue

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

26.4.52 UNSET_QUEUE_PARAMETERプロシージャ

このプロシージャを使用すると、ユーザーはシャード・キューの様々なパラメータをキューまたはデータベース・レベルで設定解除できます。

データベース・レベルでは、queue_nameNULLに設定する必要があります。 キューはデータベース・レベルのパラメータ値を上書きすることに注意してください。

参照:

シャード・キューの詳細は、『Oracle® Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。

構文

  PROCEDURE  UNSET_QUEUE_PARAMETER(
    queue_name          IN VARCHAR2,
    param_name          IN VARCHAR2);

パラメータ

表26-67 UNSET_QUEUE_PARAMETERプロシージャのパラメータ

パラメータ 説明

queue_name

シャード・キューの名前を指定します。

param_name

パラメータ名。 「表26-68」および「表26-69」は、有効なパラメータ名を示します。

表26-68 シャード・キューのパラメータ

パラメータ名 有効範囲 指定可能な値 説明

SHARD_NUM

キュー・レベル

[1, UB4MAXVAL]

キューに許可されているシャードの最大数。

SUBSHARD_SIZE

キュー・レベル

[1, UB2MAXVAL]

デフォルト値は20,000です。

これは、シャード内のメモリーを割り当てるための各パーティションのサイズです。 各シャードは複数のサブシャードで構成され、サブシャードはシャードに対するメッセージのエンキューおよびデキュー率に基づいて自動的に割り当てられ、使用され、パージされます。

KEY_BASED_ENQUEUE

キュー・レベル

[0,1]

設定すると、メッセージがエンキューされるシャードは、メッセージで指定されたキー値によって決定されます。 詳細は、キーベースのシャーディング(リンク)を参照してください。 このパラメータは、一旦設定すると解除できません。

このパラメータが設定されていない場合(デフォルト)、セッションはキューへの最初のエンキュー時にシャードにバインドされます。 セッションによってエンキューされるメッセージはすべて、セッションがバインドされるのと同じシャードに移動します。

STICKY_DEQUEUE

キュー・レベル

[0,1]

設定すると、デキュー・セッションはキュー内のシャードに固定されます。 セッションは、キューからの最初のデキュー時にシャードにバインドされます。 セッションによってデキューされるメッセージはすべて、セッションがバインドされるのと同じシャードから取得されます。 このパラメータは、一旦設定すると解除できません。

このパラメータが設定されていない場合、セッションでデキューされたメッセージは、キューの複数のシャードに分散できます。

表26-69 キー・ベース・パラメータ

パラメータ名 有効範囲 説明

AQ$KEY_TO_SHARD_MAP

キュー・レベル

指定されたキーがマップされるシャード番号。 キーベースのシャーディングが有効な場合、このパラメータはキーとシャード番号間のマッピングの確立、または指定されたキーがマップされるシャード番号の取得に使用されます。

AQ$GET_KEY_SHARD_INST

キュー・レベル

特定のキーがマップされるシャードを所有するインスタンス番号。 キーベースのシャーディングが有効な場合にのみ適用されます。 読取り専用のパラメータです。

26.4.53 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-70 VERIFY_QUEUE_TYPESプロシージャのパラメータ

パラメータ 説明

src_queue_name

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

dest_queue_name

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

destination

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

rc

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

ノート:

  • SYS.AQ$_MESSAGE_TYPESは、同じソース・キュー、宛先キューおよびデータベース・リンクに対して複数のエントリを持ちますが、変換は異なります。

  • VERIFY_QUEUE_TYPESチェックは、伝播されたメッセージの送信ごとではなく、AQ伝播スケジュールごとに1回実行されます。

  • キューのペイロードが変更された場合は、ソース・キューと宛先キュー間の既存の伝播スケジュールを削除して再作成する必要があります。