0 0

RMI连接问题10

先贴下异常信息:
Lookup of RMI stub failed; nested exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
        java.net.SocketException: Connection reset
org.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 more
Caused 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


$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256619
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10240
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

这是nofile已经做了设置了,tcp连接多了,貌似会报can't open too mary file的错,这个帖子好像没帮助

还有看看服务器防火墙是不是也做了限制


问题补充:
suziwen 写道
看看这个或许有帮助

http://blog.csdn.net/guowake/article/details/6615728

还有看看服务器防火墙是不是也做了限制



这防火墙的限制怎么查看呢

问题补充:
wangqj 写道
linux默认1024个连接

大概多少个rmi服务,每个服务峰值连接多少,当然这个限制可以修改



你说的1024个连接时哪种连接呢,

我就发布了12个RMI服务,第13个就报错了,好像跟连接数没有关系似的,连接应该不超过1024,

下面是linux ulimit -a 命令看到的
$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256619
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10240
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited



问题补充:
wangqj 写道

当你发布第13个的时候,telnet一下是否有问题,是不是端口被占用了?你的异常是客户端报的,你看服务端是否启动了?有没有什么异常


发布到第13个的时候,服务启动没有报错,客户端掉用这些服务就会报错,
同一个服务有的客户端可以正常访问,有的客户端端访问报了我贴的异常,

telnet端口是连上后马上断掉。可以正常连接的端口是不会马上断掉的。
2012年3月08日 09:45

3个答案 按时间排序 按投票排序

0 0

采纳的答案

看看这个或许有帮助

http://blog.csdn.net/guowake/article/details/6615728

还有看看服务器防火墙是不是也做了限制

2012年3月08日 09:59
0 0


当你发布第13个的时候,telnet一下是否有问题,是不是端口被占用了?你的异常是客户端报的,你看服务端是否启动了?有没有什么异常

2012年3月08日 17:19
0 0

linux默认1024个连接

大概多少个rmi服务,每个服务峰值连接多少,当然这个限制可以修改

2012年3月08日 15:52

相关推荐

    web服务器 RMI meeting

    5. 故障排查和监控,如何诊断RMI连接问题,以及如何收集和分析性能指标以改进系统。 在文件"20093356谭进仕"中,可能会包含这次会议的详细记录、技术报告或者是一个案例研究,涵盖了上述话题的具体实现和经验分享。...

    使用RMI建立数据库连接池

    通过这种方式,我们可以利用RMI创建一个跨网络的数据库连接池服务,使得客户端可以高效地共享和管理数据库连接,而无需直接维护这些连接。这样的设计提高了系统的可扩展性和可靠性,同时也降低了资源消耗。在"myPool...

    JMX以RMI方式连接的场景示例

    JMX以RMI方式连接的场景示例 JMX(Java Management Extensions)是一种Java技术,用于管理...JMX框架提供了一种灵活、可扩展和高效的方式来管理和监控应用程序,而RMI连接方式允许远程客户端访问MBean提供的管理功能。

    使用RMI远程连接JVM.用JMX获取JVM的参数

    然后,客户端通过RMI连接到服务器的JMX代理,使用JMX API来查询或操作MBean。例如,你可以获取内存使用情况、线程状态、垃圾回收器信息等。在实际应用中,这有助于进行性能监控、故障排查和资源优化。 在开发过程中...

    rmi 连接多 IP 多服务端自动路由

    "rmi 连接多 IP 多服务端自动路由"这个主题涉及到如何在RMI环境中实现高可用性和容错性,当服务端在一个IP地址上不可用时,客户端能自动切换到其他IP上的服务实例。 首先,我们要理解RMI的基本工作原理。RMI系统由...

    Rmi示例 Rmi代码示例

    - **异常处理**:RMI调用可能遇到网络中断、远程对象不存在等问题,因此客户端需要适当地捕获和处理`java.rmi`包下的异常,如`RemoteException`。 3. **RMI通信机制**: - **marshalling**与**unmarshalling**:...

    JAVA RMI 传输 SSL加密

    - 客户端需要知道服务器的IP地址和端口号,然后使用相同的`SslRMIClientSocketFactory`创建连接,以确保安全的RMI通信。客户端将通过调用服务器上的Service来建立连接。 以下是一个简单的例子,展示了如何在同一台...

    Java RMI 例子 和一些常见问题

    以下是对Java RMI的详细解释以及一些常见问题的解答。 ### 1. RMI基本概念 RMI的核心是远程接口(Remote Interface),它定义了可以在远程对象上调用的方法。这些方法的实现位于远程服务器上,客户端通过调用这些...

    基于JAVA RMI的聊天室

    - **客户端(Client)**: 客户端通过RMI连接到服务器,获取远程对象实例,并调用其方法来发送和接收消息。客户端可能包含用户界面,如GUI,用于输入和显示聊天内容。 ### 3. 图形界面 这个聊天室项目还包含了图形...

    java rmi 参考文档

    客户端连接到服务器,并请求执行某个方法。对于客户端来说,远程方法就像是本地方法。 3. **对象注册表(Object Registry)**:这是一个程序,用于注册服务器上的对象。对象注册表通常运行在一个已知端口上(默认为...

    spring中使用RMI

    通过Spring的配置,我们可以轻松地在客户端和服务器之间建立连接,实现远程方法调用,提高应用的可扩展性和灵活性。理解并熟练运用Spring的RMI支持,对于构建大型、分布式的企业级应用至关重要。

    Spring RMI

    - **RMI超时设置**:可以配置RMI连接和操作的超时时间,防止因网络延迟导致的应用阻塞。 - **RMI缓存**:客户端可以缓存远程对象的引用,减少重复的远程查找操作。 - **负载均衡**:通过RMI注册表,可以将请求分发到...

    RMI

    3. **注册表(Registry)**:RMI注册表是服务定位器,它提供了一个简单的命名服务,客户端可以通过它查找并连接到远程对象。 **RMI的工作流程** 1. **服务器端**:创建远程对象实例,将其绑定到RMI注册表,指定一...

    spring RMI简单例子

    确保客户端和服务器之间的网络连接畅通。 这个简单的例子展示了Spring RMI的基本用法,但实际应用中可能需要考虑更多因素,如安全性、事务管理、异常处理等。通过Spring RMI,我们可以轻松地构建可扩展的分布式系统...

    精通RMI程序代码

    - **异常处理**:RMI中的异常通常包括网络连接问题、对象不存在、版本不匹配等,需要适当地捕获和处理。 - **RMI与EJB的结合**:EJB(Enterprise JavaBeans)是Java EE的一部分,RMI常用于EJB组件之间的通信,尤其...

    RMI远程下载文件

    `FileClient`可能包含一个方法,如`downloadFromServer(String serverURL, String fileName)`,它通过RMI连接到指定的服务器URL,然后调用`FileInterface.downloadFile(fileName)`来开始下载。 5. **FileImpl_Stub....

    rmi_java项目实例

    - 客户端通过查找远程对象的引用(stub)与服务器建立连接。 - 客户端调用远程接口的方法,这个调用会被stub捕获。 - stub序列化调用参数,并通过网络发送给服务器。 - 服务器端的RMISkeleton接收到消息,反序列...

    java RMI技术实现的网络聊天室

    RMI注册表负责存储远程对象的引用,使得客户端能够找到并连接到它们。 3. **聊天室服务器**:`chatserver`可能是这个项目的服务器端程序,它包含RMI服务器的实现,包括创建远程对象,注册到RMI注册表,并处理来自...

    Ehcache RMI Replicated Cluster(RMI集群)

    2. **启动RMI服务**:在每个节点上,需要启动RMI注册服务器,这样其他节点才能找到并连接到它。这可以通过调用`java.rmi.registry.LocateRegistry.createRegistry(port)`来完成。 3. **创建RMI绑定**:接着,每个...

Global site tag (gtag.js) - Google Analytics