Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第6部 JMS編> 第24章 JMSアプリケーションの開発> 24.2 作成方法> 24.2.7 グローバルトランザクション

24.2.7.1 グローバルトランザクションを使用したMessageProducerの作成

[グローバルトランザクションのMessageProducer]

import javax.jms.*;
import javax.naming.*;

public class Producer {
  public static void main( String[] args ) {
    Connection connection = null;
    ...
    try {
        java.util.Hashtable env = new java.util.Hashtable( );
        env.put ( javax.naming.Context.INITIAL_CONTEXT_FACTORY ,
                "com.fujitsu.interstage.j2ee.jndi.InitialContextFactoryForClient" );
        InitialContext initialContext = new InitialContext(env);                /* 1 */
        ConnectionFactory connectionFactory = (ConnectionFactory)
            initialContext.lookup("java:comp/env/jms/ConnectionFactory");       /* 2 */
        Destination destination = (Destination)
            initialContext.lookup("java:comp/env/jms/Destination");             /* 3 */
        javax.transaction.UserTransaction ut =(javax.transaction.UserTransaction)
            initialContext.lookup("java:comp/UserTransaction");                 /* 4 */
        connection = connectionFactory.createConnection();                      /* 5 */
        Session session = connection.createSession(true, 0);                    /* 6 */
        MessageProducer producer = session.createProducer(destination);         /* 7 */
        TextMessage Message = session.createTextMessage( );
        Message.setText( "Message" );
        ut.begin();                                                             /* 8 */
        producer.send(Message);                                                 /* 9 */
        ut.commit();                                                            /* 10 */
    } catch( Exception e ) {
        ...
    }
    finally {
        if( null != connection ) {
            try {
                connection.close();                                             /* 11 */
            }
            catch( Exception e ) {
                ...
            }
        }
    }
  }
}
  1. JNDIの開始コンテキストを構築します。
  2. ConnectionFactoryオブジェクトを取得します(JNDI名が“ConnectionFactory”の場合)。
  3. Destinationオブジェクトを取得します(JNDI名が“Destination”の場合)。
  4. UserTransactionオブジェクトを取得します。
  5. Connectionを作成します。
  6. Sessionを作成します。
  7. MessageProducerを作成します。
  8. グローバルトランザクションを開始します。
  9. メッセージを送信します(MessageタイプがTextMessageで送信メッセージが“Message”の場合)。
  10. グローバルトランザクションを完了します。
  11. Connectionをクローズします。


 JNDIの開始コンテキスト構築時の環境プロパティの指定については、“J2EEアプリケーションクライアント”を参照してください。


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED