Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mule 使用Flow ref时,JDBC事务未按预期工作_Mule - Fatal编程技术网

Mule 使用Flow ref时,JDBC事务未按预期工作

Mule 使用Flow ref时,JDBC事务未按预期工作,mule,Mule,在mule flow中,在使用flow-Ref时,am无法运行JDBC事务。如果不使用flow-Ref,则相同的事务作用域可以工作 有什么想法吗 这是我的配置xml <mule xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:jbossts="http://www.mulesoft.org/

在mule flow中,在使用flow-Ref时,am无法运行JDBC事务。如果不使用flow-Ref,则相同的事务作用域可以工作

有什么想法吗

这是我的配置xml

<mule xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:jbossts="http://www.mulesoft.org/schema/mule/jbossts" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:jdbc-ee="http://www.mulesoft.org/schema/mule/ee/jdbc" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/ee/jdbc http://www.mulesoft.org/schema/mule/ee/jdbc/current/mule-jdbc-ee.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/jbossts http://www.mulesoft.org/schema/mule/jbossts/current/mule-jbossts.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
    <spring:beans>
        <spring:bean id="JdbcBean1" name="JdbcBean1" class="oracle.jdbc.xa.client.OracleXADataSource">
            <spring:property name="user" value="${sample.db.user}"/>
            <spring:property name="URL" value="jdbc:oracle:thin:@//${sample.db.host.name}:1521/${sample.db.instance.name}"/>
            <spring:property name="password" value="${sample.db.password}"/>
        </spring:bean>
    </spring:beans>
    <jbossts:transaction-manager doc:name="Transaction Manager"/>
    <jdbc-ee:connector name="Database" dataSource-ref="JdbcBean1" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database"/>
    <flow name="jdbctransactionFlow1" doc:name="jdbctransactionFlow1">
        <file:inbound-endpoint path="src/test/resources/input" moveToDirectory="src/test/resources/output" responseTimeout="10000" doc:name="File"/>
        <file:file-to-string-transformer doc:name="File to String"/>
        <flow-ref name="jdbctransactionFlow2" doc:name="Flow Reference"/>
        <file:outbound-endpoint path="src/test/resources/outputResult" outputPattern="output.xml" responseTimeout="10000" doc:name="File"/>
    </flow>
    <flow name="jdbctransactionFlow2" doc:name="jdbctransactionFlow2">
        <logger message="xa start" level="INFO" doc:name="Logger"/>
        <transactional action="BEGIN_OR_JOIN" doc:name="Transactional">
            <jdbc-ee:outbound-endpoint exchange-pattern="one-way" queryKey="updateTPCCounterType_TPC410" queryTimeout="-1" connector-ref="Database" doc:name="Database">
                <jdbc-ee:transaction action="ALWAYS_JOIN"/>
                <jdbc-ee:query key="updateTPCCounterType_TPC410" value="${sample.db.query.updateTPCCounterType_TPC}"/>
            </jdbc-ee:outbound-endpoint>
            <jdbc-ee:outbound-endpoint exchange-pattern="one-way" queryKey="insert_TPCM_POC_HEADER" queryTimeout="-1" connector-ref="Database" doc:name="Database">
                <jdbc-ee:transaction action="ALWAYS_JOIN"/>
                <jdbc-ee:query key="insert_TPCM_POC_HEADER" value="${sample.db.query.insert_TPCM_POC_HEADER}"/>
            </jdbc-ee:outbound-endpoint>
            <jdbc-ee:outbound-endpoint exchange-pattern="one-way" queryKey="insert_TPCM_POC_DETAIL" queryTimeout="-1" connector-ref="Database" doc:name="Database">
                <jdbc-ee:transaction action="ALWAYS_JOIN"/>
                <jdbc-ee:query key="insert_TPCM_POC_DETAIL" value="${sample.db.query.insert_TPCM_POC_DETAIL}"/>
            </jdbc-ee:outbound-endpoint>
        </transactional>
        <logger message="xa end" level="INFO" doc:name="Logger"/>
    </flow>
</mule>

我得到的错误是:

错误2013-11-22 19:07:45781[main]org.mule.module.launcher.application.DefaultMuleApplication:null org.mule.api.lifecycle.InitialisationException:组件未正确初始化,没有流构造。

信息2013-11-22 19:07:45783[main]org.mule.module.launcher.application.DefaultMuleApplication:App'Receiver'从未启动,无需处理 线程“main”org.mule.module.launcher.DeploymentInitException中出现异常:InitialisationException:组件未正确初始化,没有流构造。

原因:org.mule.api.config.ConfigurationException:创建名为“TestTransactionFlow1”的bean时出错:调用init方法失败;嵌套异常为org.mule.api.lifecycle.InitialisationException:组件未正确初始化,没有流构造。

原因:org.mule.api.config.ConfigurationException:创建名为“TestTransactionFlow1”的bean时出错:调用init方法失败;嵌套异常为org.mule.api.lifecycle.InitialisationException:组件未正确初始化,没有流构造。原因:org.mule.api.lifecycle.InitialisationException:创建名为“TestTransactionFlow1”的bean时出错:调用init方法失败;嵌套异常为org.mule.api.lifecycle.InitialisationException:组件未正确初始化,没有流构造。

请尝试以下流程2

<flow name="jdbctransactionFlow2"
      processingStrategy="synchronous"
      doc:name="jdbctransactionFlow2">

上述解决方案是针对文章中提到的代码在单流中工作的问题。但尝试使用
流量参考
时不起作用


希望这有帮助。

错误跟踪显示了一个名为“TestTransactionFlow1”的流,但可以在文章中提供的配置中找到该流。尝试验证该流是否存在任何问题。如果可能,请在此处添加该配置,以便有助于解决该问题。@user1760178是正确的:该问题与配置中未显示的
TestTransactionFlow1
有关。。。真的帮不了你…是的,我错了,我已经更正了流名称,它成功了。无论如何,非常感谢。