2017-01-12 8 views
-3

두 클라이언트가 원격 객체의 RMI 동시 호출에 대한 테스트 케이스를 어떻게 시뮬레이트합니까? 동일한 메소드를 통해 동일한 Remote 객체가 메서드가 동기화되지 않았다고 간주하여 두 클라이언트에 의해 호출됩니다. 데이터 불일치가 발생한다는 사실을 알고 있습니다. 이 테스트 케이스를 실제로 어떻게 실행할 수 있습니까?두 클라이언트가 원격 객체의 RMI 동시 호출에 대한 테스트 케이스를 시뮬레이트하는 방법

+0

데이터 불일치가 발생하면 원격 객체에 심각한 문제가 있습니다. – EJP

+0

2 개의 클라이언트가 같은 리모트 오브젝트를 가지고, 동시에이 리모트 오브젝트로부터 같은 메소드를 호출하는 경우. 스켈레톤은 동일한 객체 위에 두 개의 스레드를 생성합니다. 이제 두 스레드가 동일한 메소드에 동시에 액세스합니다. 업데이트되는 데이터 구조가 있으면 내 의견으로는 데이터 불일치가 발생합니다. –

+0

* 원격 객체에 심각한 오류가있는 경우에만 * 스레드 세이프가되도록 동기화해야합니다. NB RMI 스켈레톤은 18 년 동안 사용되지 않았다. – EJP

답변

0

이 작업은 ConcurrentJunitRunner API를 사용하여 수행 할 수 있으며 두 개의 테스트 케이스를 동일한 호출로 수행 할 수 있습니다. ConcurrentSuite API도 있으며 테스트 클래스 집합을 동시에 실행할 수 있습니다.

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

이 답변은 (동시 테스트 케이스) 언급 한 예제를 다루는 데 도움이 될 수 있습니다 특정 시나리오/케이스에 질문 다시 태그를 추가하십시오 - n 시나리오와 이론적 용어가 너무 일반적입니다 (n -> ∞) –

+0

@SrikanthThanks! 두 클라이언트가 원격 객체의 RMI 동시 실행을 테스트하려고합니다. 나는 그것을 위해 모범을 보려고 노력할 것이다. Java 프로그래밍에 익숙하지 않습니다. 하지만 API를 실행하는 방법을 이해하지 못했습니다. 먼저 예제를 얻는 것이 더 좋을 것입니다. –

+0

@ ManinderSingh, 위와 함께 할 수 있습니다. ) 1. 이론 단위 인 대신 동시 단위 테스트 케이스 시나리오에 질문을 다시 표시하십시오. 2. 도움이 되었다면 답을 표시하십시오. –