Время ожидания сценария wsadmin при выполнении против DMGR через SOAP

Я пытаюсь запустить и остановить приложение на одной JVM через консоль wsadmin, поскольку веб-интерфейс для IBM BPM PS Adv. не допускает такой операции. Итак, у меня есть следующий скрипт:

https://gist.github.com/predatorian3/b8661c949617727630152cbe04f78d7e

и когда я запускаю его против DMGR с сотового хоста, я получаю следующие ошибки.

[wasadmin@server01 ~]$ cat /usr/local/bin/Run_wsadmin.sh
#!/bin/bash
#
#
#

/opt/IBM/WebSphere/AppServer/bin/wsadmin.sh -lang jython -user serviceAccount -password password $*

[wasadmin@cessoapscrt00 ~]$ time Run_wsadmin.sh -f /opt/IBM/wsadmin/wsadmin_Restart_Application.py WPS00 CRT00WPS01 redirectResource_war
WASX7209I: Connected to process "dmgr" on node CRTDMGR using SOAP connector;  The type of process is: DeploymentManager
WASX7303I: The following options are passed to the scripting environment and are available as arguments that are stored in the argv variable: "[WPS00, CRT00WPS01, redirectResource_war]"
WASX7017E: Exception received while running file "/opt/IBM/wsadmin/wsadmin_Restart_Application.py"; exception information: com.ibm.websphere.management.exception.ConnectorException
org.apache.soap.SOAPException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Read timed out; targetException=java.net.SocketTimeoutException: Read timed out]


real    3m21.275s
user    0m17.411s
sys     0m0.796s

Итак, я не указываю типы подключения, а использую значение по умолчанию, то есть SOAP. Однако при читая о других типах подключения, ни один из них не кажется лучше, но я приписываю это расплывчатости документации IBM. Есть ли возможность увеличить периоды ожидания тайм-аута или отключить его, или есть лучший тип подключения?

Кроме того, запустив это непосредственно на консоли wsadmin, кажется, что он зависает при сборе строки диспетчера приложений.

[wasadmin@server01 ~]$ Run_wsadmin.sh
WASX7209I: Connected to process "dmgr" on node CRTDMGR using SOAP connector;  The type of process is: DeploymentManager WASX7031I: For help, enter: "print Help.help()"
wsadmin>appManager = AdminControl.queryNames('cell=CRTCELL,node=WPS00,type=ApplicatoinManager,process=CRT00WPS01,*')
WASX7015E: Exception running command: "appManager = AdminControl.queryNames('cell=CRTCELL,node=WPS00,type=ApplicationManager,process=CRT00WPS01,*')"; exception information:
 com.ibm.websphere.management.exception.ConnectorException
org.apache.soap.SOAPException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Read timed out; targetException=java.net.SocketTimeoutException: Read timed out]

wsadmin>

person FilBot3    schedule 30.06.2016    source источник
comment
Вы уверены, что имена ячеек, узлов, серверов верны? И этот узел и сервер запущены и работают?   -  person Gas    schedule 30.06.2016
comment
Да, когда я ищу эти процессы, они появляются. Скрипт работал до тех пор, пока не было установлено определенное приложение.   -  person FilBot3    schedule 30.06.2016


Ответы (3)


Вы можете увеличить значение времени ожидания в {profile}/properties/soap.client.props.

com.ibm.SOAP.requestTimeout=180
person sozkul    schedule 30.06.2016
comment
Я исправил свою орфографию, и все еще были тайм-ауты. Однако могу ли я добавить параметр -javaoption "-Dcom.ibm.SOAP.requestTimeout=0" в аргумент командной строки или он должен быть в файле конфигурации? - person FilBot3; 30.06.2016

Если вы хотите отключить тайм-аут, измените com.ibm.SOAP.requestTimeout=0. Или, если вы хотите увеличить тайм-аут, вы можете изменить значение 180 на другое. Также о вашей команде запроса я заметил, что у вас есть опечатка в типе MBean, у вас был тип = ApplicatoinManager, он должен быть типом = ApplicationManager

person Juniarti Suryakusuma    schedule 30.06.2016
comment
Я исправил свою орфографию, и все еще были тайм-ауты. Однако могу ли я добавить параметр -javaoption "-Dcom.ibm.SOAP.requestTimeout=0" в аргумент командной строки или он должен быть в файле конфигурации? - person FilBot3; 30.06.2016

ЗДЕСЬ - У меня была такая же проблема. Я хочу временно переопределить поддержку тайм-аута. Это сработало как чемпион. Убедитесь, что вы точно выполнили следующие шаги. Я сделал несколько ошибок, и реквизит не прошел, я разобрался, и он работает.

Скопируйте файл soap.client.props из /properties и дайте ему новое имя, например mysoap.client.props. Отредактируйте mysoap.client.props и обновите значение com.ibm.SOAP.requestTimeout по мере необходимости. Создайте новый файл свойств Java soap_override.props и введите следующую строку: com.ibm.SOAP.ConfigURL=file:/mysoap.client. props Передайте soap_override.props в wsadmin с помощью параметра -p: wsadmin -p soap_override.props...

ССЫЛКА: https://www.ibm.com/developerworks/community/blogs/timdp/entry/avoiding_wsadmin_request_timeouts_the_neat_way32?lang=en

person dheeraj    schedule 16.02.2017