D Advanced Queuingのシャード・キュー

表D-1 シャード・キューのOracle Database Advanced Queuingプログラム・インタフェースの比較: 管理インタフェース

ユース・ケース PL/SQL Java (JMS)

シャード・キューの作成

DBMS_AQADM.CREATE_SHARDED_QUEUE AQjmsDestination.createJMSShardedQueue

シャード・キューの削除

DBMS_AQADM.DROP_SHARDED_QUEUE AQjmsDestination.dropJMSShardedQueue

シャード・キューの変更

DBMS_AQADM.ALTER_SHARDED_QUEUE

なし。PL/SQL APIを使用してください。

シャード・キューの管理

次のトピックでは、シャード・キューを管理する方法について説明します。

ノート:

シャード・キューの開始および停止では、非シャード・キューと同じAPIを使用します。

シャード・キューの作成

CREATE_SHARDED_QUEUE APIはシャード・キューを作成します。

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_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

ペイロードは、RAWDBMS_AQADM.JMS_TYPEまたはオブジェクト・タイプにすることができます。デフォルトはDBMS_AQADM.JMS_TYPEです。

queue_properties

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

queue_propertiesの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

replication_mode

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

シャード・キューの削除

このプロシージャは、データベース・キューイング・システムから既存の共有されているキューを削除します。DROP_SHARDED_QUEUEをコールする前に、キューを停止する必要があります。forceをFALSEに設定した場合、ユーザーはDROP_SHARDED_QUEUEをコールする前にキューを明示的に停止する必要があります。forceをTRUEに設定した場合、キューは内部的に停止されてから削除されます。

構文:

DBMS_AQADM.DROP_SHARDED_QUEUE( 
       queue_name IN VARCHAR2, 
       force      IN BOOLEAN DEFAULT FALSE )

パラメータ

表D-2 CREATE_SHARDED_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

この必須パラメータは、共有されているキューの名前を指定します。

force

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

シャード・キューの変更

このプロシージャを使用すると、ユーザーはシャード・キューのqueue_propertiesを変更できます。

構文:

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

パラメータ

表D-3 ALTER_SHARDED_QUEUEプロシージャのパラメータ

パラメータ 説明

queue_name

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

max_retries

許可される最大試行数。

comment

パラメータのコメント。

queue_properties

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

queue_propertiesの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

replication_mode

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

キューのパラメータの設定

このプロシージャを使用すると、ユーザーはキュー・レベルまたはデータベース・レベルでシャード・キューに各種のパラメータを設定できます。データベース・レベルの場合、queue_nameNULLである必要があります。キューによってデータベース・レベルのパラメータ値が上書きされます。

構文:

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

パラメータ

表D-4 SET_QUEUE_PARAMETERプロシージャのパラメータ

パラメータ 説明

queue_name

シャード・キューの名前。

param_name

パラメータ名。

param_value

パラメータの値。

キューのパラメータの設定解除

このプロシージャを使用すると、ユーザーはキュー・レベルまたはデータベース・レベルでシャード・キューの各種のパラメータを設定解除できます。データベース・レベルの場合、queue_nameNULLである必要があります。キューによってデータベース・レベルのパラメータ値が上書きされます。

構文:

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

パラメータ

表D-5 UNSET_QUEUE_PARAMETERプロシージャのパラメータ

パラメータ 説明

queue_name

シャード・キューの名前。

param_name

パラメータ名。

キューのパラメータの取得

このプロシージャを使用すると、ユーザーはキュー・レベルまたはデータベース・レベルでシャード・キューの各種のパラメータを取得できます。データベース・レベルの場合、queue_nameNULLである必要があります。キューによってデータベース・レベルのパラメータ値が上書きされます。

構文:

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

パラメータ

表D-6 GET_QUEUE_PARAMETERプロシージャのパラメータ

パラメータ 説明

queue_name

シャード・キューの名前。

param_name

パラメータ名。

param_value

パラメータの値。

例外キューの作成

このプロシージャを使用すると、ユーザーはシャード・キューの例外キューを作成できます。

構文:

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

パラメータ

表D-7 CREATE_EXCEPTION_QUEUEプロシージャのパラメータ

パラメータ 説明

sharded_queue_name

シャード・キューの名前。

exception_queue_name

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