Um pouco de contexto sobre o cenário.
Tenho um aplicativo distribuído em execução no RH6.5 que usa JMS (OpenMQ 4.5.2) para enviar mensagens entre hosts.
Um host (Host A) recebe informações de elementos de rede, como roteadores e switches, e retransmite essas informações para outro host (Host B) para processamento. O JMS está sendo executado no Host B.
Essas mensagens que fluem através do JMS têm uma média de cerca de 100 mensagens por segundo e podem ter picos de várias centenas de mensagens sem problemas.
Ocasionalmente, observo que o fluxo de mensagens é interrompido, nada chega ao Host B, apesar do Host A ainda estar recebendo dados da rede em taxas semelhantes. Quando isso acontece, o processo JMS no Host B ocupa toda a CPU.
Usando netstat -o, também notei que o Recv-Q do soquete JMS no lado do Host B é muito 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)
No lado do Host A, o Send-Q também é 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)
Também notei o valor "sonda" no cronômetro. Pesquisando na web encontrei poucas informações sobre o significado desse valor.
Portanto, a questão é:
o que significa um valor de temporizador de "sonda" e isso poderia refletir algum tipo de problema ao ler ou gravar no soquete?