2012-03-14 1 views
2

Мне не повезло получить информацию о отображаемых полях tcpmon.Что означает состояние (Active, Req, Done) в tcpmon?

В частности, меня смущает столбец «Состояние», который перемещается из Active-> Req-> Done в течение передачи. Кто-нибудь точно понимает, что означает каждое из этих трех состояний?

Я спрашиваю, потому что я, кажется, страдаю от прерывистых зависаний, когда сообщение остается в состоянии «Req».

Спасибо за ваше время.

+0

Я не использовал tcpmon, но, возможно, считаю Wireshark? Это позволит при желании просмотреть отдельные TCP-пакеты и выделить определенные проблемы, такие как неправильные рукопожатия или отсутствующие пакеты, и т. Д. –

+0

Теперь я попытался запустить его через проволочную акулу, и хотя я, конечно, не эксперт в сети трафика, казалось бы, все хорошо. Я не вижу разницы между ответами, которые ведут себя так, как ожидалось, и теми, которые приводят к зависанию «Req». Это усиливает мои подозрения, что проблема в мыле выше http с использованием axis2. Я слишком много нуба, чтобы действительно иметь такое мнение. –

ответ

0

Я только что взял пик в source code за tcpmon, и я думаю, что понимаю, что означают состояния.

  • Активный: сокет был создан, но ничего не было прочитано или написано над гнездом
  • Req: данные передаются через сокет
  • Done: сокет был закрыт

Мое предположение, что в tcpmon есть ошибка, которая висит в состоянии Req, когда она никогда не закрывает гнездовую опору erly. Я знаю, что была такая ошибка в старой версии, как указано комментарием в их исходном коде:

// Only loop as long as the connection to the target 
// machine is available - once that's gone we can stop. 
// The old way, loop until both are closed, left us 
// looping forever since no one closed the 1st one. 

Это, вероятно, избыточна для того, что вы хотите знать, но вы можете найти логику, они используют, чтобы установить столбец состояния в файлах RawSender.java и Connection.java.