虚拟过程中的 Teiid 事务支持

Teiid Transaction support in Virtual Procedures

我正在尝试在 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 

Does teiid have transaction support for virtual procedures.

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

If so does it guarantee that the same database connection from the connection pool is used to execute all SELECT statements within that virtual procedure.

是的,当事务开始时(可以是 XA 或来自客户端的本地事务、请求范围内的事务,甚至是块级别)依赖 WildFly/EAP 事务管理器来协调事务 -所以通常您需要 XA 或交易来源。