Java 클래스를 아키텍트 요청에 따라 실행중인 Oracle 인스턴스로 컴파일 할 수 없으므로 대안을 찾고 있습니다. 요구 사항은 네트워크의 응용 프로그램 서버에있는 Java 라이브러리를 활용하는 것입니다. PL/SQL에서 다른 머신에있는 Java 메소드를 호출 할 수 있습니까? 나는 this article이 오라클의 외부 절차에 대해 이야기하고 있음을 발견했다. 한편으로는 수천 또는 수백만 건의 호출을 일괄 처리하는 데 사용할 수있을 정도로 성능이 빠르지 않아야합니다.오라클이 다른 머신에서 Java 메소드를 호출합니다.
0
A
답변
1
당신이 할 수있는 최선의 방법은 각 프로세스 또는 메시지 일괄 처리를 얻기 위해 Java 프로세스가 폴링하는 다른 테이블에 항목을 추가하는 것입니다. 오라클은 실제로 메시지 처리를 위해 설계되지 않았습니다.
어쨌든 나는 이것을 전문가로서 어떻게 해야할지 건축가와상의 할 것입니다. ;)
Oracle 시스템이 작업을 수행 할 수없는 경우 Oracle을 사용하지 않는 솔루션이 필요할 수 있습니다.
1.) 우리는 UTL_HTTP를 사용하여 PL/SQL 호출 HTTP를하여 유사한 문제를 해결 한 후 응용 프로그램 서버는 자바 프로 시저를 호출하자
1
당신은 세 가지 옵션이 있습니다. Oracle Database와 Oracle Reports를 인터페이스하기 위해이 작업을 수행했습니다. PL/SQL은 Java를 호출 한 app-server가 수신 한 HTTP 요청을 시작했습니다. Java는 일반 JDBC를 통해 PL/SQL을 호출 할 수 있습니다.
2.) 해당 Java proc를로드하지 못할 수도 있지만 RMI를 사용하여 호출 할 수있는 다른 Java 저장 프로 시저를 만들 수 있습니다.
3) AQ가 또 다른 방법입니다. 기본적으로 AQ를 사용하여 메시지를 대기열에 넣고 App Server에서 JMS를 사용하여 대기열에서 빼낸 다음 사용할 수 있습니다.
옵션 3이 가장 빠르지 만 옵션 1을 시도했지만이 지연 시간은 사용자가 원하지 않는만큼 빠릅니다. 또한 여러 요청을 병렬로 실행하여 일부 병렬 처리를 수행하는 방법을 제공합니다.
관련 문제
- 1. JSF가 java.net.URLEncoder.encode() 메소드를 호출합니다.
- 2. JSNI는 Long 매개 변수가있는 Java 메소드를 호출합니다.
- 3. 자바 스크립트에서 aspx.cs 메소드를 호출합니다.
- 4. setEnabled for segmentedControl은 iOS 4의 다른 메소드를 호출합니다.
- 5. 관련된 블록 내에서 Ruby 메소드를 재귀 적으로 호출합니다. 다른 방법이라도?
- 6. EJB는 두 콩 사이의 메소드를 호출합니다.
- 7. Matlab OOP는 일시적인 속성을 저장하는 메소드를 호출합니다.
- 8. 오라클이 삽입
- 9. 위젯의 onUpdate 메소드를 앱의 기본 활동에서 호출합니다.
- 10. xcode는 자기 자신 만의 메소드를 호출합니다
- 11. Python : 공개 메소드가 '형제'비공개 메소드를 호출합니다.
- 12. jquery 내부에 정의 된 javascript 메소드를 호출합니다.
- 13. 은 .NET에서 Matlab 객체 (디렉토리) 메소드를 호출합니다.
- 14. java가 명시 적으로 super 메소드를 호출합니다.
- 15. 다른 클래스의 메소드를 반환하는 Java JOptionPane
- 16. Java : 개인적으로 'Runnable'클래스에서 'run'을 호출합니다.
- 17. 다른 스레드에서 호출합니다.
- 18. 오라클이 테이블 권한을 할당합니다
- 19. 오라클이 비밀번호를 변경합니다.
- 20. 오라클이 여러 행을 결합합니다.
- 21. Java 코드의 Windows 머신에서 bash 스크립트를 실행하십시오.
- 22. 오라클이 개 테이블
- 23. 오라클이 내 날짜를 덮어 씁니까?
- 24. perl을 호출합니다. java ProcessBuilder API에서 WWW :: Google :: PageRank를 호출합니다.
- 25. 오라클이 타임 스탬프
- 26. 오라클이 JSP의 문자열에 클로버
- 27. 오라클이 아닌 표현식 그룹
- 28. 파일을 메모리에 미리로드하고 다른 유틸리티에서 인수로 호출합니다.
- 29. java : 클래스에있는 메소드를 실행하십시오.
- 30. 다른 머신에서 jboss 웹 서비스를 호출하십시오.
감사합니다. 우리는 현재이 문제에 대해 논의하고 있으며 귀하와 비슷한 대안이 있지만 폴링 대신 단계별 스케줄링을 사용합니다. 나는 궁금한데 왜 외부 절차 접근법을 배제 했습니까? – Alex
@Alex 대부분 지난 번 (10 년 전) 사용했기 때문에 실제로 느려졌습니다. 지금은 더 좋을 것 같습니다. –
지금은 더 좋아 보이지만, 외부 프로 시저로 라이브러리를 사용하는 것이 좋지 않은 정도로 통신 속도가 빠를 필요가있는 문제가 여전히 있습니다. –