| Interstage Application Server J2EE ユーザーズガイド |
目次
索引
![]()
|
| 第3部 EJB編 | > 第28章 Bean共通編 | > 28.3 トランザクションを使用したアプリケーション |
JMSのトランザクションを使用した場合の、アプリケーションの開発方法について説明します。
以下に、JMSのトランザクション機能を使用する場合の処理の流れを示します。

JMSのトランザクションを使用する場合の記述例を示します。JMSのDestinationがTopicの場合の例です。
package pkgSample;
import javax.ejb.*;
import java.rmi.*;
import javax.jms.*;
import java.util.*;
import javax.naming.*;
public class SampleBean implements SessionBean
{
SessionContext ctx = null;
TopicConnection topicConnection = null;
Topic topic = null;
// receive SessionContext
public void setSessionContext(SessionContext ctx) throws EJBException {
this.ctx = ctx;
}
public void ejbCreate() throws EJBException, CreateException{
Context context = null;
TopicConnectionFactory topicConnectionFactory = null;
/* Contextを作成します。*/
try{
context=new InitialContext();
/*Topicへの接続を行います*/
topicConnectionFactory=(TopicConnectionFactory)context.lookup("java:comp/env/jms/MyTopicConnectionFactory");
topicConnection = (topicConnectionFactory.createTopicConnection();
}
...
}
public void publishNews(String[] s) throws EJBException{
TopicSession topicSession = null;
TopicPublisher topicPublisher = null;
TextMessage message = null;
/*メッセージを送信します。*/
try{
topicSession = topicConnection.createTopicSession(true,0);
topicPublisher = topicSession.createPublisher(topic);
message = topicSession.createTextMessage();
for (int i=0; i<s, length; i++){
message.setText(s[i]);
topicPublisher.publish(message);
}
/*トランザクションのコミット*/
topicSession.commit();
}
...
}
public void ejbRemove() throws EJBException{
/*コネクションを解放します。*/
try{
if(topicConnection! = null){
topicConnection.close();
}
}
}
...
}
目次
索引
![]()
|