■TopicRequestor/QueueRequestor使用時について
TopicRequestorクラス、またはQueueRequestorクラスのrequest()メソッドは、Topic、またはQueueに要求メッセージを送り、その応答を待ちます。受信アプリケーションが接続していない場合、または受信アプリケーションが応答メッセージを返さない場合など、アプリケーションの構成によってrequest()メソッドから復帰しないことがあります。
上記のような無限の待ち合わせを回避する方法として、システムプロパティを使用することにより、一定時間内に応答が返らない場合にrequest()メソッドからの復帰を指示することができます。
com.fujitsu.interstage.jms.receive_timeout
ミリ秒単位でタイムアウト時間を設定します。
例
-Dcom.fujitsu.interstage.jms.receive_timeout=10000
ポイント
システムプロパティに、イベントサービス動作環境の「メッセージの待ち合わせ時間(-wtimeの指定値)」より小さい値を設定した場合、-wtimeに指定された時間だけ待ち合わせます。
タイムアウト発生時、request()メソッドは、nullで復帰します。
■メッセージの欠落の防止について
イベントチャネルのメッセージ蓄積可能なデータ数の上限値を超過した場合、メッセージが欠落することがあります。
メッセージの欠落を回避する方法として、システムプロパティを使用することにより、エラー通知を指示することができます。
com.fujitsu.interstage.jms.queue_max_err
“yes”を設定します。
例
-Dcom.fujitsu.interstage.jms.queue_max_err=yes
■JMS1.0.2規約のAPIについて
本製品の8.0以前に作成したJava Message Service 1.0.2規約に従ったアプリケーションは、システムプロパティを使用することにより、8.0以前と同じように動作させることができます。
com.fujitsu.interstage.jms.exception_version_lower
“yes”を設定します。
例
-Dcom.fujitsu.interstage.jms.exception_version_lower=yes
■メッセージの受信タイムアウトについて
メッセージを受信できない場合に受信タイムアウトが発生するタイミングは、receive()メソッドに指定したタイムアウト時間より長くなることがあります。メッセージの受信タイムアウトの詳細については、“24.13.4 パッケージjavax.jmsのAPI一覧(その4)”のreceive()メソッドの(注1)を参照してください。