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