我试图在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
答案 0 :(得分:0)
teiid是否具有虚拟程序的事务支持。
是的,但它在很大程度上取决于您的数据源。
如果是这样,它保证来自连接池的相同数据库连接用于执行该虚拟过程中的所有SELECT语句。
是的,当一个事务启动时(可以是来自客户端的XA或本地事务,请求作用域事务,甚至是块级别),WildFly / EAP事务管理器依赖于协调事务 - 所以通常你&# 39;需要XA或交易来源。