2013-08-06 151 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