Java RMI连接池细节

我正在研究
Java RMI主题,并且需要有关客户端连接池的一些信息.在文献和文献中没有明确的答案这些主题.我知道连接池不是RMI规范的一部分.但是在一些实现中(例如在SUN的实现中),它已经完成.所以我的问题参考了这个实现.

我想由RMI套接字工厂创建的套接字(java.net.Socket)缓存在池中.那是对的吗?

这些连接是如何保存的?除了使用HashMap与目标IP /端口作为密钥和套接字作为值之外,我会这样做.

使用超时关闭套接字.如何获得连接空闲时间的信息?最后一次使用连接时可能会有某种时间戳.

最佳答案 请记住,我只是在讨论Sun的实现:

I suppose that the socket (java.net.Socket) which is created by the
RMI socket factory is cached in the pool. Is that correct?

是的,从远程调用中释放后,当然远程调用首先在池中查找,然后它要求套接字工厂创建一个新的Socket.

How are these connections saved? I would except that a HashMap is used
with the destination ip/port as key and the socket as value.

我们只能说从逻辑上讲必须是从ip:port到Socket的Map.实现细节实际上并不重要.

Sockets are closed by using a timeout. How is the information on the
connection idle time gained?

通过注意连接放入池中的时间.

点赞