最近遇到一个问题, 某系统, 有外部系统通过RMI调用来访问此系统. 现在有一个问题是, 如果当此系统某调用花费时间过长, 那么就需要使此次调用timeout. 而默认地, timeout的时间是2小时, 现在需要找到一种办法缩短这个时间.
解决办法
查阅资料发现, 可以设置sun.rmi.transport.tcp.responseTimeout(Java1.4 and above)来达到这个效果. 在Sun RMI上测试通过.
测试方法, 首先, 让某remote method执行2分钟左右, 模拟一个long time method.
1 public void aMethod() throws RemoteException {
2
3 //long time op.
4 try {
5 Thread.sleep(100000L);
6 }catch (Exception e) {
7 e.printStackTrace();
8 }
9
10 System.out.println("It's a long time method.");
11
12 }
在客户端执行调用的时候使用如下代码, 则可以避免2分钟的调用等待, 使其尽快timeout, 释放资源.
1 java -Dsun.rmi.transport.tcp.responseTimeout=50 mongoose.TestClient
相关资料
Re: Is there timeout parameter
Re: socket timeouts taking 2 hours
FAQ of RMI
Does RMI have a timeout period...
Connection reset
sun.rmi Properties
分享到:
相关推荐
Spring-RMI (RMI调用, HTTP调用) 本人测试过了
RMI远程方法调用RMI远程方法调用RMI远程方法调用RMI远程方法调用RMI远程方法调用
RMI采用JRMP(Java Remote Method Protocol)通讯协议,是构建在TCP/IP协议上的一种远程调用方法。它允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象方法,从而使编程人员可以方便地在网络环境...
这个是基于C#的 RMI远程方法调用 这个是基于C#的 RMI远程方法调用这个是基于C#的 RMI远程方法调用
rmi调用架构设计
最近在学习代理模式,用到了java rmi远程调用,包含服务端和客户端,之前一直没有接触过,学习了java rmi远程调用,一方面可以了解代理模式,一方面熟悉java低层的远程
模拟实现分布式RMI调用时间显示,在两台电脑上实现,运用分布式RMI调用和回调,在Windows命令行下操作.
rmi技术客户端调用服务器的函数解决问题 刚刚开始准备这个rmi作业的时候,我都有点无从下手。于是我先开始一起找资料,看书,经过不断的尝试编码,以及总结错误,为后期的工作奠定了基础。 在基础知识基本搞定的...
rmi 远程方法调用 客户端
用JAVA程序实现RMI,实现客户端和服务器间的时间同步,并计算出两端的时间差
RMI简单远程调用,实现数字相加!代码简单易懂
用java的rmi实现的 远程调用。希望对阁下有用
本文档主要讲述的是Java 远程方法调用RMI参数详解;根据RMI参数意义,可以归结为以下几点,我们可以根据这几点通过优化GC, 网络等待,流传输协议(http/rmi special socket)等方面来优化RMI。
有很多关于rmi的调用说明,在最后的运行时总是不太详细,通过多方查阅,写了一段代码,供大家参考,希望对大家有帮助。
RMI是Remote Method Invocation(远程方法调用)的 所写。它允许一个Java程序调用网络中另一台计算机上的Java方法,就如调用本机的方法一样。实现RMI调用的程序和被调用的方法,都必须是Java代码,即客户端和服务器...
RMI远程调用,之前做的Demo希望对大家有所帮助!
rmi远程调用读取文件,以及各种简单的例子
实现java RMI 远程调用,包括 RMIServer RMIClient源码,测试用例。
NULL 博文链接:https://buralin.iteye.com/blog/1389172
spring RMI 远程接口调用 包含服务端客户端程序,可完整运行