私は、異なるマシン上の複数のrmiサーバーに接続するrmiクライアントを持っています。クライアント側で接続のタイムアウトが発生することがあります。それはランダムに発生し、私がそれを見つけて再びサーバーに接続しようとすると、常に成功します。マシン間にファイアウォールはありません。実際の接続を試みていないjava rmiソケット接続のタイムアウト
Wiresharkでネットワークトラフィックをキャプチャしようとしましたが、クライアントからの発信SYNパケットがないので、接続を確立しようとしていないようです。
何が原因である可能性がありますか?そこで何が起こっているのか、どうすればわかりますか?
編集:RMIからログ:
4:02:44 AM sun.rmi.transport.tcp.TCPEndpoint newSocket
FINER: task-6786: opening socket to [c1w7IE10-0059:1099]
4:02:44 AM sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket
FINE: task-6786: host: c1w7IE10-0059, port: 1099
ポートとホストが正しいですが、何のSYNパケットをホストに送信されません。
編集:スタックトレース
ERROR: Error: com.kerio.at.lib.exception.KRemoteOperationFailedException: java.rmi.ConnectException: Connection refused to host: c1w7IE10-0059; nested exception is:
java.net.ConnectException: Connection timed out: connect
com.kerio.at.lib.exception.KRemoteOperationFailedException: java.rmi.ConnectException: Connection refused to host: c1w7IE10-0059; nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.kerio.at.lib.testmanager.rmi.client.TestManagerClient.connect(TestManagerClient.java:88)
at com.kerio.at.lib.cml.scheduling.RunTestTask.connectToNode(RunTestTask.java:485)
at com.kerio.at.lib.cml.scheduling.RunTestTask.call(RunTestTask.java:68)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.rmi.ConnectException: Connection refused to host: c1w7IE10-0059; nested exception is:
java.net.ConnectException: Connection timed out: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at com.kerio.at.lib.testmanager.rmi.client.TestManagerClient.connect(TestManagerClient.java:59)
... 9 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
もしあなたが助けを求めているのであれば、あなたのコードを投稿するかもしれません....それがなければ何が間違っているのか推測できません。 – Aeldred
システムプロパティ 'sun.rmi.transport.tcp.responseTimeout'またはプログラムからソケットタイムアウトを増やすことはできますか? それからもう一度確認してください。 –
@AtaurRahmanMunnaなぜですか?これはクライアントでの読み取りタイムアウトです。この問題を回避しても、接続の問題は解決しません。 – EJP