首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当包装在事务中时,用于数据库查询的NullPayload

仅当包装在事务中时,用于数据库查询的NullPayload
EN

Stack Overflow用户
提问于 2016-07-16 05:06:26
回答 1查看 36关注 0票数 0

我有一个流,当包装在多事务中时,它总是返回NullPayload。当我删除多事务标记时,我得到了预期的结果。为什么会这样呢?以下是代码片段

代码语言:javascript
复制
<flow name="successful-flow" processingStrategy="synchronous">
    <vm:inbound-endpoint exchange-pattern="request-response" path="order-process.in" doc:name="VM"/>
    <ee:multi-transactional action="ALWAYS_BEGIN" doc:name="Transactional" >
        <foreach collection="#[message.payload]" doc:name="For Each"
        rootMessageVariableName="Original">
            <jms:outbound-endpoint queue="orders.queue"
            connector-ref="jmsConnector" doc:name="JMS - Send to Order Processing Queue">
            <jms:transaction action="JOIN_IF_POSSIBLE"/>
        </jms:outbound-endpoint>
        </foreach>
    <db:insert config-ref="ORDER_DB" doc:name="Save Orders" >
        <db:parameterized-query><![CDATA[insert into orders(PRODUCT_ID,LINE_ITEM_CODE,PRICE,LST_UPDT_TMSP) VALUES('XXT665,'TP',20.99,'09/09/2010')]]></db:parameterized-query>
    </db:insert>
    </ee:multi-transactional>
    <response>
        <db:select config-ref="ORDER_DB" doc:name="Database" transactionalAction="ALWAYS_JOIN">
            <db:parameterized-query><![CDATA[select count(*) from orders]]></db:parameterized-query>
        </db:select>
    </response>
    <catch-exception-strategy doc:name="Order Processing Exception">
        <logger
            message="Error  during  flow - #[message] :: Exception::= #  [exception.summaryMessage]"
            level="ERROR" doc:name="Logger" />
    </catch-exception-strategy>
</flow>
EN

回答 1

Stack Overflow用户

发布于 2016-07-16 05:54:12

我的错,之前的事务将不会完成和提交。select查询的默认transactionalAction是JOIN_IF_POSSIBLE,这意味着我将在插入和提交数据之前读取数据。简单的修复方法如下:

代码语言:javascript
复制
<response>
    <db:select config-ref="ORDER_DB" doc:name="Database" transactionalAction="NOT_SUPPORTED">
        <db:parameterized-query><![CDATA[select count(*) from orders]]></db:parameterized-query>
    </db:select>
</response>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38405017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档