- mule/
- Mule smtp端点跟踪聚合器在首次运行后失败
Mule smtp端点跟踪聚合器在首次运行后失败
Mule smtp端点跟踪聚合器在首次运行后失败,mule,Mule,我正在设置一个流程,将数据从一个表拉到另一个表中,标记已处理的行,并通过电子邮件发送结果。我使用了聚合器(请参见:
)将所有行合并到一封电子邮件中,但在添加聚合器后,SMTP端点无法在第二次迭代中运行
启动骡流
插入导致流运行的行
SQL脚本和SMTP端点运行
插入更多行,流将再次运行
只有SQL脚本运行。。。SMTP端点根本不运行
<flow name="Invoice_Workflow2Flow1" doc:name="Ross_invoice_Workflow2Flow1" proc
我正在设置一个流程,将数据从一个表拉到另一个表中,标记已处理的行,并通过电子邮件发送结果。我使用了聚合器(请参见:
)将所有行合并到一封电子邮件中,但在添加聚合器后,SMTP端点无法在第二次迭代中运行
启动骡流
插入导致流运行的行
SQL脚本和SMTP端点运行
插入更多行,流将再次运行
只有SQL脚本运行。。。SMTP端点根本不运行
<flow name="Invoice_Workflow2Flow1" doc:name="Ross_invoice_Workflow2Flow1" processingStrategy="asynchronous">
<jdbc:inbound-endpoint queryKey="GetUnprocessedInvoices" queryTimeout="10000" pollingFrequency="10000" connector-ref="Database" doc:name="Get invoice run">
<jdbc:query key="GetUnprocessedInvoices" value="SELECT INVOICE_NUMBER, ROWID FROM FIN.LHF_INVOICE_WORKFLOW WHERE (STATUS_FLAG = 'N')"/>
</jdbc:inbound-endpoint>
<jdbc:outbound-endpoint exchange-pattern="one-way" queryKey="insert_invoice_run" queryTimeout="10000" connector-ref="SPTSQL01_APPS_custom_app_data" doc:name="Load to custom_app_data">
<jdbc:query key="insert_invoice_run" value="INSERT INTO lhf_ros_invoice_workflow ([INVOICE_NUMBER] VALUES #[map-payload:INVOICE_NUMBER])"/>
</jdbc:outbound-endpoint>
<jdbc:outbound-endpoint exchange-pattern="one-way" queryKey="MarkAsProcessed" queryTimeout="10000" connector-ref="DatabaseMuleLogin" doc:name="Mark Processed in Ross">
<jdbc:query key="MarkAsProcessed" value="UPDATE FIN.LHF_INVOICE_WORKFLOW SET STATUS_FLAG = 'P' WHERE (ROWID = #[map-payload:ROWID])"/>
</jdbc:outbound-endpoint>
<message-properties-transformer doc:name="Message Properties">
<add-message-property key="MULE_CORRELATION_GROUP_SIZE" value="1000"/>
<add-message-property key="MULE_CORRELATION_ID" value="1"/>
</message-properties-transformer>
<collection-aggregator timeout="1000" failOnTimeout="false" doc:name="Collection Aggregator"/>
<smtp:outbound-endpoint host="mail.example.com" to="test@example.com" from="muleservice@example.com" subject="[Invoice Workflow] Exceptions" responseTimeout="10000" doc:name="SMTP"/>
</flow>
如果有用的话,这是发生的事情的日志
(第一次运行正常,SMTP端点运行)
INFO 2012-12-06 09:08:52143[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.02]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新1行
INFO 2012-12-06 09:08:52159[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.03]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:08:52180[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.01]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:08:52223[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.01]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:08:52223[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.03]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新1行
INFO 2012-12-06 09:08:52223[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.02]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新1行
信息2012-12-06 09:08:53131[[ross_invoice_workflow].connector.smtp.mule.default.dispatcher.01]org.mule.transport.service.DefaultTransportServiceDescriptor:加载默认出站转换器:org.mule.transport.email.transformers.objecttomemessage
信息2012-12-06 09:08:53138[[ross_invoice_workflow].connector.smtp.mule.default.dispatcher.01]org.mule.lifecycle.AbstractLifecycleManager:初始化:“connector.smtp.mule.default.dispatcher.1935379626”。对象是:SmtpMessageDispatcher
INFO 2012-12-06 09:08:53174[[ross_invoice_workflow].connector.smtp.mule.default.dispatcher.01]org.mule.lifecycle.AbstractLifecycleManager:开始:“connector.smtp.mule.default.dispatcher.1935379626”。对象是:SmtpMessageDispatcher
(插入更多行,SQL端点运行,但SMTP不运行…)
INFO 2012-12-06 09:09:22111[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.03]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新1行
INFO 2012-12-06 09:09:22129[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.02]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新1行
INFO 2012-12-06 09:09:22146[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.01]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:09:22168[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.03]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:09:22168[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.01]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:09:22168[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.02]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
(插入更多行,同样的事情)
INFO 2012-12-06 09:09:22111[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.03]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新1行
INFO 2012-12-06 09:09:22129[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.02]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新1行
INFO 2012-12-06 09:09:22146[[ross_invoice_workflow].DatabaseMuleLogin.dispatcher.01]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:09:22168[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.03]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:09:22168[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.01]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:更新了1行
INFO 2012-12-06 09:09:22168[[ross_invoice_workflow].SPTSQL01_APPS_custom_APPS_data.dispatcher.02]org.mule.transport.jdbc.sqlstrategy.SimpleUpdateSqlStatementStrategy:执行SQL语句:1行更新问题来自于多行相关ID
设置为的事实。由于已处理具有此关联ID的组,因此无法在组交付后继续使用此ID。在我的分条测试中,在第一个组被释放后,当我尝试提供更多具有相同关联ID的事件时,我实际上收到了错误
我建议您在select查询中添加一列,该列为所有选定行返回相同的值,但每次Mule运行查询时都会更改。例如,查询可以接收Mule wit生成的UUID
<set-property propertyName="MULE_CORRELATION_GROUP_SIZE" value="3" />
<set-property propertyName="MULE_CORRELATION_ID" value="#[message.payload.CID]" />