#tibco #tibco-ems
#tibco #tibco-ems
Вопрос:
У нас есть одно приложение, которое использует Tibco EMS в качестве промежуточного программного обеспечения для обмена сообщениями, однако мы обнаружили, что некоторые потоки, связанные с tibco, продолжают увеличиваться, и теперь их более 5000, и нам нужно перезапустить наш сервер через несколько дней, поскольку мы получили предупреждение о пороговом значении потока.
«TIBCO EMS TCPLink Reader (Server-800893673)» #108119 демон prio = 5 os_prio = 0 tid = 0x00007f04e239e000 nid = 0x6da2 запускаемый [0x00007f0152baa000] java.lang.Нитки.Состояние: ВЫПОЛНЯЕТСЯ в java.net.SocketInputStream.socketRead0 (собственный метод) в java.net.SocketInputStream.socketRead(SocketInputStream.java: 116) в java.net.SocketInputStream.read(SocketInputStream.java: 171) в java.net.SocketInputStream.read(SocketInputStream.java: 141)в java.io.BufferedInputStream.fill(BufferedInputStream.java: 246) в java.io.BufferedInputStream.read(BufferedInputStream.java: 265)
- заблокирован <0x000000073b113240> (java.io.BufferedInputStream) в java.io.DataInputStream.readInt(DataInputStream.java:387) в com.tibco.tibjms.TibjmsxLinkTcp._readWireMsg(TibjmsxLinkTcp.java:625) на com.tibco.tibjms.TibjmsxLinkTcp$LinkReader.work(TibjmsxLinkTcp.java:280) в com.tibco.tibjms.TibjmsxLinkTcp $LinkReader.run(TibjmsxLinkTcp.java:259)
«Запрос TIBCO EMS для сервера соединений-800893673» #108118 демон prio = 5 os_prio = 0 tid = 0x00007f01986fb800 nid = 0x6da1 ожидает выполнения условия [0x00007f01530af000] java.lang.Нитки.Состояние: TIMED_WAITING (спящий режим) на java.lang.Thread.sleep (собственный метод) в com.tibco.tibjms.TibjmsxLinkTcp$LocalPinger.run(TibjmsxLinkTcp.java:113) на java.lang.Thread.run(Thread.java:748)
Комментарии:
1. Проверьте, закрываете ли вы все соединения после чтения ответа из временных очередей. Также, если вы отвечаете на временные очереди, проверьте, установлен ли срок действия для сообщения. Вы можете использовать такие инструменты, как tIbco admin или GEMS, чтобы проверить, не создано ли слишком много временных очередей.
2. Является ли это Java-приложением, использующим API TIBCO EMS JMS? Если вы видите, что потоки увеличиваются, вам может потребоваться проверить исходный код приложения.
3. привет, ЭммануэЙМ, мы обнаружили, что основная причина заключается в том, что мы кэшируем соединение без разблокировки, поэтому исправили это.