nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
アプリケーション開発において、メッセージ配信を行う場合、Java規格であるJMS(Java Message Service)を使用します。
JMSとの接続は、送信側であれば、JNDIからjavax.jms.ConnectionFactoryをlookupして、そこからjavax.jms.Connectionを生成して、接続。
更に、Connectionからjavax.jms.Sessionを生成しセッションを確立。
JNDIから宛先であるjavax.jms.Destinationをlookupし、Sessionに渡して、javax.jms.MessageProducerを生成する。
Sessionから生成したjavax.jms.Messageに送信したいデータを設定して、MessageProducerにMessageを渡して送信という手順になります。
受信側は、JNDIからjavax.jms.ConnectionFactoryをlookupして、そこからjavax.jms.Connectionを生成して、接続。
更に、Connectionからjavax.jms.Sessionを生成しセッションを確立。
JNDIから宛先であるjavax.jms.Destinationをlookupし、Sessionに渡して、javax.jms.MessageConsumerを生成する。
MessageConsumerにjavax.jms.MessageListener実装クラスを登録して、Connectionに受信開始を要求という手順になります。
このような複雑な手順や、その都度必要となる設定パラメータなどを隠蔽して、簡潔にJMSへの送信、受信を可能にします。
javax.jms.Connectionを取得する機能を抽象化したのが、JMSConnectionFactoryです。
javax.jms.Sessionを取得する機能を抽象化したのが、JMSSessionFactoryです。
javax.jms.MessageProducerを取得する機能を抽象化したのが、JMSMessageProducerFactoryです。
javax.jms.MessageConsumerを取得する機能を抽象化したのが、JMSMessageConsumerFactoryです。
関連するパッケージは、以下です。
アプリケーション向けインタフェースJMSConnectionFactoryは、javax.jms.Connectionを簡易に取得するためにアプリケーションが直接使用することもできますが、他のサービスの下位サービスとしても使用されます。
以下に上位サービスの一覧を示します。
上位サービス | 用途 |
jp.ossc.nimbus.service.jms.JMSSessionFactory | Connectionを取得するために使用する。 |
JMSConnectionFactoryを使った簡単なアプリケーションのサンプルを示します。
- import javax.jms.Connection;
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.jms.JMSConnectionFactory;
- // JMSConnectionFactoryを取得
- JMSConnectionFactory factory = (JMSConnectionFactory)ServiceManagerFactory.getServiceObject("JMSConnectionFactory");
- // Connectionを生成する
- Connection con = factory.getConnection();
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.jms.JMSConnectionFactoryService | JMS1.1以降でQueue及びTopicへ接続するConnectionを取得する |
jp.ossc.nimbus.service.jms.JMSQueueConnectionFactoryService | Queueへ接続するQueueConnectionを取得する |
jp.ossc.nimbus.service.jms.JMSTopicConnectionFactoryService | Topicへ接続するTopicConnectionを取得する |
アプリケーション向けインタフェースJMSSessionFactoryは、javax.jms.Sessionを簡易に取得するためにアプリケーションが直接使用することもできますが、他のサービスの下位サービスとしても使用されます。
以下に上位サービスの一覧を示します。
上位サービス | 用途 |
jp.ossc.nimbus.service.jms.JMSMessageProducerFactory | Sessionを取得するために使用する。 |
jp.ossc.nimbus.service.jms.JMSMessageConsumerFactory | Sessionを取得するために使用する。 |
jp.ossc.nimbus.service.scheduler2.JMSSchedulerService | スケジュールをJMSQueueに投入するために使用する。 |
jp.ossc.nimbus.service.resource.jms.JMSSessionFactoryService | JMSのSessionをリソースとして取得するために使用する。 |
JMSSessionFactoryを使った簡単なアプリケーションのサンプルを示します。
- import javax.jms.Session;
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.jms.JMSSessionFactory;
- // JMSSessionFactoryを取得
- JMSSessionFactory factory = (JMSSessionFactory)ServiceManagerFactory.getServiceObject("JMSSessionFactory");
- // Sessionを生成する
- Session session = factory.getSession();
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.jms.JMSSessionFactoryService | JMS1.1以降でQueue及びTopicとのセッションを確立するSessionを取得する |
jp.ossc.nimbus.service.jms.JMSQueueSessionFactoryService | Queueとのセッションを確立するQueueSessionを取得する |
jp.ossc.nimbus.service.jms.JMSTopicSessionFactoryService | Topicとのセッションを確立するTopicSessionを取得する |
アプリケーション向けインタフェースJMSMessageProducerFactoryは、javax.jms.MessageProducerを簡易に取得するためにアプリケーションが直接使用することもできますが、他のサービスの下位サービスとしても使用されます。
以下に上位サービスの一覧を示します。
上位サービス | 用途 |
jp.ossc.nimbus.service.scheduler2.JMSSchedulerService | スケジュールをJMSQueueに投入するために使用する。 |
jp.ossc.nimbus.service.writer.jms.DestinationWriterService | JMSの宛先に出力するために使用する。 |
JMSMessageProducerFactoryを使った簡単なアプリケーションのサンプルを示します。
- import javax.jms.MessageProducer;
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.jms.JMSMessageProducerFactory;
- // JMSMessageProducerFactoryを取得
- JMSMessageProducerFactory factory = (JMSMessageProducerFactory)ServiceManagerFactory.getServiceObject("JMSMessageProducerFactory");
- // MessageProducerを生成する
- MessageProducer producer = factory.createProducer();
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.jms.JMSMessageProducerFactoryService | JMS1.1以降でQueue及びTopicにメッセージを送信するMessageProducerを取得する |
jp.ossc.nimbus.service.jms.JMSQueueSenderFactoryService | Queueにメッセージを送信するQueueSenderを取得する |
jp.ossc.nimbus.service.jms.JMSTopicPublisherFactoryService | Topicにメッセージを送信するTopicPublisherを取得する |
アプリケーション向けインタフェースJMSMessageConsumerFactoryは、javax.jms.MessageConsumerを簡易に取得するためにアプリケーションが直接使用することもできますが、他のサービスの下位サービスとしても使用されます。
以下に上位サービスの一覧を示します。
上位サービス | 用途 |
jp.ossc.nimbus.service.scheduler2.JMSSchedulerService | スケジュールをJMSQueueから取得するために使用する。 |
jp.ossc.nimbus.service.codemaster.CodeMasterService | マスタの更新通知をJMSTopicから受信するために使用する。 |
JMSMessageConsumerFactoryを使った簡単なアプリケーションのサンプルを示します。
- import javax.jms.MessageConsumer;
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.jms.JMSMessageConsumerFactory;
- // JMSMessageConsumerFactoryを取得
- JMSMessageConsumerFactory factory = (JMSMessageConsumerFactory)ServiceManagerFactory.getServiceObject("JMSMessageConsumerFactory");
- // MessageConsumerを生成する
- MessageConsumer consumer = factory.createConsumer();
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.jms.JMSMessageConsumerFactoryService | JMS1.1以降でQueue及びTopicからメッセージを受信するMessageConsumerを取得する |
jp.ossc.nimbus.service.jms.JMSQueueReceiverFactoryService | Queueからメッセージを受信するQueueReceiverを取得する |
jp.ossc.nimbus.service.jms.JMSTopicSubscriberFactoryService | Topicからメッセージを受信するTopicSubscriberを取得する |