2014-07-09 4 views
0

서비스 믹스에 배치 된 낙타 번들을 여러 번 실행하면 여러 번 실행 한 후에 동일한 번들에서 아래 예외를 알립니다.낙타 프로그램을 실행할 때 번들이 더 이상 유효하지 않습니다.

org.apache.camel.runtimeexception :java.lang.illegalstateexception: bundlecontext is no longer valid 

동일한 시나리오에서 일부 실행이 제대로 작동하고 갑자기 일부 연속 실행에서 위의 오류가 발생합니다.

smx를 다시 시작하거나 번들을 제거하면 문제가 해결됩니까? 이것은 내가이 문제에 직면하고 있으며 작은 재시작으로 해결할 때마다 세 번째입니다. 이것이 다른 문제인지 제안하십시오. 내가 코드를 아래와 같이 사용했던 코드에 사용했다

아래 내 댓글 후

.

<choice> 
<when> 
<simple>some condition</simple> 

</when> 
<when> 
<simple>some other condition</simple> 
<stop/> 
<when> 
</choice> 
<!--Still more code and logic exists--> 

여기에서 사용한 경우 여기가 문제이므로 두 번째 조건이 발생할 때 종료해야합니다.

추가 실행을 중단 할 수있는 방법이 있습니까? 특정 요청에 대한 실행을 중단하고 경로를 중지하지 않는 방법은 무엇입니까? 이 시나리오에는이 요청의 영향을받지 않고 다른 요청에 사용할 수있는 다른 요청이 있습니다.

나는 http://camel.apache.org/intercept.html 링크에서 추가 실행을 멈추기 위해 사용한다고 말하지만 어떤 식 으로든 길을 막을 것이라고 생각합니다.

그러면 번들이 더 이상 유효하지 않게됩니다. 여기에서 CamelContext.stop()의 스프링 구성 요소가 무엇이 될 것인가에 대한 질문이 생깁니 까?

다음에 나에게 또 다른 설명이 있습니다.

또한 낙타에는 개발을 용이하게하는 맞춤형 번들이있는 환경에서 작업합니다. 이것은 특히 라우트를 동적으로로드합니다. 이것이 우리가 camelCOntext.Start() 등을 줄 때 경로가 제대로 시작되지 않는 한 가지 이유입니까?

+0

낙타 경로는 어떻게 배포 했습니까? 방금 XML 또는 번들을 배포 했습니까? –

+0

평소와 같이 번들 .. 일부 요청에 대해 작업 중이었고 같은 번들로 인해이 오류가 발생했습니다. 간단한 재시작으로 문제가 해결되었지만 특별한 이유 또는 이유가 있는지 궁금 할 때가 있습니다. –

+0

당신이 가지고있는 낙타 루트를 보여줄 수 있습니까? –

답변

0

낙타 경로에서 나는 잘못된 것을 말할 수 없습니다. 방금 ​​다른 질문을 했으므로 여기에 내 대답을 게시하십시오.

경로의 정지 요소는 교환기에서만 작동합니다. 즉,이 지점으로 연결된 교환기는 더 이상 처리되지 않습니다. 경로 또는 낙타 상황을 중단하려면 CamelContext.stop()을 호출해야합니다.

camel-controlbus 구성 요소를 사용하여 스프링 구성에서 수행 할 수있는 경우.

+0

과 CamelCOntext.stop()의 차이점은 무엇입니까? –

+0

위의 질문에 대한 추가 정보. 확인해 주시겠습니까? 도와주세요 –

+0

낙타 컨텍스트를 중지하면 번들이 유효하지 않을 수 있다고 생각하지 않습니다. osgi 명령을 사용하여 낙타 응용 프로그램 번들 상태를 확인할 수 있습니까? –

관련 문제