虚拟过程中的Teiid Transaction支持

时间:2017-11-27 09:46:14

标签: teiid redhat-datavirt

我试图在teiid虚拟过程中执行少量SQL SELECT语句。 teiid是否具有虚拟过程的事务支持。如果是这样,它保证来自连接池的相同数据库连接用于执行该虚拟过程中的所有SELECT语句。我的代码看起来很像。

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 

1 个答案:

答案 0 :(得分:0)

  

teiid是否具有虚拟程序的事务支持。

是的,但它在很大程度上取决于您的数据源。

  

如果是这样,它保证来自连接池的相同数据库连接用于执行该虚拟过程中的所有SELECT语句。

是的,当一个事务启动时(可以是来自客户端的XA或本地事务,请求作用域事务,甚至是块级别),WildFly / EAP事务管理器依赖于协调事务 - 所以通常你&# 39;需要XA或交易来源。