2014-06-18 1 views
2

J2EE 프로그램에서 호출 할 PL/SQL 프로 시저 (Oracle)를 작성 중입니다. 이 J2EE 프로그램은 분산 트랜잭션을 시작했으며 내 PL/SQL 프로시 저는이 트랜잭션의 일부입니다. 내 프로 시저 내에서 dblink를 사용할 수 있는지 궁금합니다. dblink를 사용하면 Oracle이 관리하는 분산 트랜잭션을 의미하지만 J2EE 컨테이너가 관리하는 분산 트랜잭션이 이미 있으므로 문제가 발생할 수 있습니다. 금지되어 있습니까? 또는 일부 제한을 허용합니까?은 J2EE 분산 트랜잭션에서 허용되지 않는 dblink입니까?

답장을 보내 주셔서 감사합니다.

+2

어떤 결과가 발생했는지 확인하려고 했습니까? –

+0

몇 년 전에 weblogic 8.1을 사용하고 있었고 Java에서 dblink로 PL/SQL 코드를 다시 작성했을 때 약간의 오류가 발생했습니다. 나는 그것이 금지되었다고 생각하지만, 아마도 그것은 약간의 제한을두고 허용된다. 오늘은 Tomee와 PL/SQL 패키지를 사용합니다. 오류는 없지만 프로그램이 제대로 작동하지 않습니다. 나는 이것이 프로그램 버그, tomee 버그 또는이 dblink 때문인지 아직 모르겠습니다. – jmb

+0

DB 링크가 실제로 JDBC 문에 포함 되었다면 버그를 믿을 수 있습니다. 그러나 호출하는 프로 시저 내에서만이라면 SQL * Plus 또는 다른 클라이언트에서 JDBC를 통해 호출 할 때 다른 동작을 수행하는 방법을 볼 수 없습니다. 그러나 분산 트랜잭션은 이것을 복잡하게 만들 수 있습니다. DB 링크를 통해 DML을 수행하고 있습니까, 아니면 쿼리 중입니까? 분산 트랜잭션의 다른 부분에 의해 수정 된 데이터를 쿼리하고 있습니까? –

답변

1

XA Distributed Transactions에 대해 언급하는 경우 이러한 구성이 지원되지만 일부 제한이 있습니다 (Oracle DB의 버전에 따라 다름). 자세한 내용을 보려면 this document을 확인하십시오. "XA 및 데이터베이스 링크"섹션에주의하십시오.

+0

답변 해 주셔서 감사합니다. 이 논문은 제가 찾고있는 것입니다. 나는 지금 엄마 읽기 시작. – jmb

관련 문제