2016-11-30 5 views
0

TIBCO EMS를 통해 메시지를 게시하려고합니다. 몇 가지 메시지를 처리 ​​한 후 자동으로이 오류가 발생하고 처리가 중지됩니다. 얼마 후에 다시 10K 정도의 메시지를 처리 ​​할 수 ​​있습니다. 여기에 내가 얻는 오류가있다. 이 부분에 대한 자문을 구하십시오.TIBCO이 소비자에게 유효하지 않은 메시지를 확인하려고 시도했습니다.

2016-11-30 13:39:31,170 ERROR c.b.e.d.AckMessageListenerController - Listener for Queue[TEST.DEV.QUE] throwed an exception, closing session to avoid possible message loss 
javax.jms.IllegalStateException: Attempt to acknowledge message(s) not valid for this consumer 
+0

동일한 시나리오에서 큐에 대해 두 개의 수신자 만있는 경우이 시나리오가 의미합니까? – skanda

+0

이 시나리오에서이 대기열에 대한 부실 연결이 있습니까? – skanda

답변

0

이 대기열에있는 사용자 수를 확인하십시오. 이 오류는 귀하를위한 것이 아닌이 메시지를 확인하는 중입니다. 프로세스가 어떤 체크 포인트에서 시작 되었습니까?

+0

아니요. 메시지는 동일한 서버에서 생성되고 사용됩니다. 두 가지 서로 다른 응용 프로그램 계층간에 통신 할 수있는이 디자인이 있습니다. 대기열 속성을 검사했을 때 flowcontrol이 없음을 확인하고 만료 속성을 설정했습니다. 따라서 메시지가 Consumer가 소비하기 전에 대기열에서 만료되는 시나리오가있을 것입니다. 이것이 유효한 시나리오일까요? – skanda

+0

우리는 CLIENT_ACK을 확인 모드로 사용하고 있습니다. 생산자가 메시지를 빠르게 푸시하고 소비자가 메시지를 매우 천천히 받아 들일 때 우수 사례가 될 것입니다 (소비자가 끝날 때 코드에서 누출되었음을 확실히 나타낼지라도) – skanda