sendmsg

説明

Java Message Service (JMS) を使用して、囲まれたテキスト メッセージを送信します。

sendmsg タグの本文内にフロー制御タグをネストして、テキスト メッセージを動的に構築できます。sendmsg タグに msgparam タグをネストして、追加のメッセージ プロパティを指定することもできます。sendmsg タグが transaction タグ内にネストされている場合、sendmsg タグがトランザクションの構成部分となり、sendmsg 動作を完了できるかどうかはそのトランザクションの全動作によって決まります。トランザクション内の sqlsendmsggetmsg などのすべての動作が完了すると、変更がすべて保存されます。すべての動作が完了しない場合は、例外が発生し、変更がロール バックされます。


メモ

sendmsg タグは、ポイントツーポイントのメッセージにのみ使用されます。


sendmsg タグでは、JMS QueueConnectionFactory および JNDI 検索 (ルックアップ) による JMS メッセージ キューを使用します。JMS 接続プールが指定されます。JRun 管理者は、Web アプリケーションで使用するメッセージ キュー オブジェクトをあらかじめ定義しておく必要があります。詳細については、"前提条件"セクションを参照してください。

構文

<jrun:sendmsg
  msgsrc="message queue connection factory"
  queue="message queue"
  [username="user"]
  [password="password"]
  [delivery="PERSISTENT|NON_PERSISTENT"]
  [priority="integer"]
  [expire="never|time in milliseconds"]>
  オプション <jrun:msgparam/> のある電子メール メッセージ本文
</jrun:sendmsg>

属性

msgsrc

必須。java.lang.String または javax.jms.QueueConnectionFactory を取り ます。

メッセージのソースであるメッセージ QueueConnectionFactory。文字列を指定 すると、"java:comp/env/jms/[msgsrc]" で JNDI 検索 (ルックアップ) を実行す ることで、QueueConnectionFactory が取得できると仮定されます。
QueueConnectionFactory オブジェクトを既定の InitialContext から取得でき ない場合は、jndi タグを使用して別の InitialContext を検索してファクトリを 見つける必要があります。詳細については、jndiセクションを参照してください。

queue

必須。属性として、java.lang.String または javax.jms.Queue を取ります。

メッセージ キュー オブジェクト。文字列を指定すると、"java:comp/env/jms/ [queue]" で JNDI 検索 (ルックアップ) を実行することで、キューが取得できると 仮定されます。Queue オブジェクトを既定の InitialContext から取得できない 場合は、jndi タグを使用して別の InitialContext を検索してキューを見つける 必要があります。詳細については、jndiセクションを参照してください。

username

オプション。java.lang.String を取ります。

メッセージ キュー認証のためのユーザ名。

password

オプション。java.lang.String を取ります。

メッセージ キュー認証のためのパスワード。

delivery

オプション。java.lang.String を取ります。

メッセージ配信モード。有効な値は PERSISTENT NON_PERSISTENT です。既定値 は PERSISTENT です。

priority

オプション。java.lang.Stringjava.lang.Integer、または int を取ります。

メッセージの優先レベル。

expire

オプション。java.lang.Stringjava.lang.Long、または long を取ります。

メッセージが期限切れになるまでの時間間隔 (ミリ秒単位)。既定では期限はあり ません。

前提条件

sendmsg および getmsg タグを使用するには、EJB および JMS オプションを含む完全な JRun インストールを実行する必要があります。ユーザ独自のメッセージ キューを指定する場合は、JRun サーバの local.properties ファイルを編集して、次のエントリを加えます。

jms.queue.[your queue name].description=[description]
jms.queue.[your queue name].display-name=[displayname in JMC]

この JSP は、sendmsg タグの最も一般的な使用方法を示しています。通常、Web アプリケーションでは、JNDI 検索 (ルックアップ) を実行して JMS QueueConnectionFactory を取得する必要があります。また、同じアプローチで JMS メッセージ キュー オブジェクトの事前定義を取得する必要もあります。param タグと jndi タグはこれらの分散オブジェクトの取得に使用されます。

まず、param タグを使用して、JMS QueueConnectionFactory と JMS メッセージ キューを保持するスクリプト変数を宣言します。次に jndi タグを使用してオブジェクトを見つけます。最後に、sendmsg タグが JNDI から返されるオブジェクトを使用してメッセージ送信動作を実行します。

<%@ page import="allaire.taglib.*" %>
<%@ taglib uri="jruntags" prefix="jrun" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>sendmsg Tag Example</title></head><body>
<%--
java:comp/env/jms/QueueConnectionFactory を使用して 
QueueConnectionFactory を検索し、java:comp/env/jms/Queue1 を
使用してキューを検索します。
--%>
<jrun:sendmsg msgsrc="QueueConnectionFactory" queue="Queue1">
This is a text message.
</jrun:sendmsg>

<%--
ファクトリとキューが既定の InitialContext で見つからない場合は、jndi タグを使用し
て検索できます。
--%>
<jrun:jndi action="lookup"
name="java:comp/env/jms/QueueConnectionFactory" id="f"/>
<jrun:jndi name="java:comp/env/jms/Queue1" id="q"/>

<jrun:sendmsg msgsrc="<%= page.getAttribute("f") %>"
queue="<%= page.getAttribute("q") %>">
This is a text message.
</jrun:sendmsg>
</body></html>