nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.publish.ClusterConnectionFactoryServiceは、ClusterServiceを使ってClientConnectionをクラスタ化するClientConnectionFactory実装サービスです。
このサービスは、ClientConnectionFactory実装サービスを使用して、ClientConnectionを取得し、ClusterServiceを使ってクラスタ間でClientConnectionを共有し、それらをまとめてラップしたClientConnectionを提供するサービスです。そのため、このサービスとは別に、実体となるClientConnectionFactory実装サービスが必要となります。
このサービスは、送信側サーバに定義します。
受信側のアプリケーションは、このサービスが定義されたサーバと異なるリモートサーバ上で稼働するため、このサービスを直接取得する事はできません。このサービスは、JNDIサーバ(RMIサーバも可)にClientConnectionFactoryのリモートオブジェクトを登録するので、受信側のアプリケーションは、JNDIサーバからClientConnectionFactoryをlookupして、使用します。
クラスタのモードとして、設定で以下の3つのモードが選択できます。
このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。
下位サービスインタフェース | 用途 |
jp.ossc.nimbus.service.publish.ClientConnectionFactory | 物理的な通信を司るClientConnectionFactoryとして使用する。 |
jp.ossc.nimbus.service.repository.Repository | JNDIサーバにClientConnectionFactoryのリモートオブジェクトをバインドするために使用する。 |
jp.ossc.nimbus.service.keepalive.ClusterService | ClientConnectionをクラスタ間で共有するために使用する。 |
以下に簡単なサービス定義を示します。
- <?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>
- <!-- クラスタコネクションファクトリサービス -->
- <service name="ClusterConnectionFactory"
- code="jp.ossc.nimbus.service.publish.ClusterConnectionFactoryService">
- <!-- クライアントコネクションファクトリを登録するRMIサーバリポジトリサービスを設定する -->
- <attribute name="JndiRepositoryServiceName">#LocalRMIRepository</attribute>
- <!-- クラスタを組むクライアントコネクションファクトリサービスを設定する -->
- <attribute name="ClientConnectionFactoryServiceName">#ConnectionFactory</attribute>
- <!-- クラスタサービスを設定する -->
- <attribute name="ClusterServiceName">#Cluster</attribute>
- <depends>LocalRMIRepository</depends>
- <depends>ConnectionFactory</depends>
- <depends>Cluster</depends>
- </service>
- <!-- TCPコネクションファクトリサービス -->
- <service name="ConnectionFactory"
- code="jp.ossc.nimbus.service.publish.tcp.ConnectionFactoryService"/>
- <!-- RMIサーバに登録するリポジトリサービス -->
- <service name="LocalRMIRepository"
- code="jp.ossc.nimbus.service.repository.RMIRepositoryService">
- <attribute name="CreateRegistry">true</attribute>
- <attribute name="Port">1099</attribute>
- </service>
- <!-- クラスタサービス -->
- <service name="Cluster"
- code="jp.ossc.nimbus.service.keepalive.ClusterService">
- <attribute name="MulticastGroupAddress">239.0.0.10</attribute>
- <attribute name="JoinOnStart">false</attribute>
- </service>
- </manager>
- </server>