2017-11-27 12 views
0

teiid 가상 프로 시저 내에서 SQL SELECT 문을 거의 실행하지 않으려 고합니다. teid는 가상 프로 시저에 대한 트랜잭션 지원을 가지고 있습니까? 그렇다면 연결 풀에서 동일한 데이터베이스 연결을 사용하여 해당 가상 프로 시저 내의 모든 SELECT 문을 실행하도록 보장합니다. 내 코드는 아래처럼 보일 것이다.가상 프로 시저의 Teiid 트랜잭션 지원

CREATE VIRTUAL PROCEDURE GetFlightRecordsByID(IN p1 integer) RETURNS (xml_out xml) OPTIONS (UPDATECOUNT 0, "REST:METHOD" 'GET', "REST:URI" 'GetFlightRecordsByID') 
      AS 
      /*+ cache(pref_mem ttl:14400000) */ 
      BEGIN 
       SELECT XMLELEMENT("", XMLAGG(XMLELEMENT("", XMLFOREST(.....)))) as xml_out FROM (...) A; 
SELECT XMLELEMENT("", XMLAGG(XMLELEMENT("", XMLFOREST(.....)))) as xml_out FROM (...) B;   
SELECT XMLELEMENT("", XMLAGG(XMLELEMENT("", XMLFOREST(.....)))) as xml_out FROM (...) C;      
      END 

답변

0

는 teiid 가상 절차에 대한 트랜잭션 지원을 가지고있다.

예, 대부분 데이터 소스에 따라 다릅니다.

그렇다면 연결 풀에서 동일한 데이터베이스 연결을 사용하여 해당 가상 프로 시저 내의 모든 SELECT 문을 실행해야합니다. 트랜잭션이 시작될 때

은 예 (XA 또는 클라이언트에서 로컬 요청 범위 거래, 또는 블록 수준이 될 수 있음) 제이보스/EAP 트랜잭션 관리자는 트랜잭션을 조정에 의존한다 - 그래서 일반적으로 XA 또는 트랜잭션 소스가 필요합니다.

+0

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