nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.writer.jms.DestinationWriterServiceは、WritableRecordをJMSのメッセージとして宛先に配信するMessageWriter実装サービスです。
JMS1.1以降では、QueueとTopicのAPIが統合されているため、Queueに送信する場合もTopicに送信する場合も、同じAPIで送信が可能となった。従って、JMS1.1以降の実装を使用する場合は、宛先の種類に依存せず、サービスを選択する事ができる。
以下にJMS1.1のQueueにMessageを送信するサービス定義を示します。
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE server PUBLIC
- "-//Nimbus//DTD Nimbus 1.0//JA"
- "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
- <server>
- <manager>
- <!-- JMSのQueueにメッセージを送信するMessageWriterサービス -->
- <service name="Writer"
- code="jp.ossc.nimbus.service.writer.jms.DestinationWriterService">
- <!-- JMSMessageProducerFactoryサービスのサービス名を指定する。 -->
- <attribute name="JMSMessageProducerFactoryServiceName">#MessageProducerFactory</attribute>
- <depends>MessageProducerFactory</depends>
- </service>
- <!-- MessageProducerを取得するJMSMessageProducerFactoryサービス -->
- <service name="MessageProducerFactory"
- code="jp.ossc.nimbus.service.jms.JMSMessageProducerFactoryService">
- <attribute name="JMSSessionFactoryServiceName">#SessionFactory</attribute>
- <attribute name="DestinationFinderServiceName">#JndiFinder</attribute>
- <attribute name="DestinationName">queue/SampleQueue</attribute>
- <attribute name="SessionCreate">true</attribute>
- <depends>SessionFactory</depends>
- <depends>JndiFinder</depends>
- </service>
- <!-- Sessionを取得するJMSSessionFactoryサービス -->
- <service name="SessionFactory"
- code="jp.ossc.nimbus.service.jms.JMSSessionFactoryService">
- <attribute name="JMSConnectionFactoryServiceName">#ConnectionFactory</attribute>
- <depends>ConnectionFactory</depends>
- </service>
- <!-- Connectionを取得するJMSConnectionFactoryサービス -->
- <service name="ConnectionFactory"
- code="jp.ossc.nimbus.service.jms.JMSConnectionFactoryService">
- <attribute name="JndiFinderServiceName">#JndiFinder</attribute>
- <attribute name="ConnectionFactoryName">java:/XAConnectionFactory</attribute>
- <depends>
- <!-- JNDIからlookupするJndiFinderサービス -->
- <service name="JndiFinder"
- code="jp.ossc.nimbus.service.jndi.CachedJndiFinderService"/>
- </depends>
- </service>
- </manager>
- </server>
逆にJMS1.0の場合は、QueueとTopicのAPIが統合されていないため、宛先の種類に依存して、サービスを選択する必要がある。
以下に、それぞれの宛先の種類毎のMessageWriter実装サービスを示す。
宛先の種類 | 実装サービス | 実装概要 |
Queue | jp.ossc.nimbus.service.writer.jms.QueueWriterService | JMS Queueへ出力する |
Topic | jp.ossc.nimbus.service.writer.jms.TopicWriterService | JMS Topicへ出力する |
以下にJMS1.0のQueueにMessageを送信するサービス定義を示します。
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE server PUBLIC
- "-//Nimbus//DTD Nimbus 1.0//JA"
- "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
- <server>
- <manager>
- <!-- JMSのQueueにメッセージを送信するMessageWriterサービス -->
- <service name="Writer"
- code="jp.ossc.nimbus.service.writer.jms.QueueWriterService">
- <!-- JMSMessageProducerFactoryサービスのサービス名を指定する。 -->
- <attribute name="JMSMessageProducerFactoryServiceName">#MessageProducerFactory</attribute>
- <depends>MessageProducerFactory</depends>
- </service>
- <!-- MessageProducerを取得するJMSMessageProducerFactoryサービス -->
- <service name="MessageProducerFactory"
- code="jp.ossc.nimbus.service.jms.JMSQueueSenderFactoryService">
- <attribute name="JMSSessionFactoryServiceName">#SessionFactory</attribute>
- <attribute name="DestinationFinderServiceName">#JndiFinder</attribute>
- <attribute name="DestinationName">queue/SampleQueue</attribute>
- <attribute name="SessionCreate">true</attribute>
- <depends>SessionFactory</depends>
- <depends>JndiFinder</depends>
- </service>
- <!-- QueueSessionを取得するJMSSessionFactoryサービス -->
- <service name="SessionFactory"
- code="jp.ossc.nimbus.service.jms.JMSQueueSessionFactoryService">
- <attribute name="JMSConnectionFactoryServiceName">#ConnectionFactory</attribute>
- <depends>ConnectionFactory</depends>
- </service>
- <!-- QueueConnectionを取得するJMSConnectionFactoryサービス -->
- <service name="ConnectionFactory"
- code="jp.ossc.nimbus.service.jms.JMSQueueConnectionFactoryService">
- <attribute name="JndiFinderServiceName">#JndiFinder</attribute>
- <attribute name="ConnectionFactoryName">java:/XAConnectionFactory</attribute>
- <depends>
- <!-- JNDIからlookupするJndiFinderサービス -->
- <service name="JndiFinder"
- code="jp.ossc.nimbus.service.jndi.CachedJndiFinderService"/>
- </depends>
- </service>
- </manager>
- </server>