2013-08-06 111 views
0

在Weblogic 12.1.2中,我可以使用属性RMI_TIMEOUT(“weblogic.jndi.responseReadTimeout”)或RESPONSE_READ_TIMEOUT(“weblogic.jndi.responseReadTimeout”)在我的RMI连接中设置超时。但在weblogic 12.1.1他们不工作(因为他们不存在)。Weblogic rmi timeout timeout not working

看到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超时,所以我需要我的应用程序从这个其他服务是独立的,让它更加坚固。

回答

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原始版本中不存在。它在补丁应用后变为可用。

#EDITED

如果我使用WebLogic专有的API,RMI超时工作在任何版本:

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

Context context = env.getInitialContext(); 

希望它可以帮助别人。 Tiago