DBMS_STREAMS_MESSAGING
パッケージは、Oracle Streamsパッケージ・セットの1つであり、ANYDATA
キューにメッセージをエンキューおよびデキューするインタフェースを提供しています。
注意: 現在、メッセージ・クライアントはバッファに入れたメッセージをデキューできません。 また、DBMS_STREAMS_MESSAGING パッケージを使用して、バッファに入れられたキューにメッセージをエンキューまたはデキューすることはできません。 ただし、DBMS_AQ パッケージを使用して、バッファに入れられたメッセージをエンキューおよびデキューできます。 |
関連項目:
|
この章では、次の項目について説明します。
表133-1 DBMS_STREAMS_MESSAGINGパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
指定したOracle Streamsメッセージ・クライアントを使用して、指定したキューからメッセージをデキューします。 |
|
現在のユーザーが指定したキューにメッセージをエンキューします。 |
注意: このパッケージのサブプログラムはコミットしません。 |
このプロシージャは、指定したOracle Streamsメッセージ・クライアントを使用して、指定したキューからメッセージをデキューします。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンには、msgid
OUT
パラメータがあり、他方のバージョンにはこのパラメータがありません。
構文
DBMS_STREAMS_MESSAGING.DEQUEUE( queue_name IN VARCHAR2, streams_name IN VARCHAR2, payload OUT ANYDATA, dequeue_mode IN VARCHAR2 DEFAULT 'REMOVE', navigation IN VARCHAR2 DEFAULT 'NEXT MESSAGE', wait IN BINARY_INTEGER DEFAULT FOREVER, msgid OUT RAW); DBMS_STREAMS_MESSAGING.DEQUEUE( queue_name IN VARCHAR2, streams_name IN VARCHAR2, payload OUT ANYDATA, dequeue_mode IN VARCHAR2 DEFAULT 'REMOVE', navigation IN VARCHAR2 DEFAULT 'NEXT MESSAGE', wait IN BINARY_INTEGER DEFAULT FOREVER);
パラメータ
表133-2 DEQUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
メッセージをデキューするローカル・キューの名前。 たとえば、 |
|
Oracle Streamsメッセージ・クライアントの名前。たとえば、ユーザー このパラメータが |
|
デキューするペイロード。 |
|
次のいずれかの設定を指定します。
|
|
取り出されるメッセージの位置を指定します。最初に、位置が判断されます。次に、検索基準が適用されます。最後に、メッセージが取り出されます。 次のいずれかの設定を指定します。
注意: 各メッセージ・グループには、単一のトランザクションのメッセージが含まれます。 関連項目: デキュー・オプションの詳細は、『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。 |
|
|
|
デキューするメッセージのメッセージIDを指定します。 |
例外
表133-3 DEQUEUEプロシージャの例外
例外 | 説明 |
---|---|
|
デキューは現在のトランザクションの最後のメッセージに達しました。この例外は次のように指定します。 SYS.DBMS_STREAMS_MESSAGING.ENDOFCURTRANS すべてのデキュー・プロシージャに、この例外を処理する例外ハンドラを含める必要があります。 |
|
キュー内にデキュー操作の対象となるメッセージがありません。この例外は次のように指定します。 SYS.DBMS_STREAMS_MESSAGING.NOMOREMSGS
|
このプロシージャを使用して、現在のユーザーが指定したキューにメッセージをエンキューできます。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンには、msgid
OUT
パラメータがあり、他方のバージョンにはこのパラメータがありません。
構文
DBMS_STREAMS_MESSAGING.ENQUEUE( queue_name IN VARCHAR2, payload IN ANYDATA, msgid OUT RAW); DBMS_STREAMS_MESSAGING.ENQUEUE( queue_name IN VARCHAR2, payload IN ANYDATA);
パラメータ
表133-4 ENQUEUEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
メッセージをエンキューするローカル・キューの名前。 たとえば、 |
|
エンキューするペイロード。 |
|
エンキューするメッセージのメッセージIDを指定します。 |
使用上の注意
メッセージを正しくキューにエンキューするには、現在のユーザーを現在のユーザーと同じ名前で、一意のアドバンスト・キューイング・エージェントにマップする必要があります。 DBMS_STREAMS_ADM.SET_UP_QUEUE
プロシージャを実行し、ユーザーをキュー・ユーザーとして指定して、エンキューの実行に必要な権限をユーザーに付与できます。 SET_UP_QUEUE
を実行し、キュー・ユーザーを指定すると、アドバンスト・キューイング・エージェントが自動的に作成されます。