时间:2010-07-30 13:55:49

标签: java multithreading rmi

在进行RMI调用时,是否有任何保持相同线程名称的整洁方法?目前,如果我有一个发出RMI调用的命名线程,在RMI调用的服务器端,Thread.currentThread().getName()会返回像“RMI TCP Connection(4)-10.0.0.2”这样不起眼的内容。

当然,我可以在我的所有RMI方法中添加一个参数String callingThreadName并使每个RMI方法实现的第一行Thread.currentThread().setName(callingThreadName),但这不是最好的方法。有没有办法获得通过RMI连接传输的线程名称背后的至少一些含义?

2 个答案:

答案 0 :(得分:1)

您尝试做的是在查看日志文件时关联不同进程中的操作。执行此操作的最佳方法是向RPC添加唯一的transaction_id,该RPC仅用于此目的。这允许您跟踪系统中的流量。

答案 1 :(得分:0)

Java RMI规范明确指出无法保证客户端调用如何映射到服务器线程。所以你不能对它做任何假设。具体来说,您不应该尝试使用线程标识符来关联客户端。