#java #tibco-rv
#java #tibco-rv
Вопрос:
Мы уже много лет запускаем торговое приложение с TIBCO RVCM transport (версия 5.3), и оно очень стабильно. В последнее время приложение сталкивается с одной и той же проблемой «Недопустимая тема» раз в неделю, и для устранения этой проблемы необходимо вручную перезапустить приложение. И это вызывает много проблем, поскольку все сделки необходимо вручную перебронировать в течение проблемного периода.
Тема использовалась много лет и никогда не менялась, поэтому это не должно быть проблемой конфигурации. Приложение использует RVCM в регистре памяти. Я подозреваю, что это может быть вызвано проблемой с памятью, поскольку пока нет никаких доказательств.
Какие-либо подсказки или методы отладки я могу использовать для изучения этой проблемы? Большое спасибо!
TibrvException[error=20,message=Invalid subject]
at com.tibco.tibrv.TibrvImplCmTPortC.natSend(Native Method)
at com.tibco.tibrv.TibrvImplCmTPortC.send(TibrvImplCmTPortC.java:107)
at com.tibco.tibrv.TibrvTransport.send(TibrvTransport.java:144)
at com.tibco.tibrv.TibrvCmTransport.send(TibrvCmTransport.java:168)
Комментарии:
1. Нам понадобится дополнительная информация для отладки этого. Это всегда происходит в одно и то же время или при выполнении одного и того же задания или есть другие согласованные подсказки? Что такое инструмент, такой как Process Explorer (в Windows) или vmstat (в Linux), сообщает вам об использовании памяти? Я вижу, что проблема обнаруживается в send(). Добавьте в приложение некоторую отладку, чтобы перехватывать исходящие сообщения, а затем выяснить, какое из них вызывает исключение.
2. Спасибо за быстрый ответ! Это одно и то же приложение, постоянно работающее в WebSphere. Использование памяти на самом деле невелико и довольно стабильно. И мы использовали трассировку для отладки содержимого сообщения RV, которое вызвало это исключение, но оно в основном такое же, как и другие обычные сообщения.
3. Также это происходит случайным образом, и это происходит по крайней мере раз в неделю (иногда дважды), и это всегда можно исправить путем перезапуска.