2014-04-12 1 views
0

Mule 3.4는 기본 16 스레드 만 생성하며 아래 코드에 지정된 구성을 사용하지 않았습니다.Mule VM - 데이터 손실/VM의 모든 데이터 처리 안 함

  1. MaxActive = "100"은 생성되지 않고 단지 16 개의 스레드를 생성하고 처리합니다.
  2. INITIALISE_ALL도 작동하지 않고 하나의 유휴 스레드가 있고 데이터가 제출되면 16 개를 작성하고 처리합니다. 따라서 MaxIdle = 2도 작동하지 않습니다. (jvisualvm을 사용하여 모니터 됨)

왜 기본 동작을 무시하지 않습니까? 내가 놓친 게 있니?

가장 중요한 문제는 현재 VM에 28 개의 ID를 제출할 때 일부 ID를 처리 할 때 나머지 부분에 대한 단서가없고 특정 번호/패턴이 없다는 것입니다. (내 로컬 상자에서 문제를 복제 할 수 없습니다. 이것은 QA, UAT 상자와 같은 상위 env에서 발생하며 이전에 언급 한 것처럼이 문제없이 작동했습니다.) 도와주세요.

<flow name="Event0"> 
    <vm:inbound-endpoint ref="PROCESS.EVENT0" /> 
    <pooled-component> 
     <spring-object bean="abcProcess" /> 
     <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL" maxActive="100" maxIdle="2" maxWait="20000" /> 
    </pooled-component> 
    <custom-exception-strategy class="org.mule.exception.DefaultMessagingExceptionStrategy"> 
     <commit-transaction exception-pattern="*" /> 
     <vm:outbound-endpoint ref="ErrorHandlerInput" /> 
    </custom-exception-strategy> 
</flow> 
+0

'PROCESS.EVENT0'의 정의가 표시되지 않으므로'단방향 '인지 아니면 요청 응답인지 알 수 없습니다. 또한 스레딩 프로파일을 구성한 방법을 표시하지 않습니다. 너를 돕기가 아주 어렵다. –

답변

0

당신은 DefaultMessagingExceptionStrategy을 사용하고 있고 documentation는 말한다 :

이 흐름과 서비스에 대한 기본 예외 핸들러입니다. 처리기는 오류를 기록하고 메시지 및 예외를 예외 끝점으로 전달합니다 (예외 전략에 설정되어있는 경우). 끝 점이 요소를 통해 구성되면 데드 레터 대기열 패턴은 으로 가정되므로 트랜잭션이 커밋됩니다. 그렇지 않으면 트랜잭션 이 롤백되어 소스 메시지가 다시 전달됩니다 (전송에 따라 다름) .

그래서 로그와 예외 엔드 포인트를 확인해야합니다.