プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Coherenceリモート・クライアントの開発
12c (12.1.3)
E56210-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

20 リモート起動の実行(.NET)

この章では、.NETクライアントからCoherenceキャッシュでリモート起動を実行する手順を示します。

この章は次の各項で構成されています。

20.1 リモート起動の実行の概要

Coherence for .NETでは、クライアントが接続されているクラスタ側JVM内でのIInvocableオブジェクトと呼ばれる単一パス・エージェントの実行を可能にするリモート起動サービスを提供しています。エージェントは、IInvocableインタフェースを実装する単純な実行可能アプリケーション・クラスです。エージェントは任意のアクションを実行でき、作業を行うために必要な任意のクラスタ側サービス(キャッシュ・サービスやグリッド・サービスなど)を使用できます。エージェントの操作はステートフルにすることもできます。つまり、その状態がシリアライズされ、エージェントが実行されるグリッド・ノードに転送されます。

20.2 リモート起動サービスの構成と使用

リモート起動サービスは、キャッシュ構成ディスクリプタの<remote-invocation-scheme>要素を使用して構成します。例:

例20-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クラスを使用することによって、構成済リモート起動サービスへの参照を名前によって取得できます。

例20-2 リモート起動サービスへの参照の取得

IInvocationService service = (IInvocationService) CacheFactory.GetService("ExtendTcpInvocationService");

クライアントが接続されているグリッド・ノードでエージェントを実行するために必要なコードは、次の1行のみです。

例20-3 グリッド・ノードでのエージェントの実行

IDictionary result = service.Query(new MyTask(), null);

単一の実行結果には、CacheFactory.ConfigurableCacheFactory.LocalMemberをコールして取得されるローカルのMemberがキー設定されます。


注意:

キャッシュされた値オブジェクト同様、すべてのIInvocable実装クラスは、.NETアプリケーションのPOFコンテキストおよびクライアントが接続されているクラスタ側ノードのPOFコンテキストに正しく登録する必要があります。したがって、IInvocableタスクのJava実装(com.tangosol.net.Invocable実装)は、クラスタ側ノードで作成、コンパイルおよびデプロイする必要があります。タスクを実際に実行するのは、.NETのIInvocable実装ではなく、JavaのInvocable実装であることに注意してください。

詳細は、第16章「.NETクライアントの構成と使用」を参照してください。