MessageWriter実装サービス jp.ossc.nimbus.service.writer.jms.DestinationWriterService

jp.ossc.nimbus.service.writer.jms.DestinationWriterServiceは、WritableRecordをJMSのメッセージとして宛先に配信するMessageWriter実装サービスです。
JMS1.1以降では、QueueとTopicのAPIが統合されているため、Queueに送信する場合もTopicに送信する場合も、同じAPIで送信が可能となった。従って、JMS1.1以降の実装を使用する場合は、宛先の種類に依存せず、サービスを選択する事ができる。

以下にJMS1.1のQueueにMessageを送信するサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- JMSのQueueにメッセージを送信するMessageWriterサービス -->
  8. <service name="Writer"
  9. code="jp.ossc.nimbus.service.writer.jms.DestinationWriterService">
  10. <!-- JMSMessageProducerFactoryサービスのサービス名を指定する。 -->
  11. <attribute name="JMSMessageProducerFactoryServiceName">#MessageProducerFactory</attribute>
  12. <depends>MessageProducerFactory</depends>
  13. </service>
  14. <!-- MessageProducerを取得するJMSMessageProducerFactoryサービス -->
  15. <service name="MessageProducerFactory"
  16. code="jp.ossc.nimbus.service.jms.JMSMessageProducerFactoryService">
  17. <attribute name="JMSSessionFactoryServiceName">#SessionFactory</attribute>
  18. <attribute name="DestinationFinderServiceName">#JndiFinder</attribute>
  19. <attribute name="DestinationName">queue/SampleQueue</attribute>
  20. <attribute name="SessionCreate">true</attribute>
  21. <depends>SessionFactory</depends>
  22. <depends>JndiFinder</depends>
  23. </service>
  24. <!-- Sessionを取得するJMSSessionFactoryサービス -->
  25. <service name="SessionFactory"
  26. code="jp.ossc.nimbus.service.jms.JMSSessionFactoryService">
  27. <attribute name="JMSConnectionFactoryServiceName">#ConnectionFactory</attribute>
  28. <depends>ConnectionFactory</depends>
  29. </service>
  30. <!-- Connectionを取得するJMSConnectionFactoryサービス -->
  31. <service name="ConnectionFactory"
  32. code="jp.ossc.nimbus.service.jms.JMSConnectionFactoryService">
  33. <attribute name="JndiFinderServiceName">#JndiFinder</attribute>
  34. <attribute name="ConnectionFactoryName">java:/XAConnectionFactory</attribute>
  35. <depends>
  36. <!-- JNDIからlookupするJndiFinderサービス -->
  37. <service name="JndiFinder"
  38. code="jp.ossc.nimbus.service.jndi.CachedJndiFinderService"/>
  39. </depends>
  40. </service>
  41. </manager>
  42. </server>

逆にJMS1.0の場合は、QueueとTopicのAPIが統合されていないため、宛先の種類に依存して、サービスを選択する必要がある。
以下に、それぞれの宛先の種類毎のMessageWriter実装サービスを示す。

宛先の種類実装サービス実装概要
Queuejp.ossc.nimbus.service.writer.jms.QueueWriterServiceJMS Queueへ出力する
Topicjp.ossc.nimbus.service.writer.jms.TopicWriterServiceJMS Topicへ出力する

以下にJMS1.0のQueueにMessageを送信するサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- JMSのQueueにメッセージを送信するMessageWriterサービス -->
  8. <service name="Writer"
  9. code="jp.ossc.nimbus.service.writer.jms.QueueWriterService">
  10. <!-- JMSMessageProducerFactoryサービスのサービス名を指定する。 -->
  11. <attribute name="JMSMessageProducerFactoryServiceName">#MessageProducerFactory</attribute>
  12. <depends>MessageProducerFactory</depends>
  13. </service>
  14. <!-- MessageProducerを取得するJMSMessageProducerFactoryサービス -->
  15. <service name="MessageProducerFactory"
  16. code="jp.ossc.nimbus.service.jms.JMSQueueSenderFactoryService">
  17. <attribute name="JMSSessionFactoryServiceName">#SessionFactory</attribute>
  18. <attribute name="DestinationFinderServiceName">#JndiFinder</attribute>
  19. <attribute name="DestinationName">queue/SampleQueue</attribute>
  20. <attribute name="SessionCreate">true</attribute>
  21. <depends>SessionFactory</depends>
  22. <depends>JndiFinder</depends>
  23. </service>
  24. <!-- QueueSessionを取得するJMSSessionFactoryサービス -->
  25. <service name="SessionFactory"
  26. code="jp.ossc.nimbus.service.jms.JMSQueueSessionFactoryService">
  27. <attribute name="JMSConnectionFactoryServiceName">#ConnectionFactory</attribute>
  28. <depends>ConnectionFactory</depends>
  29. </service>
  30. <!-- QueueConnectionを取得するJMSConnectionFactoryサービス -->
  31. <service name="ConnectionFactory"
  32. code="jp.ossc.nimbus.service.jms.JMSQueueConnectionFactoryService">
  33. <attribute name="JndiFinderServiceName">#JndiFinder</attribute>
  34. <attribute name="ConnectionFactoryName">java:/XAConnectionFactory</attribute>
  35. <depends>
  36. <!-- JNDIからlookupするJndiFinderサービス -->
  37. <service name="JndiFinder"
  38. code="jp.ossc.nimbus.service.jndi.CachedJndiFinderService"/>
  39. </depends>
  40. </service>
  41. </manager>
  42. </server>


出力/MessageWriter