2011-08-23 4 views
1

commonj.work.WorkManager를 사용하여 몇 개의 쿼리를 병렬로 처리하고 있습니다. 인터페이스를 구현하는 일련의 DAO 클래스가 있고 run 메서드에서 메서드를 실행하는 Work 구현이 있습니다. 이 설정을 사용하면 작업 API에서 기대했던대로 데이터를 반환 할 수 있습니다.Websphere WorkManager

지금은 오류 상황을 처리하려고 : waitForAll 내가 WorkItem.getResult 여전히 처리하는 쿼리에 대해 null을 반환 것으로 나타났습니다

허용하는 것보다 DAO -queries에서 발생 -Exception이 더 오래 걸립니다. ArrayList에 DAO 객체에 대한 인스턴스가 여전히 있으므로 여기에서 매개 변수와 설정을 가져올 수 있습니다. 그래도 WorkItem에서 가져올 수 있어야하는 것처럼 보입니다. 더 좋은 방법이 있습니까?

또한 예외를 throw 할 때 얻을 수 있었던 유일한 방법은 Work를 구현하는 클래스에이를 저장하고 접근 자 메서드를 제공하는 것입니다. 다시 한 번, 나는 더 좋은 방법이 있어야한다고 느낍니다.

이것은 EJB 3, WS 기능 팩 (Java EE 5 없음)이없는 websphere 6.1에서 실행 중입니다.

답변

1

비록 질문이 1 년이되었지만 누구든지이 질문을 알리는 이벤트에서 업데이트를 제공하려고했습니다. Work를 구현하는 클래스에는 예외를 저장할 멤버 특성이 있습니다. 나는 이것이 문제가 될 것이라고 생각하고 있었지만 실제로는 꽤 잘 풀렸다. 스레드 호출에서 던져진 예외는 실행중인 다른 스레드에 영향을주지 않아야합니다. 모든 작업이 완료되면 예외를 평가하고 문제에 따라 조치를 취합니다.