2011-04-27 3 views
0

나는 무작위로 충돌하여 (따라서 전체 JVM을 중단시키는) 네이티브 라이브러리에 의존하는 Java 프로그램을 가지고 있습니다. 이 라이브러리는 I/O에 관한 내용이므로 두 번째 JVM을 사용하면 나머지 프로그램과 쉽게 분리 할 수 ​​있습니다. 기본 프로그램이 계속 실행되지만 충돌 후 기본 라이브러리를 다시 시작할 수 있도록 프로그램을 두 개로 분할하려고합니다. 질문 :이 2 개의 JVM을 통신 할 수있는 가장 좋은 방법은 무엇입니까? 그 중 하나가 충돌하고 다시 시작되지만 다른 JVM에는 영향을 미치지 않습니다 (충돌 및 재시작으로 인해 I/O의 일부 시간 초과가 발생 함). RMI 충돌 방지 기능이 있습니까? 소켓을 사용해야합니까? 메모리 맵 파일?Crash-resistant Java IPC

+0

크래쉬 코드를 고칠 수 있습니까? –

+0

당신은 JMX를 언급하지 않았다 – Yaneeve

+0

@ Jarrod 짧은 대답 : 아니오. – michelemarcon

답변

0

프로세스간에 영구 JMS 대기열을 사용합니다. 이것은 가장 저항력이없는 충돌 일 것입니다. (라이브러리 고정이 가장 좋습니다.)

+1

충돌하는 네이티브 라이브러리를 수정하는 대신 순수한 Java로 해당 라이브러리를 버리고 다시 작성해야합니다. –

+0

@Stephen 유감스럽게도 이것은 선택 사항이 아닙니다. – michelemarcon