Un poco de historia sobre el escenario.
Tengo una aplicación distribuida que se ejecuta en RH6.5 y usa JMS (OpenMQ 4.5.2) para enviar mensajes entre hosts.
Un host (Host A) recibe información de elementos de la red, como enrutadores y conmutadores, y transmite esa información a otro host (Host B) para su procesamiento. JMS se ejecuta en el Host B.
Estos mensajes que fluyen a través de JMS promedian alrededor de 100 mensajes por segundo y pueden tener picos de varios cientos de mensajes sin ningún problema.
De vez en cuando, observo que el flujo de mensajes se detiene, nada llega al Host B, a pesar de que el Host A todavía recibe datos de la red a velocidades similares. Cuando esto sucede, el proceso JMS en el Host B ocupa toda la CPU.
Al usar netstat -o, también noté que el Recv-Q del socket JMS en el lado del Host B es muy alto:
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 268439 0 HostB:9030 HostA:53712 ESTABLISHED off (0.00/0/0)
En el lado del Host A, el Send-Q también es alto:
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 68736 HostA:53712 HostB:9030 ESTABLISHED probe (17.25/0/0)
También noté el valor "sonda" en el temporizador. Buscando en la web encontré poca información sobre el significado de este valor.
Entonces, la pregunta es:
¿Qué significa un valor de temporizador de "sonda"? ¿Podría reflejar algún tipo de problema al leer o escribir en el socket?