ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド

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

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

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

public class Consumer {
  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 */
        MessageConsumer consumer = session.createConsumer(destination);          /* 7 */
        connection.start();                                                      /* 8 */
        ut.begin();                                                              /* 9 */
        Message message = consumer.receive();                                    /* 10 */
        ut.commit();                                                             /* 11 */
    } catch( Exception e ) {
        ...
    }
    finally {
        if( null != connection ) {
            try {
                connection.close();                                              /* 12 */
            }
            catch( Exception e ) {
                ...
            }
        }
    }
  }
}

  1. JNDIの開始コンテキストを構築します。

  2. ConnectionFactoryオブジェクトを取得します(JNDI名が“ConnectionFactory”の場合)。

  3. Destinationオブジェクトを取得します(JNDI名が“Destination”の場合)。

  4. UserTransactionオブジェクトを取得します。

  5. Connectionを作成します。

  6. Sessionを作成します。

  7. MessageConsumerを作成します。

  8. 接続によるメッセージの配信を開始します。

  9. グローバルトランザクションを開始します。

  10. メッセージを受信します。

  11. グローバルトランザクションを完了します。

  12. Connectionをクローズします。


注意

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