gpt4 book ai didi

java - 在客户端寻找 native java CORBA 的超时属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:27 25 4
gpt4 key购买 nike

我正在使用 CORBA (ORB),它Java 自带,没有使用第三方库。

我需要CORBA 客户端超时属性,以便在客户端设置超时并限制连接保持打开的时间量;它应该为所有场景设置,以限制最大请求时间:

  • 正在初始化连接

  • 重新绑定(bind)连接

  • 总请求时间

我通过让服务器 hibernate (在服务器方法逻辑内)进行测试,并且客户端根本没有超时

在网络上很难找到合适的文档;我尝试使用以下所有属性,但无济于事:

aProperties.put("com.sun.CORBA.transport.ORBTCPReadTimeouts", "100:300:3000:20");aProperties.put("com.sun.corba.eetransport.ORBTCPTimeouts", "500:2000:50:1000");aProperties.put("com.sun.corba.ee.transport.ORBWaitForResponseTimeout", 10);

为了更加清晰,在这些属性旁边(上方)使用属性 org.omg.CORBA.ORBInitialHostorg.omg.CORBA.ORBInitialPort.

感谢任何帮助:)

最佳答案

阅读this Oracle blog有关超时的更多信息。这对我帮助很大。

com.sun.corba.ee.impl.orbutil.ORBConstants 中有许多 ORB 配置参数(请注意,这是 GlassFish ORB,而不是 JDK ORB)。与传输超时相关的常量是:

  • TRANSPORT_TCP_TIMEOUTS_PROPERTY

这控制了 ORB 正在读取数据并且没有一次获取所有数据时的重试行为。它是 TcpTimeouts 的一个实例。默认值为 2000:6000:20。

  • TRANSPORT_TCP_CONNECT_TIMEOUTS_PROPERTY

这是与本次讨论相关的内容。它控制 ORB 在尝试连接到 IOR(EJB 引用的有线代表)时在客户端的行为方式。这也是 TcpTimeouts 的一个实例。默认值为 250:60000:100:5000。

  • WAIT_FOR_RESPONSE_TIMEOUT

这控制客户端在成功发送请求后等待响应的时间。默认值为 30 分钟。两个 TcpTimeouts 使用相同的配置语法:

initial:max:backoff[:maxsingle](由 : 分隔的一系列 3 或 4 正十进制整数)

哪里:

  • initial是以毫秒为单位的第一次超时
  • ma​​x 是最大等待时间(在最后一次等待之前,可以超过这次),以毫秒为单位
  • backoff是timeout每次增加的退避因子(乘法实际上是(backoff+100)/100,所以20是 1.2 而 100 是 2,但我们在这里避免使用任何 float )。这通常应该介于 10 到 100 之间。
  • ma​​xsingle 是最大单次等待时间。这是可选的,如果未定义则默认为 Integer.MAX_VALUE。

工作原理如下:

第一次超时持续初始毫秒。每个后续超时都是通过乘以退避因子从前一个获得的(如上所述)超时不能超过 maxsingle 毫秒:一旦达到此值,任何后续超时都具有相同的值。最后一次超时之前花费的总时间小于最大值。注意最后一次超时可能会导致总时间超过max。

关于java - 在客户端寻找 native java CORBA 的超时属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17211436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com