高度なカスタマイズ > Info*Engine ユーザーガイド > Task Webject リファレンス > Message Webject > Create-Object
  
Create-Object
JMS メッセージを作成し、JMS メッセージキューにそのメッセージを配置します。メッセージのタイプと内容は、そのパラメータによって制御されます。
* 
この Webject を使用するには、メッセージの送受信用に環境を設定する必要があります。
構文
<ie:webject name="Create-Object" type="MSG">
  <ie:param name="DBUSER" data="username"/>
  <ie:param name="GROUP_IN" data ="group_name"/>
  <ie:param name="GROUP_OUT" data ="status_group_name"/>
  <ie:param name="PASSWD" data="password"/>
  <ie:param name="PRIORITY" data ="numeric_value"/>
  <ie:param name="PROPERTY" data ="name_value_pair"/>
  <ie:param name="PUT_BOOLEAN" data ="[TRUE | FALSE]"/>
  <ie:param name="PUT_BYTE" data ="byte"/>
  <ie:param name="PUT_BYTES" data ="bytes"/>
  <ie:param name="PUT_CHAR" data ="char"/>
  <ie:param name="PUT_DOUBLE" data ="double"/>
  <ie:param name="PUT_FLOAT" data ="float"/>
  <ie:param name="PUT_INT" data ="int"/>
  <ie:param name="PUT_LONG" data ="long"/>
  <ie:param name="PUT_SHORT" data ="short"/>
  <ie:param name="PUT_STRING" data ="string"/>
  <ie:param name="QUEUE" data ="managed_queue_name"/>
  <ie:param name="TIME_TO_LIVE" data="minutes"/>
  <ie:param name="TYPE" data ="message_type"/>
</ie:webject>
パラメータ
必須
選択
オプション
QUEUE
PUT_BOOLEAN
DBUSER
PUT_BYTE
GROUP_IN
PUT_BYTES
GROUP_OUT
PUT_INT
PASSWD
PUT_CHAR
PRIORITY
PUT_DOUBLE
PROPERTY
PUT_FLOAT
TIME_TO_LIVE
PUT_LONG
SERVICE
PUT_SHORT
PUT_STRING
TYPE
DBUSER
MOM への接続時に使用するユーザー名。このパラメータを指定すると、そのパラメータ値は、認証済みユーザーの既存の資格証明マッピング、または MOM への接続に使用するサービスの .msg.username および .jms.username プロパティで指定されている値よりも優先されます。詳細については、MOM の資格証明マッピングを参照してください。
このパラメータを省略すると、Info*Engine のメッセージ送受信ソフトウェア用のマッピングされた認証が使用されます。このようなマッピングが見つからない場合は、Java Messaging Service (JMS) 用のマッピングされた認証が使用されます。これらのマッピングされた資格証明がいずれも見つからない場合は、.msg.username プロパティで設定されている値が使用されます。.msg.username プロパティが設定されていない場合は、.jms.username プロパティで設定されている値が使用されます。いずれのプロパティも設定されておらず、この DBUSER パラメータに値を指定しない場合、Info*Engine は MOM に接続するときにユーザー名を指定せず、匿名の接続を試みます。
このパラメータはオプションです。
GROUP_IN
Info*Engine グループの名前です。リクエストをシリアル化します。値がアスタリスク (*) であれば、すべてのグループをシリアル化することを意味します。TYPE パラメータが Info*Engine である場合のみ、このパラメータは有効です。このパラメータはオプションです。
GROUP_OUT
正常に終了すると作成されるステータスグループの名前です。このパラメータのデフォルトでは、"create-results" という名前のグループを作成します。このパラメータはオプションです。
PASSWD
MOM への接続時に使用するパスワード。このパラメータを指定すると、そのパラメータ値は、認証済みユーザーの既存の資格証明マッピング、または MOM への接続に使用するサービスの .msg.password および .jms.password プロパティで指定されている値よりも優先されます。詳細については、MOM の資格証明マッピングを参照してください。
このパラメータを省略すると、Info*Engine のメッセージ送受信ソフトウェア用のマッピングされた認証が使用されます。このようなマッピングが見つからない場合は、Java Messaging Service (JMS) 用のマッピングされた認証が使用されます。このようなマッピングされた資格証明がいずれも見つからない場合は、.msg.password プロパティで設定されている値が使用されます。.msg.password プロパティが設定されていない場合は、.jms.password プロパティで設定されている値が使用されます。いずれのプロパティも設定されず、この PASSWD パラメータに値を指定していない場合は、MOM に接続するときに Info*Engine はパスワードを指定しません。このパラメータはオプションです。
PRIORITY
送信メッセージに設定する整数の優先度を指定します。JMS キューの優先度の有効範囲は、0 ~ 9 で、通常のデフォルト値は 4 です。Info*Engine は優先度を無視しますが、Info*Engine によってキューに入れられたメッセージを受信するサードパーティのソフトウェアではこれが使用される場合があります。このパラメータはオプションです。
PROPERTY
JMS 送信メッセージに設定する名前と値のペアを指定します。Info*Engine はこれらのプロパティを無視しますが、サードバーティのソフトウェアではこれが使用される場合があります。PROPERTY の値のフォーマットは以下のとおりです。
name=value
ここで、
name - プロパティ名
value - 対応するプロパティの値
このパラメータのデフォルトの動作では、送信メッセージに追加プロパティを設定しません。このパラメータはオプションです。
PUT_BOOLEAN
Java ブール値を JMS メッセージに配置します。値は TRUE または FALSE のいずれかで指定します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_BYTE
JMS メッセージにシングルバイトを配置します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_BYTES
JMS メッセージに複数のバイトを配置します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_CHAR
JMS メッセージに 1 つの Java 文字を配置します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_DOUBLE
JMS メッセージに Java ダブル (実数) 値を配置します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_FLOAT
JMS メッセージに浮動小数点値を配置します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_INT
JMS メッセージに整数を配置します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_LONG
JMS メッセージに long 型整数を配置します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_SHORT
JMS メッセージに short 型整数を配置します。このパラメータは、TYPE が BytesMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
PUT_STRING
JMS メッセージに java.lang.String のインスタンスを配置します。このパラメータは、TYPE が BytesMessageTextMessageMapMessage、または StreamMessage として指定される場合にのみ使用できます。
QUEUE
新しいメッセージをサブミットする JMS キューの LDAP 相対識別名です。値は設定されているベース URI を基準とする LDAP 相対識別名です。相対の場合に、明示的に指定されていない場合、cn= (共有名の属性) は暗黙的です。このパラメータは必須です。
TIME_TO_LIVE
キューに入れたメッセージが有効である時間を分単位で指定します。このパラメータのデフォルトは 0 です。この場合、メッセージは無制限に有効です。このパラメータはオプションです。
SERVICE
特定の JMS サービスに接続できるように設定されている Info*Engine プロパティセットの名前。これにより、単一の Info*Engine 仮想マシン (VM) に対して複数の JMS サービスを設定できます。このパラメータはオプションです。
TYPE
作成する JMS メッセージのタイプを識別します。メッセージタイプは大文字と小文字を区別します。可能なメッセージタイプは以下のとおりです。
InfoEngine - Info*Engine の通信に使用します。シリアル化された VDB グループは GROUP_IN パラメータによって制御されます。
BytesMessage - 送信メッセージで、このタイプはサードパーティの受信者に特有のメッセージを構築するいくつかの PUT_type パラメータをサポートします。受信メッセージは Unknown と同じ方法で処理されます。BytesMessage のコンテンツは、呼び出しタスクへの入力ストリームの BLOB データとして供給されます。
TextMessage - PUT_STRING パラメータのみをサポートします。複数の PUT_STRING パラメータ値が連結されて送信 TextMessage が作成されます。
MapMessage - 送信メッセージに対して、name=data の形式の値を持ついくつかの PUT_type パラメータを指定できます。値の name 部分が MapMessagedata を配置するときに使用するキーです。
StreamMessage - 送信メッセージで、このタイプはサードパーティの受信者に特有のメッセージを構築するいくつかの PUT_type パラメータをサポートします。
Unknown - BLOB データを BytesMessage に切り替えます。受信メッセージで、新しい空の IeRequest が作成され、メッセージのコンテンツは BLOB データとして連結されます。
以下の表は、各 PUT_type パラメータに指定できるメッセージタイプを示したものです。
BytesMessage
TextMessage
MapMessage
StreamMessage
PUT_BOOLEAN
X
X
X
PUT_BYTE
X
X
X
PUT_BYTES
X
X
X
PUT_CHAR
X
X
X
PUT_DOUBLE
X
X
X
PUT_FLOAT
X
X
X
PUT_INT
X
X
X
PUT_LONG
X
X
X
PUT_SHORT
X
X
X
PUT_STRING
X
X
X
X
* 
BytesMessage での STRING タイプのサポートによって、文字列の値は実際には文字列として書き込まれるのではなく、バイト配列として書き込まれます。
このパラメータのデフォルト値は InfoEngine です。これは Info*Engine リクエストがシリアル化され、キューに配置されることを意味します。この場合の「シリアル化」とは、実際の Java のシリアル化を意味する場合と、XML への Info*Engine リクエストのシリアル化を意味する場合 (BLOB データもキューに入れられる必要がある場合) があります。
以下の例は、JMS メッセージを作成し、それを指定したキューにサブミットします。
<%@page language="java" session="false"%>
<%@taglib uri="http://www.ptc.com/infoengine/taglib/core"
                                               prefix="ie"%>
<ie:webject name="Create-Object" type="MSG">
  <ie:param name="DBUSER" data="$(@FORM[]dbuser[])"/>
  <ie:param name="PASSWD" data="$(@FORM[]passwd[])"/>
  <ie:param name="QUEUE" data="$(@FORM[]queue[])"/>
  <ie:param name="TIME_TO_LIVE" data="$(@FORM[]time[])"/>
  <ie:param name="PRIORITY" data="$(@FORM[]priority[])"/>
  <ie:param name="TYPE" data="TextMessage"/>
  <ie:param name="PUT_STRING" data="$(@FORM[]string[])"/>
  <ie:param name="GROUP_OUT" data="results"/>
</ie:webject>
この例を実際に実行するには、dbuserpasswdqueuetimepriority、および string 変数を識別するフォームを指定する必要があります。
以下の例は、サードパーティのアプリケーションで処理される XML データが含まれている TextMessage をキューに追加する場合の、Create-Object Webject の使用方法を示しています。
<%@page language="java"%>
<%@taglib uri="http://www.ptc.com/infoengine/taglib/core" prefix="ie"%>
<!-- get an "employee object from JDBC/JNDI or where ever,
for the purposes of example just using Create-Group -->
<ie:webject name="Create-Group" type="GRP">
  <ie:param name="ELEMENT"
            data="name=joe:email=joe@somewhere.nice"/>
  <ie:param name="ELEMENT" data="name=bob:email=bob@nowhere.net"/>
  <ie:param name="GROUP_OUT" data="employees"/>
</ie:webject>
<!-- xml-ize the parts -->
<ie:webject name="Format-Group" type="GRP">
  <ie:param name="GROUP_IN" data="employees" />
  <ie:param name="GROUP_OUT" data="formatted"/>
  <ie:param name="ATTRIBUTE" data="name"/>
  <ie:param name="ATTRIBUTE" data="email"/>
  <ie:param name="FORMAT"
  data="<employee><name>{0}</name><email>{1}</email></employee>"/>
</ie:webject>
<!-- turn them into an XML document and put in in a TextMessage on
my queue -->
<ie:webject name="Create-Object" type="MSG">
  <ie:param name="PUT_STRING" data="<?xml version='1.0'>&#10;"/>
  <ie:param name="PUT_STRING" data="<employees>&#10;"/>
  <ie:param name="PUT_STRING"
            data="$(formatted[*]nameemail[0])&#10;"
                                   valueSeparator=";" delim=";" />
  <ie:param name="PUT_STRING" data="</employees>&#10;"/>
  <ie:param name="TYPE" data="TextMessage"/>
  <ie:param name="QUEUE" data="cn=The.Q"/>
</ie:webject>