Сохранение того же имени потока через RMI - PullRequest
1 голос
/ 30 июля 2010

Есть ли какой-нибудь аккуратный способ сохранить то же имя потока при вызове RMI?В настоящий момент, если у меня есть именованный поток, который выполняет вызов RMI, на стороне сервера вызова RMI, Thread.currentThread().getName() возвращает что-то неосвещенное, например «RMI TCP Connection (4) -10.0.0.2».

Конечно, я мог бы пойти и добавить ко всем моим методам RMI параметр String callingThreadName и сделать первую строку каждой реализации метода RMI Thread.currentThread().setName(callingThreadName), но это вряд ли самый лучший способ сделать это.Есть ли способ получить хоть какое-то значение имени потока, передаваемого через RMI-соединение?

Ответы [ 2 ]

1 голос
/ 30 июля 2010

То, что вы пытаетесь сделать, это соотнести действия в разных процессах, просматривая файлы журналов. Лучший способ сделать это - добавить уникальный RP_id для вашего RPC, который используется только для этой цели. Это позволяет отслеживать поток через систему.

0 голосов
/ 31 июля 2010

В спецификации Java RMI конкретно указано, что нет никаких гарантий относительно того, как клиентские вызовы отображаются на потоки сервера.Таким образом, вы не можете делать никаких предположений по этому поводу.В частности, вы не должны пытаться использовать идентификатор потока для корреляции клиентов.

...