`

解决RMI调用timeout的问题

 
阅读更多
最近遇到一个问题, 某系统, 有外部系统通过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


分享到:
评论

相关推荐

    rmi简单例子

    根据提供的文件信息,本文将详细解释RMI(远程方法调用)的概念、工作原理以及一个简单的RMI示例。RMI是一种Java技术,允许在不同的Java虚拟机(JVM)之间进行远程过程调用。 ### RMI简介 RMI是Java平台提供的一种...

    EJB超时调用

    7. **监控与报警**:使用日志监控和报警工具(如ELK Stack、Prometheus、Grafana等)监控EJB调用的超时情况,及时发现并解决问题。 理解EJB超时调用并有效处理是保障企业级应用稳定性和效率的重要方面。通过合理...

    Dubbo常见面试题及答案汇总

    QoS参数主要涉及服务的性能和稳定性,包括`timeout`(超时时间)、`retries`(重试次数)、`actives`(最大并发调用数)等,它们有助于控制服务调用的行为。 以上只是Dubbo面试中的一部分常见问题,涵盖Dubbo的...

    Dubbo面试题(2020最新版).pdf

    * Dubbo提供了多种超时设置方式,包括ConnectionTimeout、Timeout等 * 超时设置可以根据实际情况选择和配置 Dubbo的通信协议: * Dubbo支持多种通信协议,包括Dubbo、RMI、HTTP等 * 通信协议可以根据实际情况选择...

    dubbo的xsd文件

    在这个例子中,`interface`指定了服务的接口全限定名,`version`是服务版本,`ref`是服务实现的Bean引用,`timeout`参数定义了服务调用的超时时间。 此外,Dubbo的XSD文件还支持扩展,这意味着可以通过自定义标签来...

    Dubbo使用示例

    例如,可以通过`timeout`属性设置服务调用的超时时间,通过`retries`控制重试次数,通过`failfast`、`fallback`或`failsafe`策略应对失败情况。 总的来说,Dubbo作为一个强大的RPC框架,不仅简化了分布式服务的开发...

    04.1、微服务--dubbo(41题)1

    8. Consumer端可配置属性:如timeout、retries、loadbalance和actives。 9. 启动时检查:Dubbo默认在启动时检查依赖服务,不可用时会抛出异常,可通过check="false"关闭此检查。 10. 序列化框架:推荐使用Hessian,...

    dubbo面试题dubbo面试题

    在服务提供者或消费者端,可以通过`timeout`属性设置超时时间,单位为毫秒。 7. **Dubbo如何实现服务容错?** Dubbo提供了多种容错策略,如Failsafe(失败安全)、Failfast(快速失败)、Failover(失败重试)、...

    Dubbo手册.pdf

    1) timeout:方法调用超时时间 2) retries:失败重试次数,默认2次 3) loadbalance:负载均衡算法,默认随机 4) actives:消费者端最大并发调用限制 【Dubbo启动时依赖服务不可用会怎样?】 默认情况下,Dubbo在...

    dubbo+zookeeper 客户端所需jar包

    <dubbo:consumer timeout="3000" check="false" /> ``` 这里的`<dubbo:registry>`指定了Zookeeper的地址,`<dubbo:reference>`定义了服务引用,`interface`是服务接口名,`version`是服务版本号。 最后,通过启动...

    Java-Network-Programming-and-Distributed-Com.rar_java network_ja

    4. **套接字选项**:如SocketOptions,用于配置和获取Socket的属性,例如SO_TIMEOUT用于设置超时。 5. **高级网络API**:如NIO(Non-blocking I/O)和NIO.2,它们提供了一种更有效处理大量连接的方式,特别是对于...

    dubbo.xsd资源

    7. **配置元素与属性**:dubbo.xsd文件中定义了如、、、等配置元素,以及各个元素下的属性,如interface、version、group、timeout、retries等,这些都是编写正确Dubbo配置文件的关键。 8. **服务监控(Monitor)**...

    淘淘商城的dubbo.xsd文件

    4. **服务元数据**:服务的元数据包括服务名(service)、版本号(version)、分组(group)、超时时间(timeout)、重试次数(retries)等,这些信息用于服务的识别和管理。 5. **负载均衡策略**:配置文件可能...

    2010阿里巴巴校园招聘最新笔试题(java软件工程师)

    还有一个带超时参数的`wait(long timeout)`版本,可以让线程在指定的时间后自动唤醒。 2. **Servlet**: Servlet是Java Web开发中的关键组件,用于处理HTTP请求。在Eclipse中创建Servlet类时,通常会继承`...

    Java面试资料之Dubbo相关

    - timeout:方法调用超时时间 - retries:失败重试次数,默认2次 - loadbalance:负载均衡策略,默认随机 - actives:消费者端的最大并发调用限制 13. **Dubbo启动时服务不可用的处理?** 如果在启动时依赖的...

    dubbo.xsd分布式dubbo的约束文件

    `dubbo.xsd`定义了`reference`元素来表示消费者,其中的`timeout`、`retries`等属性可以控制消费者的调用行为。 3. **注册中心(Registry)配置**: 注册中心是Dubbo服务发现的关键,`dubbo.xsd`定义了`registry`...

    史上最全 40 道 Dubbo 面试题及答案

    12. **Provider 对 Consumer 的影响**:在 Provider 端可以配置 Consumer 端的属性,如超时时间(timeout)、重试次数(retries)、负载均衡策略(loadbalance)和最大并发调用限制(actives)。 13. **服务不可用...

    dubbo的.xsd文件分享

    接着,`dubbo.xsd`中的`<dubbo:reference>`元素则用于声明服务消费者,它包含了与`<dubbo:service>`类似的属性,但更多的是消费者端的配置,如timeout、retries、loadbalance等,这些参数直接影响到服务调用的性能和...

Global site tag (gtag.js) - Google Analytics