WLST-соединение с административным портом всегда прерывается с первой попытки

В нашей общедоступной среде тестирования первая попытка подключения в WLST всегда заканчивается неудачей. Тогда вторая попытка всегда работает и соединение установлено. Я не смог найти ничего похожего с помощью Google, поэтому я надеюсь, что кто-то здесь может помочь.

С первой попытки я получаю;

<Oct 7, 2014 1:49:03 PM EEST> <Info> <Security> <BEA-090905> <Disabling CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true>
<Oct 7, 2014 1:49:03 PM EEST> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG to FIPS186PRNG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true>
Traceback (innermost last):
File "<console>", line 1, in ?
File "<iostream>", line 22, in connect
File "<iostream>", line 653, in raiseWLSTException
WLSTException: Error occured while performing connect : Error getting the initial context. There is no server running at t3s://xxx.xxx.xxx.xxx:nnnn

dumpStack () показывает следующее;

javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://xxx.xxx.xxx.xxx:nnnn: Destination unreachable; nested exception is:
    java.net.SocketException: Write failed: Broken pipe; No available router to destination]
javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://xxx.xxx.xxx.xxx:nnnn: Destination unreachable; nested exception is:
    java.net.SocketException: Write failed: Broken pipe; No available router to destination]

После этого я пытаюсь подключиться снова, и это происходит;

Connecting to t3s://xxx.xxx.xxx.xxx:nnnn with userid adminuserid ...
Successfully connected to Admin Server 'ourTestServer' that belongs to domain 'ourTestDomain'.

Я пробовал это примерно 10 раз, и он всегда делает то же самое, первая попытка не удалась, а вторая попытка работает. Каждый раз, когда я использовал IP, а не имя для адреса. Это в Linux (RHEL6) с WLS 10.3.6 с последними обновлениями безопасности.

Я предполагаю, что эта строка из журнала сервера связана, поскольку это происходит через 29 секунд после информационных строк, опубликованных выше;

####<Oct 7, 2014 1:49:32 PM EEST> <Warning> <Socket> <machinename.domain.local> <ourTestServer> <[ACTIVE] ExecuteThread: '19' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1412678972504> <BEA-000449> <Closing socket as no data read from it on xxx.xxx.xxx.xxx:nnnn during the configured idle timeout of 25 secs>

Я в растерянности, так как неизменно первая попытка терпит неудачу, а вторая попытка работает.

2 ответа

Решение

У меня была такая же проблема на WebLogic 11g, работающем на RHEL 6.5. Этот небольшой фрагмент перед запуском wlst.sh обошел меня (разделите другие свойства пробелами, если они вам нужны):

export WLST_PROPERTIES="-Djava.security.egd=file:/dev/./urandom"

Или вы можете добавить эквивалент к своей командной строке, если вы не используете сценарий wlst.sh для запуска JVM.

Я нашел ответ здесь: https://community.oracle.com/thread/1036828?start=0&tstart=0

Это очевидно сводится к проблеме с генератором случайных чисел на машинах с "низкой энтропией". См. Раздел 11.28.8. http://docs.oracle.com/cd/E14571_01/doc.1111/e14773/weblogic_server_issues.htm

Моя рассматриваемая серверная машина в настоящее время очень слабо используется, так что это имеет смысл.

Можете ли вы попробовать запустить дамп TCP, пока делаете это. Есть ли какой-то балансировщик нагрузки, потому что кажется, что у вас 50% сбой, и это соответствует. Также проверьте запись access.log для этого и посмотрите, действительно ли вы можете связаться с сервером. Еще одна вещь, которую вы можете попробовать - это посмотреть файл /etc/hosts и посмотреть, какие записи присутствуют для вашего имени хоста.

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