nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.queue.SharedQueueServiceは、複数のJVMで共有できるFIFOのキューを実現するQueue実装サービスです。
このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。
下位サービスインタフェース | 用途 |
jp.ossc.nimbus.service.cache.CacheMap | Queueに投入されたエントリをキャッシュする。 |
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 | コンテキスト情報の変更通知を通知する |
以下に簡単なサービス定義を示します。
- <?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>
- <!-- Queueサービス -->
- <service name="Queue"
- code="jp.ossc.nimbus.service.queue.SharedQueueService">
- <!-- リクエストコネクションファクトリサービスのサービス名を設定する -->
- <attribute name="RequestConnectionFactoryServiceName">#RequestConnectionFactory</attribute>
- <!-- クラスタサービスのサービス名を設定する -->
- <attribute name="ClusterServiceName">#Cluster</attribute>
- <depends>RequestConnectionFactory</depends>
- <depends>Cluster</depends>
- </service>
- <!-- リクエストコネクションファクトリサービス -->
- <service name="RequestConnectionFactory"
- code="jp.ossc.nimbus.service.publish.RequestConnectionFactoryService">
- <!-- サーバコネクションファクトリサービスのサービス名を設定する -->
- <attribute name="ServerConnectionFactoryServiceName">#ConnectionFactory</attribute>
- <!-- メッセージ受信サービスのサービス名を設定する -->
- <attribute name="MessageReceiverServiceName">#MessageReceiver</attribute>
- <depends>#ConnectionFactory</depends>
- <depends>
- <!-- コンテキスト情報の変更を受信するMessageReceiverサービス -->
- <service name="MessageReceiver"
- code="jp.ossc.nimbus.service.publish.MessageReceiverService">
- <!-- コンテキスト情報の変更を受信するClientConnectionFactoryサービスのサービス名を設定する -->
- <attribute name="ClientConnectionFactoryServiceName">#ClientConnectionFactory</attribute>
- <!-- サービス開始時に受信を開始するように設定する -->
- <attribute name="StartReceiveOnStart">true</attribute>
- <attribute name="MessageQueueDistributedSize">5</attribute>
- <depends>ClientConnectionFactory</depends>
- </service>
- </depends>
- </service>
- <!-- ClientConnectionFactoryをクラスタ化するClientConnectionFactoryサービス -->
- <service name="ClientConnectionFactory"
- code="jp.ossc.nimbus.service.publish.ClusterConnectionFactoryService">
- <!-- ClientConnectionFactoryのリモートオブジェクトを登録するRepositoryサービスのサービス名を設定する -->
- <attribute name="JndiRepositoryServiceName">#LocalRMIRepository</attribute>
- <!-- ClientConnectionFactoryのリモートオブジェクトを共有するClusterサービスのサービス名を設定する -->
- <attribute name="ClusterServiceName">#Cluster</attribute>
- <!-- コンテキスト情報の変更を受信するClientConnectionFactoryサービスのサービス名を設定する -->
- <attribute name="ClientConnectionFactoryServiceName">#ConnectionFactory</attribute>
- <!-- 全ての配信者から受信するように設定する -->
- <attribute name="Multiple">true</attribute>
- <!-- 配信者が存在しなくても接続できるように設定する -->
- <attribute name="FlexibleConnect">true</attribute>
- <depends>
- <!-- RMIサーバにリモートオブジェクトを登録するRepositoryサービス -->
- <service name="LocalRMIRepository"
- code="jp.ossc.nimbus.service.repository.RMIRepositoryService">
- <attribute name="CreateRegistry">true</attribute>
- <attribute name="Port">10000</attribute>
- </service>
- </depends>
- <depends>
- <!-- Clusterサービス -->
- <service name="Cluster"
- code="jp.ossc.nimbus.service.distribute.ClusterService">
- <attribute name="MulticastGroupAddress">224.1.1.1</attribute>
- <attribute name="HeartBeatRetryCount">2</attribute>
- <attribute name="JoinOnStart">false</attribute>
- </service>
- </depends>
- </service>
- <!-- コンテキスト情報の変更を送受信するServerConnectionFactory及びClientConnectionFactoryサービス -->
- <service name="ConnectionFactory"
- code="jp.ossc.nimbus.service.publish.tcp.ConnectionFactoryService">
- <attribute name="Acknowledge">true</attribute>
- </service>
- </manager>
- </server>