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

デキューするメッセージの相関IDを指定します。

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

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

構文

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を参照してください。