Weblogic server是ADMIN状态

来源:互联网 发布:linux 用户组命令 编辑:程序博客网 时间:2024/05/01 21:18
Here we are going to see a Scenario which is very common but troublesome. Many times we observe that while trying to restart the Managed Servers the Servers move to ADMIN State rather than moving to the RUNNING State.  This usually happens  If it is unable to activate some of the Modules which are deployed on this Server. usually it happens If any Application is Not getting activated properly or a Datasource or JTA recovery or a JMS System / SubSystem is not getting activated properly then also it moves into the Admin State. So To find out the Root cause we need to keenly observer the Logs. Specially we need to check what configuration changes we made on the Server recently.

More Alerts On the same Monitoring:  http://middlewaremagic.com/weblogic/?p=5838

Most Probable Cause: Most of the cases it happens if any of the Database is down and WebLogic tries to create the Connection Pool at the boot up time.  One way to avoid this kind of scenario is to set the InitialCapacity of the DataSource to  0 (Zero) so that weblogic will not try to create any JDBC Connection object at the start up time so like this we can avoid Connection creation failure conditions and avoid moving our server to ADMIN State.

NOTE: We have an option to forcibily move our WLS Server to the RUNNING State (from ADMIN State) which works almost 80% cases….Still it is must that we find the root cause of Why the Server is moving to ADMIN State.  So please consider this article as a Workaround …And not as a solution. Because even if we can bring our server in RUNNING state …still we have to find out why the Server Moved to ADMIN State.

In this Demonstration we will see a simple WLST script which will check if any of the server present inside Domain is in ADMIN State or not?  If YES then it will try to force them to move to RUNNING State.

Step1). Create a Directory somewhere in your file system like :  “C:\WLST_AdminStateCheck”

Step2). Write a Properties file “domain.properties” inside “C:\WLST_AdminStateCheck” like following:
domain.name=7001_Plain_Domainadmin.url=t3://localhost:7001admin.userName=weblogicadmin.password=weblogic1totalServersToMonitor=2server.1.url=t3://localhost:7001server.2.url=t3://localhost:7003

Step3). Write the  WLST Script “serverAdminState.py” inside “C:\WLST_AdminStateCheck” directory.

############################################################################### @author Copyright (c) 2010 - 2011 by Middleware Magic, All Rights Reserved.##############################################################################from java.io import FileInputStreampropInputStream = FileInputStream("domain.properties")configProps = Properties()configProps.load(propInputStream)domainName=configProps.get("domain.name")adminURL=configProps.get("admin.url")adminUserName=configProps.get("admin.userName")adminPassword=configProps.get("admin.password")totalServerToMonitor=configProps.get("totalServersToMonitor")i=1while (i <= int(totalServerToMonitor)) :url=configProps.get("server."+ str(i)+".url")connect(adminUserName,adminPassword,url)serverRuntime()state=cmo.getState()name=cmo.getName()if state == 'ADMIN' :print "ALERT::::::::Server Name: " + name + " Is currently in State: " + statetry:print 'Resuming Server: .....'cmo.resume()print "Server: "+name +"Moved to State : " + cmo.getState()except:print "NOTE:::::::::Unable to Move Server: " + name + " To good State"else:print ''print ''print "GOOD::::::::> Server Name: " + name + " Is currently in State: " + state + '                     <img src="http://middlewaremagic.com/weblogic/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"> 'i = i + 1


Step4). Run the “. ./setWLSEnv.sh” by adding two DOTs separated by a single space …..before the actual script like following : (use ‘cd’ command to move inside the <BEA_HOME>/wlserver_10.3/server/bin) then run the following command….
.  ./setWLSEnv.sh

Note: the first DOT represents that set the Environment in the current Shell, AND the second ./ represents execute the script from the current directory.

Step5). Now run the WLS Script like following:


java weblogic.WLST serverAdminState.py


Following would be the output:

java weblogic.WLST serverAdminState.pyInitializing WebLogic Scripting Tool (WLST) ...Welcome to WebLogic Server Administration Scripting ShellType help() for help on available commandsConnecting to t3://localhost:7001 with userid weblogic ...Successfully connected to Admin Server 'AdminServer' that belongs to domain '7001_Plain_Domain'.Warning: An insecure protocol was used to connect to theserver. To ensure on-the-wire security, the SSL port orAdmin port should be used instead.Location changed to serverRuntime tree. This is a read-only tree with ServerRuntimeMBean as the root.For more help, use help(serverRuntime)GOOD::::::::> Server Name: AdminServer Is currently in State: RUNNING                     <img src="http://middlewaremagic.com/weblogic/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley">Connecting to t3://localhost:7003 with userid weblogic ...Successfully connected to managed Server 'ManagedServer-1' that belongs to domain '7001_Plain_Domain'.Warning: An insecure protocol was used to connect to theserver. To ensure on-the-wire security, the SSL port orAdmin port should be used instead.ALERT::::::::Server Name: ManagedServer-1 Is currently in State: ADMINResuming Server: .....Server: ManagedServer-1Moved to State : RUNNING


Regards,
Jay SenSharma
转载自:http://middlewaremagic.com/weblogic/?p=6407
原创粉丝点击