RMI连接问题

问题描述

先贴下异常信息:Lookup of RMI stub failed; nested exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: java.net.SocketException: Connection resetorg.springframework.remoting.RemoteLookupFailureException: Lookup of RMI stub failed; nested exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: java.net.SocketException: Connection reset at org.springframework.remoting.rmi.RmiClientInterceptor.lookupStub(RmiClientInterceptor.java:215) at org.springframework.remoting.rmi.RmiClientInterceptor.getStub(RmiClientInterceptor.java:237) at org.springframework.remoting.rmi.RmiClientInterceptor.invoke(RmiClientInterceptor.java:257) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy2.handleEvent(Unknown Source) at com.ffcs.oss.snms.fm.services.dataservice.EventSenderImpl.handleEvent(EventSenderImpl.java:219) at com.ffcs.oss.snms.fm.services.dataservice.EventSenderImpl.sendEventTask(EventSenderImpl.java:191) at com.ffcs.oss.snms.fm.services.dataservice.EventSenderImpl.access$0(EventSenderImpl.java:173) at com.ffcs.oss.snms.fm.services.dataservice.EventSenderImpl$ResSendTask.run(EventSenderImpl.java:166) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) 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:662)Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: java.net.SocketException: Connection reset at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:286) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184) at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322) at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) at java.rmi.Naming.lookup(Naming.java:84) at org.springframework.remoting.rmi.RmiClientInterceptor.lookupStub(RmiClientInterceptor.java:200) ... 18 moreCaused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:168) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:237) at java.io.DataInputStream.readByte(DataInputStream.java:248) at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:228) ... 23 more问题描述:在同一台linux服务器同时发布N个RMI服务,当这个N大于某个数据时,有的服务被调用时就报了这个异常,调用该服务的客户端有的连接正常,有的连接会报这个错误,我关掉了任意一个正常或非正常的服务,其他所有服务都通了,这个问题貌似是linux对连接数做了限制吗?有知道的rmi哥哥或者linux哥哥指点下 问题补充:suziwen 写道

解决方案

看看这个或许有帮助http://blog.csdn.net/guowake/article/details/6615728还有看看服务器防火墙是不是也做了限制
解决方案二:
当你发布第13个的时候,telnet一下是否有问题,是不是端口被占用了?你的异常是客户端报的,你看服务端是否启动了?有没有什么异常
解决方案三:
linux默认1024个连接大概多少个rmi服务,每个服务峰值连接多少,当然这个限制可以修改

时间: 2025-01-31 12:04:52

RMI连接问题的相关文章

java rmi连接远程主机问题

问题描述 java rmi连接远程主机问题 问题是这样的,通过rmi来实现分布式通信,用的是20112端口,在本地实现的时候是没问题的,但是部署到主机(亚马逊云机,供外访问ip:54.**.72.52,内部IP是10.0.3.9,有防火墙,但是已经打开20112和20110端口),就不能访问了,错误 java.rmi.ConnectionException:Connetcion refused to host:10.0.3.9;nested exception: java.net.conneti

rmi 连接远程服务器 取access数据库

问题描述 rmi 连接远程服务器 取access数据库 5C 前提 : 外網 的工程 取 ------------------------內網的access 數據庫的數據.1.同一网段的局域网 连接 可以用, 能取到数据 2.外网连接 内网,我做了端口映射 具体 代码如下: 我先問問 是我少些了什麼了么? 沒用過rmi技術. 端口8162 是內網端庫映射,給外網取數據用的 String s1;String s2;ArrayList pagList = new ArrayList();Page p

java rmi连接本机问题

问题描述 java rmi连接本机问题 代码如下,然后就运行不出来Naming.rebind之后的那句sysout.也没有异常就是不运行,等了好几分钟还是运行不出来 try { System.out.println("start active server..."); FinanceAccountDataService financeAccountDataService = new FinanceAccountDataImpl(); FinanceReportDataService f

J2EE探索者:用JMS进行企业消息传递[Z]

j2ee 在本期的J2EE探索者( J2EE pathfinder)中,Java 开发者和咨询顾问Kyle Gabhart 解释了为什么消息服务对于企业的体系结构来说是至关重要的,您的解决方案必须克服什么类型的障碍,以及 除了Java消息服务(Java Message Service ,JMS)之外,还有哪些替代的解决方案.在本文的结尾,他分析了三种可用的解决方案(简单JMS客户机(Simple JMS Client).结合JMS使用的会话bean, 以及消息驱动bean),并且提供了一些特定的

停止启用了安全性的WAS Server而不手动输入密码之第二种选择

停止启用了安全性的WAS Server而不手动输入密码之第二种选择 众所周知的应当是如下最简单的方式了 %PROFILE_HOME%/bin/stopServer.bat serverXyz -username Xyz -password Xyz 但是用户名与密码全是明文了,在某些场景下可能不太符合 现在给出第二种选择方法 set PROFILE_HOME=D:/IBM/WebSphere/AppServer/6.1/profiles/AppSrvSingle cd %PROFILE_HOME%

Ehcache详细解读(转)

Ehcache 是现在最流行的纯Java开源缓存框架,配置简单.结构清晰.功能强大,最初知道它,是从Hibernate的缓存开始的.网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行google:对于API,官网上介绍已经非常清楚,请参见官网:但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍和分析EhCache的特性,加上一些自己的理解和思考,希望对缓存感兴趣的朋友有所收获.   一.特性一览,来自官网,简单翻译一下:   1.快速轻量过去

Ehcache详细解读(转)

Ehcache 是现在最流行的纯Java开源缓存框架,配置简单.结构清晰.功能强大,最初知道它,是从Hibernate的缓存开始的.网上中文的EhCache材料 以简单介绍和配置方法居多,如果你有这方面的问题,请自行google:对于API,官网上介绍已经非常清楚,请参见官网:但是很少见到特性说明和对实现 原理的分析,因此在这篇文章里面,我会详细介绍和分析EhCache的特性,加上一些自己的理解和思考,希望对缓存感兴趣的朋友有所收获.   一.特性一览,来自官网,简单翻译一下:   1.快速轻量

CMS gc调整实践(续)

  在初步确定CMS参数后,系统运行了几天,今天尝试在线上打开了GC日志,按阿宝同学的说法是gc日志的开销比之jstat还小,打开之后发现确实影响很小.打开GC日志之后又发现几个隐藏的问题比较有价值,这里记录下.    首先是系统在启动的时候有一次System.gc()调用引起的full gc,日志输出类似这样: 1.201: [Full GC (System) 1.201: [CMS: 0K->797K(1310720K), 0.1090540 secs] 29499K->797K(1546

比较CORBA与RMI

我们已经知道,CORBA的一项主要特性就是对RPC(远程过程调用)的支持.利用这一技术,我们的本地对象可调用位置远程对象内的方法.当然,目前已有一项固有的Java特性可以做完全相同的事情:RMI(参考第15章).尽管RMI使Java对象之间进行RPC调用成为可能,但CORBA能在用任何语言编制的对象之间进行RPC.这显然是一项很大的区别. 然而,可通过RMI调用远程.非Java代码的服务.我们需要的全部东西就是位于服务器那一端的.某种形式的封装Java对象,它将非Java代码"包裹"于