종료하기 전에 응용 프로그램을 개발하려고합니다. 새 데몬 프로세스를 실행하여 main 메소드를 실행해야합니다. 수업.JDK 6 : 지정된 클래스의 main 메소드를 실행하는 새 Java 프로세스를 실행하는 방법이 있습니까?
주 응용 프로그램이 종료 된 후 데몬 프로세스가 여전히 실행 중이어야합니다.
오라클 DB에서 실행되는 Java 저장 프로 시저이므로 Runtime.exec을 사용할 수 없습니다. 파일 시스템 파일 대신 데이터베이스 구조에 정의되어 있기 때문에 운영 체제 쉘에서 Java 클래스를 찾을 수 없기 때문에 Runtime.exec을 사용할 수 없습니다.
특히 원하는 동작은 원격 데이터베이스 세션 동안 내가
호출 데몬 프로세스를 실행 및 실행 상태에서 데몬 프로세스를 떠나 종료 최초의 자바 방법으로 할 수 있어야한다고해야
및 그 다음, 결과적으로
호 (최종적으로 통신의 끝에 종료) 데몬 프로세스와 통신하는 방법
를 (마지막 통화를 종료하기 때문에, 가입 데몬 프로세스 및 세션 제어를 갖는)이것이 가능합니까?
감사
업데이트
내 정확한 필요 (최고의 성능에 도달) 호스트가에서 파일 전송 서비스가없는 것을 가정하여 데이터베이스에 큰 텍스트 파일을 생성하고로드하는 것입니다 Java JDK6 클라이언트 응용 프로그램은 JDBC-11G oci 드라이버를 사용하여 Oracle 11gR1 DB에 연결합니다.
입력으로 주어진 LOB (대형 데이터베이스 오브젝트)를 파일에 저장하는 프로 시저를 호출하여 작업 솔루션을 이미 개발했지만 그러한 메소드는 피하고 싶지 않은 중간 구조를 너무 많이 사용합니다.
그래서 첫 번째 호출로 DB에 ServerSocket을 만들고 나중에 연결하고 직접적이고 빠른 통신으로 데이터 전송을 설정하는 방법을 생각했습니다.
ServerSocket을 생성하는 Java 프로 시저가 종료되어 실행중인 스레드/프로세스에서 해당 소켓과 클라이언트를 수신하여 ServerSocket이 생성되었는지 확인할 수 없으므로 문제가 발생합니다 나머지 작업을 처리하기 위해 별도의 스레드를 실행하십시오.
희망 하시겠습니까?
멋진 기타 +1;) – OlimilOops
나는 의심 스러웠지만 가능했다.하지만 나는 다른 해결책을 찾고있다. 이벤트 프로그래밍을 사용하는 것으로 평가하지는 않았지만 이렇게하기 위해 조금 더 복잡 할 것입니다. 왜냐하면 이렇게해야합니다. DB에 연결하여 첫 번째 세션을 설정 한 다음 종료하기 전에 QUIT 이벤트를 기다립니다. 다른 스레드에서 DB에 다시 한 번 연결하고 데몬 프로세스와 같은 역할을하는 두 번째 세션을 설정하고 QUIT 이벤트를 생성합니다. 첫 번째 세션이 종료되면 스레드가 나머지 세션과 통신을 수행 할 수 있습니다. 작동한다고 생각하십니까? –
@Oops - 네, Takamine LTD 99입니다. 조금 더 잘할 수 있으면 좋겠어요! – djna