ClientConnectionFactory実装サービス jp.ossc.nimbus.service.publish.ClusterConnectionFactoryService

jp.ossc.nimbus.service.publish.ClusterConnectionFactoryServiceは、ClusterServiceを使ってClientConnectionをクラスタ化するClientConnectionFactory実装サービスです。
このサービスは、ClientConnectionFactory実装サービスを使用して、ClientConnectionを取得し、ClusterServiceを使ってクラスタ間でClientConnectionを共有し、それらをまとめてラップしたClientConnectionを提供するサービスです。そのため、このサービスとは別に、実体となるClientConnectionFactory実装サービスが必要となります。

このサービスは、送信側サーバに定義します。
受信側のアプリケーションは、このサービスが定義されたサーバと異なるリモートサーバ上で稼働するため、このサービスを直接取得する事はできません。このサービスは、JNDIサーバ(RMIサーバも可)にClientConnectionFactoryのリモートオブジェクトを登録するので、受信側のアプリケーションは、JNDIサーバからClientConnectionFactoryをlookupして、使用します。

クラスタのモードとして、設定で以下の3つのモードが選択できます。

  • First Availableにどれか1つに接続するActive/Standbyモード
  • 分散してどれか1つに接続する分散Active/Activeモード
  • 全てと接続する多重Active/Activeモード

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

下位サービスインタフェース用途
jp.ossc.nimbus.service.publish.ClientConnectionFactory物理的な通信を司るClientConnectionFactoryとして使用する。
jp.ossc.nimbus.service.repository.RepositoryJNDIサーバにClientConnectionFactoryのリモートオブジェクトをバインドするために使用する。
jp.ossc.nimbus.service.keepalive.ClusterServiceClientConnectionをクラスタ間で共有するために使用する。

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

  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. <!-- クラスタコネクションファクトリサービス -->
  8. <service name="ClusterConnectionFactory"
  9. code="jp.ossc.nimbus.service.publish.ClusterConnectionFactoryService">
  10. <!-- クライアントコネクションファクトリを登録するRMIサーバリポジトリサービスを設定する -->
  11. <attribute name="JndiRepositoryServiceName">#LocalRMIRepository</attribute>
  12. <!-- クラスタを組むクライアントコネクションファクトリサービスを設定する -->
  13. <attribute name="ClientConnectionFactoryServiceName">#ConnectionFactory</attribute>
  14. <!-- クラスタサービスを設定する -->
  15. <attribute name="ClusterServiceName">#Cluster</attribute>
  16. <depends>LocalRMIRepository</depends>
  17. <depends>ConnectionFactory</depends>
  18. <depends>Cluster</depends>
  19. </service>
  20. <!-- TCPコネクションファクトリサービス -->
  21. <service name="ConnectionFactory"
  22. code="jp.ossc.nimbus.service.publish.tcp.ConnectionFactoryService"/>
  23. <!-- RMIサーバに登録するリポジトリサービス -->
  24. <service name="LocalRMIRepository"
  25. code="jp.ossc.nimbus.service.repository.RMIRepositoryService">
  26. <attribute name="CreateRegistry">true</attribute>
  27. <attribute name="Port">1099</attribute>
  28. </service>
  29. <!-- クラスタサービス -->
  30. <service name="Cluster"
  31. code="jp.ossc.nimbus.service.keepalive.ClusterService">
  32. <attribute name="MulticastGroupAddress">239.0.0.10</attribute>
  33. <attribute name="JoinOnStart">false</attribute>
  34. </service>
  35. </manager>
  36. </server>


メッセージ配信/ClientConnectionFactory