读书人

java中的远程调用有关问题

发布时间: 2012-03-15 11:50:38 作者: rapoo

java中的远程调用问题
最近程序老是报错,程序重新一到二天后就会报这样的错误,用的是远程调用,客户端远程调用服务端,望各位大侠帮忙找出问题

客户端报错代码:

java.rmi.ConnectException: Connection refused to host: 192.168.1.4; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy29.getUserFreeStatus(Unknown Source)
at botian.manager.OnlineUserManager.getSeatFreeStatus(OnlineUserManager.java:122)
at botian.manager.OnlineUserManager.setSeatFreeStatus(OnlineUserManager.java:483)
at botian.callcenter.service.CCMiddlewareOnlineUserService.freeSeat(CCMiddlewareOnlineUserService.java:256)
at botian.callcenter.service.CCMiddlewareOnlineUserService.freeSeat(CCMiddlewareOnlineUserService.java:1)
at botian.middleware.cc.client.TcpClientServiceImpl.endSession(TcpClientServiceImpl.java:922)
at botian.middleware.cc.client.TcpClientServiceImpl.dealFlowDetail(TcpClientServiceImpl.java:2272)
at botian.middleware.cc.client.TcpClientServiceImpl$2.run(TcpClientServiceImpl.java:2749)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
... 16 more

服务端报错代码:

12:46:22,781 [ERROR] - ++++ failed to get SockIO obj for: 192.168.1.102:11211
12:46:22,781 [ERROR] - Address already in use: no further information
java.net.BindException: Address already in use: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
at sun.nio.ch.SocketAdaptor.connect(Unknown Source)
at com.danga.MemCached.SockIOPool$SockIO.getSocket(SockIOPool.java:1612)

at com.danga.MemCached.SockIOPool$SockIO.<init>(SockIOPool.java:1585)
at com.danga.MemCached.SockIOPool.createSocket(SockIOPool.java:782)
at com.danga.MemCached.SockIOPool.selfMaint(SockIOPool.java:1331)
at com.danga.MemCached.SockIOPool$MaintThread.run(SockIOPool.java:1497)
12:47:26,828 [ERROR] - ++++ failed to get SockIO obj for: 192.168.1.102:11211


12:47:26,828 [ERROR] - No buffer space available (maximum connections reached?):
connect
java.net.SocketException: No buffer space available (maximum connections reached
?): connect
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
at sun.nio.ch.SocketAdaptor.connect(Unknown Source)
at com.danga.MemCached.SockIOPool$SockIO.getSocket(SockIOPool.java:1612)

at com.danga.MemCached.SockIOPool$SockIO.<init>(SockIOPool.java:1585)
at com.danga.MemCached.SockIOPool.createSocket(SockIOPool.java:782)
at com.danga.MemCached.SockIOPool.selfMaint(SockIOPool.java:1331)
at com.danga.MemCached.SockIOPool$MaintThread.run(SockIOPool.java:1497)



[解决办法]
maximum connections reached 可能是操作系统最大连接数限制造成的。
[解决办法]
是不是连接太频繁了服务器自动拒绝了我有过这种经历
[解决办法]
12:47:26,828 [ERROR] - ++++ failed to get SockIO obj for: 192.168.1.102:11211
12:47:26,828 [ERROR] - No buffer space available (maximum connections reached?):
connect
java.net.SocketException: No buffer space available (maximum connections reached
?): connect
[解决办法]

Java code
12:46:22,781 [ERROR] - ++++ failed to get SockIO obj for: 192.168.1.102:1121112:46:22,781 [ERROR] - Address already in use: no further informationjava.net.BindException: Address already in use: no further information
[解决办法]
是不是Socket通道阻塞了??我看报错都有Socket。。。不太懂远程,这是我猜的。。
[解决办法]
网络断了吧,检查一下网络。

读书人网 >J2EE开发

热点推荐