2017-11-27 3 views
0

私は、いくつかのSQL SELECTステートメントをteiid仮想プロシージャ内で実行しようとしています。 teiidは仮想プロシージャのトランザクションをサポートしていますか?そうであれば、接続プールからの同じデータベース接続が、その仮想プロシージャ内のすべての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またはクライアントからローカル、リクエストスコープのトランザクション、あるいはブロック・レベルであってもよい)WildFly/EAPトランザクションマネージャは、トランザクションを調整するために頼っている - そう一般に、XAまたはトランザクションソースが必要です。

+0

返信いただきありがとうございます – Sanjewa

関連する問題