Queue実装サービス jp.ossc.nimbus.service.queue.SharedQueueService

jp.ossc.nimbus.service.queue.SharedQueueServiceは、複数のJVMで共有できるFIFOのキューを実現するQueue実装サービスです。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.cache.CacheMapQueueに投入されたエントリをキャッシュする。
jp.ossc.nimbus.service.publish.RequestConnectionFactoryService他JVM上の共有キューと通信する。
jp.ossc.nimbus.service.keepalive.ClusterService他JVM上の共有キューの死活監視を行う。
jp.ossc.nimbus.service.context.ContextStoreコンテキスト情報を永続化する。
jp.ossc.nimbus.service.queue.Queueインタプリタ実行の同時実行数を制御するための受付キュー
jp.ossc.nimbus.service.interpreter.Interpreterインタプリタ実行で使用するインタプリタ
jp.ossc.nimbus.service.context.SharedContextUpdateListenerコンテキスト情報の変更通知を通知する

以下に簡単なサービス定義を示します。

  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. <!-- Queueサービス -->
  8. <service name="Queue"
  9. code="jp.ossc.nimbus.service.queue.SharedQueueService">
  10. <!-- リクエストコネクションファクトリサービスのサービス名を設定する -->
  11. <attribute name="RequestConnectionFactoryServiceName">#RequestConnectionFactory</attribute>
  12. <!-- クラスタサービスのサービス名を設定する -->
  13. <attribute name="ClusterServiceName">#Cluster</attribute>
  14. <depends>RequestConnectionFactory</depends>
  15. <depends>Cluster</depends>
  16. </service>
  17. <!-- リクエストコネクションファクトリサービス -->
  18. <service name="RequestConnectionFactory"
  19. code="jp.ossc.nimbus.service.publish.RequestConnectionFactoryService">
  20. <!-- サーバコネクションファクトリサービスのサービス名を設定する -->
  21. <attribute name="ServerConnectionFactoryServiceName">#ConnectionFactory</attribute>
  22. <!-- メッセージ受信サービスのサービス名を設定する -->
  23. <attribute name="MessageReceiverServiceName">#MessageReceiver</attribute>
  24. <depends>#ConnectionFactory</depends>
  25. <depends>
  26. <!-- コンテキスト情報の変更を受信するMessageReceiverサービス -->
  27. <service name="MessageReceiver"
  28. code="jp.ossc.nimbus.service.publish.MessageReceiverService">
  29. <!-- コンテキスト情報の変更を受信するClientConnectionFactoryサービスのサービス名を設定する -->
  30. <attribute name="ClientConnectionFactoryServiceName">#ClientConnectionFactory</attribute>
  31. <!-- サービス開始時に受信を開始するように設定する -->
  32. <attribute name="StartReceiveOnStart">true</attribute>
  33. <attribute name="MessageQueueDistributedSize">5</attribute>
  34. <depends>ClientConnectionFactory</depends>
  35. </service>
  36. </depends>
  37. </service>
  38. <!-- ClientConnectionFactoryをクラスタ化するClientConnectionFactoryサービス -->
  39. <service name="ClientConnectionFactory"
  40. code="jp.ossc.nimbus.service.publish.ClusterConnectionFactoryService">
  41. <!-- ClientConnectionFactoryのリモートオブジェクトを登録するRepositoryサービスのサービス名を設定する -->
  42. <attribute name="JndiRepositoryServiceName">#LocalRMIRepository</attribute>
  43. <!-- ClientConnectionFactoryのリモートオブジェクトを共有するClusterサービスのサービス名を設定する -->
  44. <attribute name="ClusterServiceName">#Cluster</attribute>
  45. <!-- コンテキスト情報の変更を受信するClientConnectionFactoryサービスのサービス名を設定する -->
  46. <attribute name="ClientConnectionFactoryServiceName">#ConnectionFactory</attribute>
  47. <!-- 全ての配信者から受信するように設定する -->
  48. <attribute name="Multiple">true</attribute>
  49. <!-- 配信者が存在しなくても接続できるように設定する -->
  50. <attribute name="FlexibleConnect">true</attribute>
  51. <depends>
  52. <!-- RMIサーバにリモートオブジェクトを登録するRepositoryサービス -->
  53. <service name="LocalRMIRepository"
  54. code="jp.ossc.nimbus.service.repository.RMIRepositoryService">
  55. <attribute name="CreateRegistry">true</attribute>
  56. <attribute name="Port">10000</attribute>
  57. </service>
  58. </depends>
  59. <depends>
  60. <!-- Clusterサービス -->
  61. <service name="Cluster"
  62. code="jp.ossc.nimbus.service.distribute.ClusterService">
  63. <attribute name="MulticastGroupAddress">224.1.1.1</attribute>
  64. <attribute name="HeartBeatRetryCount">2</attribute>
  65. <attribute name="JoinOnStart">false</attribute>
  66. </service>
  67. </depends>
  68. </service>
  69. <!-- コンテキスト情報の変更を送受信するServerConnectionFactory及びClientConnectionFactoryサービス -->
  70. <service name="ConnectionFactory"
  71. code="jp.ossc.nimbus.service.publish.tcp.ConnectionFactoryService">
  72. <attribute name="Acknowledge">true</attribute>
  73. </service>
  74. </manager>
  75. </server>


キュー/Queue