ENQUEUE¶
ENQUEUE プロシージャは、キューにエントリを追加します。署名は次のとおりです。
ENQUEUE(
<queue_name> IN VARCHAR2,
<enqueue_options> IN DBMS_AQ.ENQUEUE_OPTIONS_T,
<message_properties> IN DBMS_AQ.MESSAGE_PROPERTIES_T,
<payload> IN <type_name>,
<msgid> OUT RAW)
Parameters
queue_name
既存のキューの名前(オプションでスキーマ修飾)。スキーマ名を省略すると、サーバーは
SEARCH_PATHで指定されたスキーマを使用します。Oracleとは異なり、引用符で囲まれていない識別子は保存する前に小文字に変換されることに注意してください。特殊文字を含めるか、大文字と小文字を区別する名前を使用するには、名前を二重引用符で囲みます。キューの作成の詳細については、
DBMS_AQADM.CREATE_QUEUEを参照してください。
enqueue_options
enqueue_optionsはタイプの値、enqueue_options_t:DBMS_AQ.ENQUEUE_OPTIONS_T IS RECORD( visibility BINARY_INTEGER DEFAULT ON_COMMIT, relative_msgid RAW(16) DEFAULT NULL, sequence_deviation BINARY INTEGER DEFAULT NULL, transformation VARCHAR2(61) DEFAULT NULL, delivery_mode PLS_INTEGER NOT NULL DEFAULT PERSISTENT);現在、
enqueue_options_tでサポートされている唯一のパラメーター値は次のとおりです。
|
|
|---|---|
|
|
|
|
|
|
|
|
message_properties
message_propertiesはタイプの値、message_properties_t:message_properties_t IS RECORD( priority INTEGER, delay INTEGER, expiration INTEGER, correlation CHARACTER VARYING(128) COLLATE pg_catalog.”C”, attempts INTEGER, recipient_list “AQ$_RECIPIENT_LIST_T”, exception_queue CHARACTER VARYING(61) COLLATE pg_catalog.”C”, enqueue_time TIMESTAMP WITHOUT TIME ZONE, state INTEGER, original_msgid BYTEA, transaction_group CHARACTER VARYING(30) COLLATE pg_catalog.”C”, delivery_mode INTEGER DBMS_AQ.PERSISTENT);
message_properties_tでサポートされている値は次のとおりです。
|
キューテーブル定義に |
|
メッセージをデキューまたは |
|
expirationパラメーターを使用して、メッセージの有効期限が切れるまでの秒数を指定します。 |
|
相関を使用して、エントリに関連付けられるメッセージを指定します。デフォルトは |
|
これは、メッセージをデキューする試行回数を指定するシステム管理値です。 |
|
このパラメーターはサポートされていません。 |
|
|
|
|
|
このパラメーターはDBMS_AQによって維持されます。状態は次のとおりです。
|
|
このパラメーターは互換性のために受け入れられ、無視されます。 |
|
このパラメーターは互換性のために受け入れられ、無視されます。 |
|
このパラメーターはサポートされていません。 |
payload
payloadパラメータを使用して、キューエントリに関連付けられるデータを提供します。ペイロードタイプは、対応するキューテーブルの作成時に指定されたタイプと一致する必要があります(DBMS_AQADM.CREATE_QUEUE_TABLEを参照)。
msgid
msgidパラメーターを使用して、一意の(システム生成)メッセージ識別子を取得します。
Example
次の匿名ブロックは DBMS_AQ.ENQUEUE を呼び出し、 work_order という名前のキューにメッセージを追加します。
DECLARE
enqueue_options DBMS_AQ.ENQUEUE_OPTIONS_T;
message_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
message_handle raw(16);
payload work_order;
BEGIN
payload := work_order('Smith', 'system upgrade');
DBMS_AQ.ENQUEUE(
queue_name => 'work_order',
enqueue_options => enqueue_options,
message_properties => message_properties,
payload => payload,
msgid => message_handle
);
END;