환경 문제 일 가능성이있는 것을 진단하고 수정하려고합니다. 우리는 dev, SI 및 프로덕션 서버를 보유하고 있으며 수년 동안 동일한 서버를 설정했습니다. 환경 중 하나가 특정 JBM 대기열에서 작동을 멈췄으며 지금까지 이유를 파악할 수 없었습니다.원격 인터페이스 및 MDB 소비자가있는 JBoss 메시징 대기열이 있습니다.
JMX 콘솔을 통해 표시되는 것은 메시지가 배달 상태에 "고정"되어 있다는 것입니다. MessageCount 및 DeliveringCount는 메시지가 Queue를 통해 전송 될 때마다 증가합니다. 소비자의 onMessage()가 호출되고 log4j 로그에 디버그 메시지를 출력하지만 요청을 완료하지는 않는다고 생각합니다.
이것은 지속 된 JBM 설정입니다. JBoss 서버를 다시 시작해도 도움이되지 않습니다. JBM_ * 테이블을 지우거나 버리는 것은 도움이되지 않습니다.
jbm_msg_ref 항목에 null transaction_id가 있고 상태가 'C'인데, 이는 우리가 사용하는 oracle-persistence-service.xml의 준비된 명령문 "ROLLBACK_MESSAGE_REF2"에 의해이 상태가 된 것처럼 보입니다.
MDB 소비자의 MaxPoolSize는 15이며 이는 소비자 인스턴스가 수신하는 최대 메시지 수이기도합니다. 15 일이 지나면 큐가 "가득 차있다"는 메시지를받을 수있는 더 이상 사용 가능한 소비자 MBeans가없는 것 같습니다.
문제점을 진단하고 수정하는 방법에 대한 아이디어 또는 제안 사항이 있습니다. 나는 약간의 결과로 인터넷 검색 및 며칠 동안 물건을 시도했습니다. JBM의 상당히 오래된 버전의 JIRA 티켓이 많이 있지만, 동일한 설정의 다른 인스턴스가 정상적으로 작동하므로이 서버/DB 콤보에 네트워크, 경쟁 조건 또는 env 문제가 있다고 의심됩니다.
보스 원격 4.3.0.GA J 보스 메시징 1.4.0.SP3 보스 4.3.0.GA
감사합니다!