2014-10-07 8 views
1

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

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

<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> 

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

+1

У меня такая же проблема в Windows. Один сервер администратора, один хост, и он всегда подключается к второй попытке. Поддержка Oracle не помогла, поэтому нам буквально пришлось добавить логику в наши скрипты, чтобы поймать исключение и попытаться снова подключиться ... удача –

ответ

1

У меня была та же проблема на 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

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

+0

Сладкий, спасибо.Пробовал это один раз, и результат был успешным. – pkauko

0

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

+0

Файл хостов выглядит нормально, есть только одна запись для имени хоста и ip сервера. В журнале сервера содержится строка о закрытии сокета с соответствующим IP-адресом, и после grepping журнала мне кажется, что они произошли только тогда, когда я попытался подключиться, поэтому запрос отправляется на сервер. Я не уверен, что порт admin или любые t3 (s) соединения попадают в access.log. У меня нет балансировки нагрузки для используемого IP-адреса. Я пробовал telnet к порту с нескольких компьютеров и работает в 100% случаев. Я рассмотрю возможность запуска дампа TCP во время тестирования. Спасибо за предложения. – pkauko