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]" />