Coherence for .NETでは、クライアントが接続されているクラスタ側JVM内でのIInvocable
オブジェクトと呼ばれる単一パス・エージェントの実行を可能にするリモート起動サービスを提供しています。エージェントは、IInvocable
インタフェースを実装する単純な実行可能アプリケーション・クラスです。エージェントは任意のアクションを実行でき、作業を行うために必要な任意のクラスタ側サービス(キャッシュ・サービスやグリッド・サービスなど)を使用できます。エージェントの操作はステートフルにすることもできます。つまり、その状態がシリアライズされ、エージェントが実行されるグリッド・ノードに転送されます。
この章は次の各項で構成されています。
リモート起動サービスは、キャッシュ構成ディスクリプタの<remote-invocation-scheme>
要素を使用して構成します。次に例を示します。
例21-1 リモート起動サービスの構成
... <remote-invocation-scheme> <scheme-name>example-invocation</scheme-name> <service-name>ExtendTcpInvocationService</service-name> <initiator-config> <tcp-initiator> <remote-addresses> <socket-address> <address>localhost</address> <port>9099</port> </socket-address> </remote-addresses> </tcp-initiator> <outgoing-message-handler> <request-timeout>30s</request-timeout> </outgoing-message-handler> </initiator-config> </remote-invocation-scheme> ...
CacheFactory
クラスを使用することによって、構成済リモート起動サービスへの参照を名前によって取得できます。
例21-2 リモート起動サービスへの参照の取得
IInvocationService service = (IInvocationService) CacheFactory.GetService("ExtendTcpInvocationService");
クライアントが接続されているグリッド・ノードでエージェントを実行するために必要なコードは、次の1行のみです。
単一の実行結果には、CacheFactory.ConfigurableCacheFactory.LocalMember
をコールして取得されるローカルのMember
がキー設定されます。
注意: キャッシュされた値オブジェクト同様、すべてのIInvocable 実装クラスは、.NETアプリケーションのPOFコンテキストおよびクライアントが接続されているクラスタ側ノードのPOFコンテキストに正しく登録する必要があります。したがって、IInvocable タスクのJava実装(com.tangosol.net.Invocable 実装)は、クラスタ側ノードで作成、コンパイルおよびデプロイする必要があります。タスクを実際に実行するのは、.NETのIInvocable 実装ではなく、JavaのInvocable 実装であることに注意してください。
詳細は、第17章「.NETクライアントの構成と使用」を参照してください。 |