【发布时间】:2014-06-03 08:11:08
【问题描述】:
我有一个 SQL UPDATE 语句,用于将特定记录更新到 mule 流中的数据库。我在语句中包含 MEL 表达式时遇到问题,并且 SQL 没有在我的流程中执行。
我正在尝试下一个命令:
UPDATE CUSTOMERS SET STATUS=#[flowVars['TxnStatus']] WHERE REF_NUM=#[flowVars['ReferenceNumber']]
TxnStatus 和 ReferenceNumber 是我的 mule Flow 中的流变量。看似简单,但记录并没有更新。
当我使用 MEL 表达式尝试类似的 SELECT 语句时,它确实为我检索了值。请让我知道你的想法。
谢谢,
添加配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<jdbc-ee:mssql-data-source name="MuleDB_DataSource" user="${MuleDB_User}" password="${MuleDB_Password}" url="${MuleDB_URL}" transactionIsolation="UNSPECIFIED" doc:name="MS SQL Data Source"/>
<jdbc-ee:connector name="Database" dataSource-ref="MuleDB_DataSource" validateConnections="true" queryTimeout="-1" pollingFrequency="10000" doc:name="Database" transactionPerMessage="false">
</jdbc-ee:connector>
<flow name="ExceptionFlowFlow1" doc:name="ExceptionFlowFlow1">
<vm:inbound-endpoint exchange-pattern="one-way" path="Exception" doc:name="VM"/>
<set-variable variableName="ExceptionPayload" value="#[payload]" doc:name="ExceptionPayload"/>
<set-variable variableName="TxnStatus" value="Failure" doc:name="Variable"/>
<logger message="#[variable:TxnStatus]" level="INFO" category="Status" doc:name="Logger"/>
<jdbc-ee:outbound-endpoint exchange-pattern="one-way" queryKey="Update_Status" queryTimeout="-1" connector-ref="Database" doc:name="Update_Status">
<jdbc-ee:query key="Update_Status" value="UPDATE CUSTOMERS SET STATUS=#[flowVars['TxnStatus'] WHERE PAYMENT_REFERENCE_NUMBER=#[flowVars['TxnReference']"/>
</jdbc-ee:outbound-endpoint>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<logger message="#[exception]" level="INFO" category="ExceptionFlow failed with the exception --" doc:name="Logger"/>
</catch-exception-strategy>
</flow>
</mule>
【问题讨论】:
-
1) 在 Mule 控制台中查找错误消息 2) 为您的数据库打开日志记录并查看传入的 SQL 语句。
-
@AntonKupias - 感谢您的回复。我无权访问数据库日志,并且在 mule 控制台上,我没有看到任何错误消息。
-
尝试用记录器记录语句和变量,以及变量的类名。如果您使用与 db 预期不同的数据类型设置 var,则数字和字符串之间的 JDBC 转换也可能是一个问题。如果您没有错误日志,则 Var 类/值和 db 字段类型是开始重现问题的最少信息。
标签: mule mule-studio