13.12 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がない場合の待機条件を指定します。

13.12.1 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オブジェクトです。

13.12.2 getConsumerName()

Consumerの名前を取得します。

構文

string getConsumerName() const;

13.12.3 getCorrelationId()

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

構文

string geCorrelationId() const;

13.12.4 getDequeueMode()

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

構文

DequeueMode getDequeueMode() const;

13.12.5 getMessageIdToDequeue()

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

構文

Bytes getMessageToDequeue() const;

13.12.6 getPositionOfMessage()

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

構文

Navigation getPositionOfMessage() const;

13.12.7 getQueueName()

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

構文

string getQueueName() const;

13.12.8 getTransformation()

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

構文

string getTransformation() const;

13.12.9 getVisibility()

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

構文

Visibility getVisibility() const;

13.12.10 getWaitTime()

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

構文

DequeWaitOption getWaitTime() const;

13.12.11 isNull()

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

構文

bool isNull() const;

13.12.12 operator=()

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

構文

void operator=(
   const Consumer& consumer); 
パラメータ 説明
consumer

オリジナルのConsumerです。

13.12.13 receive()

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

構文

Message receive(
   Message::PayloadType pType,
   const string& type="",
   const string& schema="");
パラメータ 説明
pType

受信するペイロードの型を指定します。ペイロード型は表13-14に定義されています。

type

typeOBJECTの場合の、ペイロードの型を指定します。

schema

型が定義されているスキーマを指定します(pTypeOBJECTの場合)。

13.12.14 setAgent()

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

構文

void setAgent(
   const Agent& agent);
パラメータ 説明
agent

Agentの名前を指定します。

13.12.15 setConsumerName()

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

構文

void setConsumerName(
   const string& name);
パラメータ 説明
name

Consumerの名前を指定します。

13.12.16 setCorrelationId()

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

構文

void setCorrelationId
   const string& id);
パラメータ 説明
id

Messageの識別子を指定します。

13.12.17 setDequeueMode()

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

構文

void setDequeueMode(
   DequeueMode mode);
パラメータ 説明
mode

エンキュー動作を指定します。DequeModeの定義は、表13-14を参照してください。

13.12.18 setMessageIdToDequeue()

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

構文

void setMessageIdToDequeue(
   const Bytes& msgid);
パラメータ 説明
msgid

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

13.12.19 setNull()

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

構文

void setNull();

13.12.20 setPositionOfMessage()

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

構文

void setPositionOfMessage(
   Navigation pos);
パラメータ 説明
pos

メッセージの位置、Navigationの定義は、表13-14を参照してください。

13.12.21 setQueueName()

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

構文

void setQueueName(
   const string& queue);
パラメータ 説明
queue

データベース内で有効なキューの名前を指定します。

13.12.22 setTransformation()

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

構文

void setTransformation(
   string &fName);
パラメータ 説明
fName

SQL変換関数を指定します。

13.12.23 setVisibility()

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

構文

void setVisibility(
   Visibility option);
パラメータ 説明
option

設定するVisibilityオプションの定義は、表13-14を参照してください。

13.12.24 setWaitTime()

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

構文

void setWaitTime(
   DequeWaitOption wait);
パラメータ 説明
wait

待機条件を指定します。DequeWaitOptionの定義は、表13-14を参照してください。