2011-12-14 19 views
1

RMIクライアント - サーバーアプリケーションがあるとします。クライアントはサーバーに接続し、ある時点でサーバーはタスクを開始します。タスク中クライアントはいくつかの作業を行っていますが、他のいくつかの瞬間には、クライアントはこれを終了させずにこの作業を中断する必要があります。クライアントはスレッドとして実装されており、最も簡単な解決策はthread.interrupt()を呼び出すように見えますが、これはRMIでは機能しません。この問題を解決するための方法や回避策はありますか?前もって感謝します。Java RMI:クライアントマシン上で実行中のスレッドを停止する

+0

私はリモートスレッドを制御/管理できる解決策は考えられません。最良の方法は、クライアントに「割り込み」メッセージを聞かせることです。 – home

答えて

0

クライアントがサーバーリモートオブジェクトのルックアップを実行し、ローカルインスタンスを作成するときに、クライアントが独自のリモートオブジェクトをサーバーに渡すメソッドを呼び出す双方向リモート処理スキームを実装できます。次に、サーバーはタスクを終了すると、クライアントから受信したリモートオブジェクト内のメソッドを呼び出して、クライアントに通知することができます。

+0

これはおそらく最も簡単な解決策ですが、残念ながらうまくいきません。私はそれ自体が中断する必要があるクライアントでfinish()メソッドを呼び出していますが、それは起こりません。 – Egor

関連する問題