2017-01-12 1 views
-3

2つのクライアントがリモートオブジェクトのRMI同時呼び出しのテストケースをシミュレートする方法を教えてください。メソッドが同期していないことを考慮して、同じメソッド上の同じRemoteオブジェクトが2つのクライアントによって呼び出されています。私はこれがデータの不一致を引き起こすことに気付いています。このテストケースを実際にどのように実行できますか?2つのクライアントがリモートオブジェクトのRMI同時呼び出しのテストケースをシミュレートする方法

+0

もしデータの不一致が生じると、あなたのリモートオブジェクトに深刻な問題があります。 – EJP

+0

2つのクライアントが同じリモートオブジェクトを持ち、同時にこのリモートオブジェクトから同じメソッドを呼び出す場合。スケルトンは同じオブジェクトに2つのスレッドを作成します。両方のスレッドが同時に同じメソッドにアクセスします。更新されているデータ構造があれば、私の意見ではデータの不一致が生じます。 –

+0

*リモートオブジェクトに深刻な問題がある場合のみ*スレッドセーフな状態になるように同期する必要があります。 NB RMIスケルトンは18年間使用されていません。 – EJP

答えて

0

これは、ConcurrentJunitRunner APIを使用して実行することができ、2つのテストケースで同じ呼び出しを行います。 ConcurrentSuite APIもあり、テストクラスのセットを同時に実行できます。

@RunWith(ConcurrentJunitRunner.class) 
@Concurrent(threads = 2) 
+0

この回答は、あなたが挙げた例(同時テストケース)を扱うのに役立ちます。特定のシナリオ/ケースにあなたの質問を再表示してください - 理論的な用語はnシナリオ - >∞) –

+0

@SrikanthThanks!私は2つのクライアントがリモートオブジェクトのRMI同時実行をテストしたい。私はそれのための例を得ることを試みる。私はJavaプログラミングの初心者です。しかし、私はAPIを実行する方法を理解していませんでした。最初に私は例を得るより良いでしょう –

+0

@ ManinderSingh、上記で可能です。 1.)理論的ではなく、同時ユニットテストケースのシナリオに質問を反映してください。 2)助けがあれば、答えをマークしてください。 –

関連する問題