1

在 Weblogic 12.1.2 中,我可以使用属性 RMI_TIMEOUT ("weblogic.jndi.responseReadTimeout") 或 RESPONSE_READ_TIMEOUT ("weblogic.jndi.responseReadTimeout") 在我的 RMI 连接中设置超时。但是在weblogic 12.1.1 中它们不起作用(因为它们不存在)。

请参阅 API:http ://docs.oracle.com/middleware/1212/wls/WLAPI/weblogic/jndi/WLContext.html

奇怪的是,RMI_TIMEOUT 在 12.1.2 中已弃用,但在 WEBLOGIC 12.1.1 中不存在,请参阅:http ://docs.oracle.com/cd/E13222_01/wls/docs100/javadocs/weblogic/jndi/ WLContext.html

尽管如此,我都尝试了(和其他属性),但它们都没有在 weblogic 12.1.1 中工作(它们只在 12.1.2 中工作)。

我无法迁移到 weblogic 12.1.2,因为它需要 java 7,我现在无法更改它。

任何帮助将不胜感激,在此先感谢。

观察:我需要设置 RMI 超时,因为我访问的外部服务有时不响应,所以我需要我的应用程序独立于其他服务并让它更健壮。

4

1 回答 1

1

我找到了解决方案。

我们必须应用 weblogic 补丁(从 weblogic 12.1.1 到 weblogic 12.1.1.0.5)。

在 12.1.1.0.5 中,我可以访问 RMI_TIMEOUT 属性。这就是它在 12.1.2 中被弃用的原因,即使它在 12.1.1 原始版本中不存在。应用补丁后即可使用。

# 已编辑

如果我使用 weblogic 专有 API,则 rmi 超时适用于任何版本:

Environment env = new Environment();
env.setProviderUrl("");
env.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
env.setRMIClientTimeout(30000L);

Context context = env.getInitialContext();

希望它可以帮助某人。蒂亚戈

于 2013-08-07T17:51:58.983 回答