Иногда административная консоль WebSphere Application Server неправильно отображает статус приложения. Требуется установить статус приложения на каждом сервере в кластере. Для этого можно использовать jython-скрипт, на вход которого будет передаваться два параметра – имя приложения и имя кластера.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import time from sys import argv def appStatusOnClusterMember ( clusterName, appName ): global AdminControl global AdminConfig clusterID=AdminConfig.getid('/ServerCluster:'+ clusterName +'/') clusterList=AdminConfig.list('ClusterMember', clusterID) servers=clusterList.split('\n') for serverID in servers: serverName=AdminConfig.showAttribute(serverID, 'memberName') # Prints Only Running Cluster Members aServer = AdminControl.completeObjectName('type=Server,name=' + serverName + ',*') if aServer == '': print '' print 'Server', serverName, 'is DOWN. Please, start the server.' else: aState=AdminControl.getAttribute(aServer, 'state') print '' print 'Server', serverName, 'is in a', aState, 'state' appStatus = AdminControl.queryNames('WebSphere:type=Application,name='+appName+',process='+serverName+',*') if appStatus == '': print 'Application', appName, 'is NOT RUNNING on', serverName else: print 'Application', appName, 'is RUNNING on', serverName #Endif #Endif #Endfor # check the status on each server appName = sys.argv[0] clusterName = sys.argv[1] print '=================================================================================' print 'Cluster', clusterName print '=================================================================================' appStatusOnClusterMember( clusterName, appName ) |
Для того, что бы было удобно вызывать этот jython-скрипт, напишем bash-скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash echo "=================================================================================" echo "This script show an application status on each member of cluster" echo "=================================================================================" echo "Please, enter an application name:" read appname echo "=================================================================================" echo "Please, enter a cluster name:" read clstrname echo "=================================================================================" echo "Starting wsadmin tool..." echo "=================================================================================" cd /opt/ibm/WebSphere/AppServer/profiles/dmgr/bin ./wsadmin.sh -conntype SOAP -host localhost -port 8879 -lang jython -user username -password password -f /home/brateserj/scripts/AppStatus.py $appname $clstrname |
Вместо “username” и “password” необходимо подставить учетную запись пользователя WAS.
Добавить комментарий