プライマリ・コンテンツに移動
Oracle® C++ Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72464-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Consumerクラス

ConsumerクラスはMessageのデキューをサポートし、デキュー・オプションを制御します。

表13-14 Consumerクラスで使用される列挙値

属性 オプション
DequeMode
  • DEQ_BROWSEは、ロックを取得せずにメッセージを読み取ることを示します。SELECTと等価です。

  • DEQ_LOCKEDは、メッセージを読み取ることを示します。トランザクションの間存続する書込みロックを取得します。SELECT FOR UPDATEと等価です。

  • DEQ_REMOVEは、メッセージを読み取ることを示します。更新か削除を行います。メッセージは、retentionプロパティに基づいて、キュー表に保存できます。これは、デフォルト設定です。

  • DEQ_REMOVE_NODATAは、メッセージの受信者を確認するが、実際の内容は配信されないことを示します。

Navigation
  • DEQ_FIRST_MSGは、検索基準に一致する最初に使用可能なメッセージをキューから取り出す必要があることを示します。キューの初めに位置をリセットします。

  • DEQ_NEXT_TRANSACTIONは、検索基準に一致する次に使用可能なメッセージをキューから取り出す必要があることを示します。前のメッセージがメッセージ・グループに属している場合、AQは、そのメッセージ・グループに属していて検索基準と一致する、次に使用可能なメッセージを取り出します。これは、デフォルト設定です。

  • DEQ_NEXT_MSGは、現行トランザクション・グループに残りがあってもスキップすることを示します。次のトランザクション・グループの最初のメッセージを取得します。このオプションを使用できるのは、現行のキューに対してメッセージのグループ化が有効になっている場合のみです。

Visibility
  • DEQ_IMMEDIATEは、デキューされたメッセージを現行のトランザクションの一部にしないことを示します。独自のトランザクションを構成します。

  • DEQ_ON_COMMITは、デキューを現行のトランザクションの一部にすることを示します。これは、デフォルト設定です。

DequeWaitOption
  • DEQ_WAIT_FOREVERは、コンシューマが特に期限を設けずにMessageを待機することを示します。

  • DEQ_NO_WAITは、キューにメッセージがない場合は待機が行われないことを示します。


表13-15 Consumerメソッドの概要

メソッド 説明

Consumer()


Consumerクラスのコンストラクタです。

getConsumerName()


Consumerの名前を取得します。

getCorrelationId()


デキューするメッセージの相関識別子を取得します。

getDequeueMode()


Consumerのデキュー・モードを取得します。

getMessageIdToDequeue()


デキューされるメッセージのIDを取得します。

getQueueName()


コンシューマで使用するキューの名前を取得します。

getPositionOfMessage()


デキューされるメッセージの位置を取得します。

getTransformation()


Messageのデキュー前に適用された変換を取得します。

getVisibility()


デキュー操作のトランザクション動作を取得します。

getWaitTime()


検索基準と一致するMessageを待機するときの、Consumerの指定の動作を取得します。

isNull()


ConsumerオブジェクトがNULLかどうかをテストします。

operator=()


Consumerクラスの代入演算子です。

receive()


Messageを受信してデキューします。

setAgent()


コンシューマのAgentの名前とアドレス(キュー名)を設定します。

setConsumerName()


Consumerの名前を設定します。

setCorrelationId()


デキューされるメッセージの相関識別子を指定します。

setDequeueMode()


デキューに関連付けられているロック動作を指定します。

setMessageIdToDequeue()


デキューするMessageの識別子を指定します。

setNull()


ConsumerをNULLに設定します。このオブジェクトに関連付けられているメモリーを解放します。

setPositionOfMessage()


取得するMessageの位置を指定します。

setQueueName()


Messageのデキュー前にキューの名前を指定します。

setTransformation()


Messageのデキュー前に適用される変換を指定します。

setVisibility()


Messageを現行のトランザクションの一部としてデキューする必要があるかどうかを指定します。

setWaitTime()


基準と一致するMessageがない場合の待機条件を指定します。


Consumer()

Consumerクラスのコンストラクタです。

構文 説明
Consumer(
   const Connection *conn);
指定したConnectionハンドルを使用して新規のConsumerオブジェクトを作成します。
Consumer(
   const Connection *conn
   const Agent& agent);
指定したConnectionと指定したAgentのプロパティを使用して、新規のConsumerオブジェクトを作成します。
Consumer(
   const Connection *conn,
   const string& queue);
指定したConnectionとキューを使用して新規のConsumerオブジェクトを作成します。
Consumer(
   const Consumer& consumer);
コピー・コンストラクタです。

パラメータ 説明
conn
Consumerの作成に使用する接続を指定します。
agent
Consumerに割り当てるエージェントを指定します。
queue
Consumerがメッセージを取り出すキューを指定します。
consumer
オリジナルのConsumerオブジェクトです。

getConsumerName()

Consumerの名前を取得します。

構文

string getConsumerName() const;

getCorrelationId()

デキューするメッセージの相関識別子を取得します。

構文

string geCorrelationId() const;

getDequeueMode()

Consumerのデキュー・モードを取得します。DequeueModeの定義は、表13-14を参照してください。

構文

DequeueMode getDequeueMode() const;

getMessageIdToDequeue()

デキューされるメッセージのIDを取得します。

構文

Bytes getMessageToDequeue() const;

getPositionOfMessage()

デキューされるメッセージの位置またはナビゲーションを取得します。Navigationの定義は、表13-14を参照してください。

構文

Navigation getPositionOfMessage() const;

getQueueName()

コンシューマで使用するキューの名前を取得します。

構文

string getQueueName() const;

getTransformation()

Messageのデキュー前に適用された変換を取得します。

構文

string getTransformation() const;

getVisibility()

デキュー操作のトランザクション動作または可視性を取得します。Visibilityの定義は、表13-14を参照してください。

構文

Visibility getVisibility() const;

getWaitTime()

検索基準と一致するMessageを待機するときの、Consumerの指定の動作を取得します。DequeWaitOptionの定義は、表13-14を参照してください。

構文

DequeWaitOption getWaitTime() const;

isNull()

ConsumerオブジェクトがNULLかどうかをテストします。ConsumerオブジェクトがNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isNull() const;

operator=()

Consumerクラスの代入演算子です。

構文

void operator=(
   const Consumer& consumer); 
パラメータ 説明
consumer
オリジナルのConsumerです。

receive()

Messageを受信してデキューします。

構文

Message receive(
   Message::PayloadType pType,
   const string& type="",
   const string& schema="");
パラメータ 説明
pType
受信するペイロードの型を指定します。ペイロード型は表13-14に定義されています。
type
typeOBJECTの場合の、ペイロードの型を指定します。
schema
型が定義されているスキーマを指定します(pTypeOBJECTの場合)。

setAgent()

コンシューマのAgentの名前とアドレス(キュー名)を設定します。

構文

void setAgent(
   const Agent& agent);
パラメータ 説明
agent
Agentの名前を指定します。

setConsumerName()

Consumerの名前を設定します。コンシューマ名が一致するメッセージにのみアクセスできます。キューが複数のコンシューマ用に設定されていない場合は、このオプションをNULLに設定する必要があります。

構文

void setConsumerName(
   const string& name);
パラメータ 説明
name
Consumerの名前を指定します。

setCorrelationId()

デキューされるメッセージの相関識別子を指定します。パーセント記号(%)やアンダースコア(_)など、特殊なパターン一致文字を使用できます。複数のメッセージがパターンと一致する場合、デキュー順序は不定になります。

構文

void setCorrelationId
   const string& id);
パラメータ 説明
id
Messageの識別子を指定します。

setDequeueMode()

デキューに関連付けられているロック動作を指定します。

構文

void setDequeueMode(
   DequeueMode mode);
パラメータ 説明
mode
エンキュー動作を指定します。DequeModeの定義は、表13-14を参照してください。

setMessageIdToDequeue()

デキューするMessageの識別子を指定します。

構文

void setMessageIdToDequeue(
   const Bytes& msgid);
パラメータ 説明
msgid
デキューするMessageの識別子を指定します。

setNull()

ConsumerをNULLに設定します。このオブジェクトに関連付けられているメモリーを解放します。

構文

void setNull();

setPositionOfMessage()

取得するMessageの位置を指定します。

構文

void setPositionOfMessage(
   Navigation pos);
パラメータ 説明
pos
メッセージの位置、Navigationの定義は、表13-14を参照してください。

setQueueName()

Messageのデキュー前にキューの名前を指定します。通常は、同じキューから複数のメッセージをデキューする場合に使用します。

構文

void setQueueName(
   const string& queue);
パラメータ 説明
queue
データベース内で有効なキューの名前を指定します。

setTransformation()

Messageのデキュー前に適用される変換を指定します。

構文

void setTransformation(
   string &fName);
パラメータ 説明
fName
SQL変換関数を指定します。

setVisibility()

Messageを現行のトランザクションの一部としてデキューする必要があるかどうかを指定します。DEQ_BROWSEモードの場合、可視性パラメータは無視されます。

構文

void setVisibility(
   Visibility option);
パラメータ 説明
option
設定するVisibilityオプションの定義は、表13-14を参照してください。

setWaitTime()

基準と一致するMessageがない場合の待機条件を指定します。同じグループのメッセージをデキューする場合、waitパラメータは無視されます。

構文

void setWaitTime(
   DequeWaitOption wait);
パラメータ 説明
wait
待機条件を指定します。DequeWaitOptionの定義は、表13-14を参照してください。