0

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

1 回答 1

0

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

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

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

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

于 2017-11-29T15:15:03.027 回答