2013-05-27 4 views
0

문제가 'MULE_CORRELATION_ID'일 수 있습니다. 이 태그를 사용하여 일괄 처리 된 데이터를 처리합니다.Mule ESB가 처음으로 두 번째 실행되지 않습니다.

<jdbc-ee:connector name="jdbcConnector" dataSource-ref="dataSource" pollingFrequency="2000" queryTimeout="-1" transactionPerMessage="false" resultSetHandler-ref="resutSetHandler" doc:name="Database"> 
    <jdbc-ee:query key="read" value="SELECT 1 as CID, A.* from ewell_login_user A"></jdbc-ee:query> 
</jdbc-ee:connector> 
<file:connector name="output" outputAppend="true" outputPattern="#[function:datestamp].txt" doc:name="File"></file:connector> 
<flow name="zhicall-zhongshan" doc:name="zhicall-zhongshan"> 
    <jdbc-ee:inbound-endpoint queryKey="read" connector-ref="jdbcConnector" doc:name="Database"> 
    </jdbc-ee:inbound-endpoint> 
    <message-properties-transformer doc:name="Message Properties" > 
     <add-message-property key="MULE_CORRELATION_GROUP_SIZE" value="10"/> 
     <add-message-property key="MULE_CORRELATION_ID" value="10000"/> 
    </message-properties-transformer> 
    <collection-aggregator timeout="5000" failOnTimeout="false" doc:name="Collection Aggregator"/> 
    <custom-transformer encoding="UTF-8" class="com.zhicall.esb.transformer.TestTransFormer" doc:name="Java"/> 
    <stdio:outbound-endpoint doc:name="STDIO" responseTimeout="10000" system="OUT" encoding="UTF-8"/> 
</flow> 

답변

2

MULE_CORRELATION_ID는 각 메시지 그룹마다 고유해야합니다.
설정하지 않아야하며, 그렇게 할 경우 각 그룹마다 다른 ID를 사용해야합니다.

+0

MULE_CORRELATION_ID를 주석 처리하면 MULE_CORRELATION_GROUP_SIZE는 변압기가 한 레코드를 한 번 처리하기 때문에 적용되지 않습니다. 그렇다면 구성을 어떻게 수정해야합니까? ! – Roy

+0

모든 그룹 ID가 고유한지 확인하려면 MULE_CORRELATION_ID 값을 '# [function : datestamp]'표현식으로 설정합니다. 이번에는 앱이 시간이 지나면 실행되지만 다른 질문이 나에게 혼란을줍니다. 문제는 MULE_CORRELATION_GROUP_SIZE이 (가) 매번 적용되지 않는다는 것입니다. 때로는 그룹 크기가 10보다 작습니다. 그리고 때로는 응용 프로그램이 예외를 throw합니다. 그리고 한 번에 하나 이상의 데이터 그룹이 폴링됩니다. – Roy

관련 문제