0
マルチトランザクションでラップされたときに常にNullPayloadを返すフローがあります。マルチトランザクションタグを削除すると、期待した結果が得られます。何故ですか?ここにコードスニペットがありますトランザクションでラップされた場合のみ、データベースクエリのNullPayload
<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>