Тайм-аут 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

Другие вопросы по тегам