뮬 3.3.1 커뮤니티 에디션을 사용하고 있습니다.뮬의 스레드 수 제어하기
HTTP 요청을 받아들이는 흐름이 있습니다. 이것은 성공적으로 실행됩니다.
서비스는 메시지가 수신 된 순서대로 엄격하게 처리되도록 단일 스레드되어야합니다. 내 생각은 내 원하는 동작을 얻으려면 maxThreadsActive = 1 및 maxBufferSize = 100 설정하는 것입니다. 그러나 스레드를 제어 할 수는 없습니다.
이 시점에서 스레드 수에 관계없이 스레드 프로필을 작동 시키려고합니다. 나는 매닝 (Manning) 서적 의 최신 버전에서 정확히 쓰레딩 프로파일을 추가했는데, Mule은이라는 뮬을 가지고 있지만, Mule은 그것을 "유효하지 않은 컨텐트"로 거부하고 실행되지 않습니다.
<flow name="TestFlow">
<threading-profile maxBufferSize="100" maxThreadsActive="20" maxThreadsIdle="10"
threadTTL="60000" poolExhaustedAction="RUN" />
<http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="8088" path="test" doc:name="HTTP" mimeType="text/plain"
encoding="UTF-8"/>
<logger level="INFO" category="hello" doc:name="Logger"/>
</flow>
나는 그것을 주석 처리하고 구성 블록으로 옮겼습니다.
<configuration>
<default-threading-profile maxThreadsActive="20" maxBufferSize="100"
poolExhaustedAction="RUN" />
</configuration>
<flow name="TestFlow">
<http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="8088" path="test" doc:name="HTTP" mimeType="text/plain"
encoding="UTF-8"/>
<logger level="INFO" category="hello" doc:name="Logger"/>
</flow>
Mule은 이것을 허용하지만 서비스는 더 이상 반환하지 않습니다. 클라이언트는 단순히 응답을 기다리는 응답을 보냅니다.
풀에서 스레드 풀 크기를 제어하고 한 번만 풀에서 사용할 수 있도록 흐름을 구성하려면 어떻게해야합니까?
좀 더이 문제를 파고, 설정 해당 MaxBufferSize가 구성 할 수있는 두 번째 시도에서 실패를 일으키는 것으로 보인다. 해당 특성을 제거하면 서비스가 반환됩니다. 그러나 기본값은 0이므로이 값으로 살 수는 없습니다. – Tad