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

第6部 JMS編> 第24章 JMSアプリケーションの開発> 24.2 作成方法> 24.2.3 Durable Subscription機能

24.2.3.1 Durable Subscription機能を使用したMessageConsumerの作成

 durable Subscriberを作成します。durable Subscriberは、イベントチャネルにメッセージを要求します。Durable Subscription機能を使用してメッセージを受信する手続き例と処理の流れを以下に説明します。

[Durable Subscription機能を使用したMessageConsumer]

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

public class SubscriberD {
  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 */
        Topic topic = (Topic)initialContext.lookup("java:comp/env/jms/Topic");            /* 3 */
        connection = connectionFactory.createConnection();                                /* 4 */
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);      /* 5 */
        TopicSubscriber topicSubscriber = session.createDurableSubscriber(topic, "dsub"); /* 6 */
        connection.start();                                                               /* 7 */
        Message message = topicSubscriber.receive();                                      /* 8 */
        topicSubscriber.close();                                                          /* 9 */
        session.unsubscribe("dsub");                                                      /* 10 */
    } catch( Exception e ) {
        ...
    }
    finally {
        if( null != connection ) {
            try {
                connection.close();                                                       /* 11 */
            }
            catch( Exception e ) {
                ... 
            }
        }
    }
  }
}
  1. JNDIの開始コンテキストを構築します。
  2. ConnectionFactoryオブジェクトを取得します(JNDI名が“ConnectionFactory”の場合)。
  3. Topic オブジェクトを取得します(JNDI名が“Topic”の場合)。
  4. Connectionを作成します。
  5. Sessionを作成します。
  6. Durable TopicSubscriberを作成します(Durable Subscription名が“dsub”の場合)。
  7. 接続によるメッセージの配信を開始します。
  8. メッセージを受信します。
  9. Durable TopicSubscriberをクローズします。
  10. Durable TopicSubscriberを解除します(アプリケーション中断中に送信されたメッセージをアプリケーション再起動後に受信しない場合)。
  11. Connectionをクローズします。


 JNDIの開始コンテキスト構築時の環境プロパティの指定については、“J2EEアプリケーションクライアント”を参照してください。
 Durable TopicSubscriberを解除すると、JMSプロバイダがアプリケーションに代わって持続している接続状態が削除されるため、アプリケーション中断中に送信されたメッセージをアプリケーション再起動後に受信することはできません。Durable Subscription機能が必要なくなった場合にのみDurable TopicSubscriberを解除してください。


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

Copyright 2008 FUJITSU LIMITED