2013-02-20 7 views
1

백엔드에서 Oracle 11g가있는 Java 웹 애플리케이션에서 Oracle 스토어드 프로 시저가 작업을 완료하면 프로그램 실행을 시작하고 싶습니다 (서블릿 일 수 있음). .오라클 트리거에서 자바 웹 애플리케이션에서 프로세스 시작하기

내 생각은 프로 시저가 작업을 완료하고 테이블에 설정된 트리거가이 Java 프로세스를 시작할 때 레코드를 데이터베이스 테이블에 삽입하도록하는 것입니다.

어떻게하면됩니까? 이것을 달성하기 위해 Quartz Scheduler가 사용될 수 있다면, 달성 방법에 대한 지침을 제공해주십시오. 그렇지 않은 경우 어떤 옵션이 있습니까?

+0

그냥 빛을 발산, 오라클 저장 프로 시저가 처음부터 자바 웹 응용 프로그램에서 시작입니까? – mrod

+0

@mrod No. Oracle 저장 프로 시저가 다른 시스템에서 시작되었습니다. – Shyam

답변

1

서블릿에 POST 요청을하기 위해 과거에 UTL_HTTP를 사용했습니다. 이것은 간단하고 잠재적으로 데이터베이스에 응답 메시지를 쉽게 기록/활용할 수 있다는 장점이 있습니다. http://www.oracle-base.com/articles/11g/fine-grained-access-to-network-services-11gr1.php

또한 데이터베이스에 서블릿에서 연결을 시작할 수 있고, DBMS_ALERT이 트리거 신호를 사용합니다 : 이것은 ACL 규칙을 추가해야합니다 http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_alert.htm을이 그것을 빠른 있다는 잠재적 인 이점이 있고,하지 않습니다 ACL 규칙이 필요합니다.

마지막으로 트리거를 사용하여 어딘가에 행을 삽입하거나 상태 열을 업데이트 한 다음 일정한 간격으로 서블릿을 폴링하여 작업을 수행할지 여부를 확인할 수 있습니다. 이것은 모든 솔루션 중에서 가장 단순하지만 구현하기에는 우아하거나 재미 있지 않습니다.

1

오라클의 일부로 사용 가능한 UTL_HTTP를 사용하여 Oracle 저장 프로 시저 내에서 서블릿 URL로 POST 호출을 보낼 수 있습니다. 추가 정보 찾기 here

또는 서블릿을 제거하고 저장 프로 시저로 Oracle에 가져올 수있는 Java 저장 프로 시저를 작성하여 호출 할 수 있습니다. 추가 정보 찾기 here

관련 문제