Тайм-аут WebLogic RMI не работает
В 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, потому что я получаю доступ к внешней службе, которая иногда не отвечает, поэтому мне нужно, чтобы мое приложение было независимым от этой другой службы и сделало его более надежным.
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();
Надеюсь, это поможет кому-то. Tiago