高度なカスタマイズ > Info*Engine ユーザーガイド > Task Webject リファレンス > Message Webject > Subscribe-Queue
  
Subscribe-Queue
指定されたキューにメッセージが受信されると、MOM 実装に呼び出されるイベントハンドラを登録します。
* 
この Webject を使用するには、タスクをキューに入れるように環境を設定する必要があります。
構文
<ie:webject name=Subscribe-Queue type="MSG">
  <ie:param name="DBUSER" data="username"/>
  <ie:param name="EXECUTE_TASK" data="task_name"/>
  <ie:param name="PASSWD" data="password"/>
  <ie:param name="QUEUE" data="managed_queue_name"/>
  <ie:param name="WHERE" data="jms_message_selector"/>
<ie:param name="MAX_CONCURRENCY"="managed_receiver_generation"/>
</ie:webject>
パラメータ
必須
選択
オプション
DBUSER
SERVICE
EXECUTE_TASK
PASSWD
QUEUE
WHERE
MAX_CONCURRENCY
DBUSER
MOM への接続時に使用するユーザー名。このパラメータを指定すると、そのパラメータ値は、認証済みユーザーの既存の資格証明マッピング、または MOM への接続に使用するサービスの .msg.username および .jms.username プロパティで指定されている値よりも優先されます。
このパラメータを省略すると、Info*Engine のメッセージ送受信ソフトウェア用のマッピングされた認証が使用されます。このようなマッピングが見つからない場合は、Java Messaging Service (JMS) 用のマッピングされた認証が使用されます。これらのマッピングされた資格証明がいずれも見つからない場合は、.msg.username プロパティで設定されている値が使用されます。.msg.username プロパティが設定されていない場合は、.jms.username プロパティで設定されている値が使用されます。いずれのプロパティも設定されておらず、この DBUSER パラメータに値を指定しない場合、Info*Engine は MOM に接続するときにユーザー名を指定せず、匿名の接続を試みます。
このパラメータはオプションです。
EXECUTE_TASK
メッセージが購読されるキューに受信されるときに実行されるタスク。受信メッセージに実行するタスクが含まれていない場合は、このパラメータで指定したタスクが実行されます。
EXECUTE_TASK を指定しない場合、購読でそのキューの Info*Engine リクエストのみが処理され、ほかの受信メッセージは却下されます。このパラメータはオプションです。
MAX_CONCURRENCY
キューの購読によって生成される受信者の数。これは、Info*Engine システムが同時に処理するメッセージの最大数を指定します。デフォルト値は 1 で、メッセージが逐次処理されます。
MAX_CONCURRENCY が 1 より大きい値に設定されていると、キューに配置されているメッセージは必ずしもキューに配置された順序で処理されるとはかぎりません。メッセージの順序が重要な場合は、このパラメータを使用しないでください。このパラメータはオプションです。
* 
このパラメータを指定しても、すべての受信者がキューの負荷を受けたときにビジー状態になるとはかぎりません。この機能は、接続先の MOM を決定するコンフィギュレーションに部分的に依存しています。
このため、Tibco EMS は "prefetch" というキューのプロパティをサポートしています。このプロパティのデフォルト値は 5 であり、これは任意の受信者が同時に 5 つのメッセージを受信することを意味します。したがって、キュー内のデータの量によっては、MAX_CONCURRENCY の値が大きすぎると、特定の受信者がアイドル状態のままになる可能性があります。たとえば、Tibco EMS のデフォルトのキューのコンフィギュレーション (受信者につき 5 メッセージ) を使用する場合に、キューに 15 のメッセージがあり、購読時に MAX_CONCURRENCY を 4 に設定した場合、4 人の有効な受信者のうち実際に使用されるのは 3 人のみになります (実際の同時実行受信者は 3 人になります)。15 のメッセージは prefetch のデフォルト値である 5 で除算され、最初の 3 人の受信者に均等に配分されるため、4 人目はアイドル状態のままになります。対象のキューの prefetch の値を 1 に設定すると、すべての受信者がビジー状態になりますが、通常のメッセージのサイズが大きい場合は、メッセージ間に遅延が生じることがあります。
PASSWD
MOM への接続時に使用するパスワード。このパラメータを指定すると、そのパラメータ値は、認証済みユーザーの既存の資格証明マッピング、または MOM への接続に使用するサービスの .msg.password および .jms.password プロパティで指定されている値よりも優先されます。詳細については、MOM の資格証明マッピングを参照してください。
このパラメータを省略すると、Info*Engine のメッセージ送受信ソフトウェア用のマッピングされた認証が使用されます。このようなマッピングが見つからない場合は、Java Messaging Service (JMS) 用のマッピングされた認証が使用されます。このようなマッピングされた資格証明がいずれも見つからない場合は、.msg.password プロパティで設定されている値が使用されます。.msg.password プロパティが設定されていない場合は、.jms.password プロパティで設定されている値が使用されます。いずれのプロパティも設定されず、この PASSWD パラメータに値を指定していない場合は、MOM に接続するときに Info*Engine はパスワードを指定しません。
このパラメータはオプションです。
QUEUE
管理キューの LDAP 識別名。値は設定されているベース URI を基準とする LDAP 相対識別名または完全修飾 LDAP 識別名です。相対の場合に、明示的に指定されていない場合、cn= (共有名の属性) は暗黙的です。このパラメータのデフォルトでは、com.infoengine.msg.defaultExecutionQueue プロパティで指定されている値を使用します。このような値がない場合は、QUEUE パラメータを指定する必要があります。このパラメータはオプションです。
SERVICE
特定の JMS サービスに接続できるように設定されている Info*Engine プロパティセットの名前。これにより、単一の Info*Engine 仮想マシン (VM) に対して複数の JMS サービスを設定できます。このパラメータはオプションです。
WHERE
Sun Java Message Service 仕様の定義に従って、正しくフォーマットされた JMS メッセージセレクタ。このパラメータは、指定されたキューから実行するメッセージのサブセットを選択するときに使用します。このパラメータのデフォルトでは、キューに受信したすべてのメッセージの購読します。このパラメータはオプションです。
以下の例は、指定されたキューを監視する購読を登録します。
<%@page language="java" session="false"%>
<%@taglib uri="http://www.ptc.com/infoengine/taglib/core"
                                               prefix="ie"%>
<ie:webject name="Subscribe-Queue" type="MSG">
  <ie:param name="QUEUE" data="$(@FORM[]queue[0])"/>
  <ie:param name="WHERE" data="$(@FORM[]where[0])"/>
</ie:webject>
この例を実際に実行するには、queue および where 変数を識別するフォームを指定する必要があります。