wlst script example to manage weblogic server
While managing multiple domains with huge number of managed servers becomes very hard if you don’t have the scripts to manage the server life cycle. Sometimes we need just one server to restart instead of restarting the whole domain post patching a jar or artifact and sometimes you need all the managed servers to be restarted, etc. Same, I had a issue that I needed to check the status of the managed servers in realtime while they were getting started, so I looked through Google and found some scripts in wlst but all of them were not fulfilling my purpose of realtime monitoring of the status of servers while they get started/stopped. I also wanted colored output and progress bar also, so that i can see that which server came up online. I had also requirement of a rolling restart of the servers, so needed to check one server after one server. So for this I wrote below wlst script example to do start, stop, monitor, status check etc of weblogic server.
To fulfill the purpose we need two scripts 1. wlst script(manageServers.py) and 2. Bash script(manageServers.sh) as a wrapper script to wlst script
WLST script manageServers.py
Purpose: start/stop/status check and monitor manage servers life cycle with colored output and progress bar of the lifecycle event
Raw Usage :
java weblogic.WLST manageServers.py -u username -p password -a adminUrl [<hostname>:<port>] -n ServerName -c [stop:start:restart:status:stopall:startall:statusall]
Script :
import sys import os from java.lang import System import sys import os from java.lang import System #Python Script to manage Servers in weblogic server. #This script takes input from command line and executes it. #It can be used to check status,stop,start of applications in weblogic server using weblogic wlst tool. #Company: TechPaste Solutions import getopt #======================== #Usage Section #======================== def usage(): print "Usage:" print "java weblogic.WLST manageServers.py -u username -p password -a adminUrl [:] -n ServerName -c [stop:start:restart:status:stopall:startall:statusall]\n" sys.exit(2) #======================== #Connect To Domain #======================== def connectToDomain(): try: if username != "": connect(username, password, adminUrl) print 'Successfully connected to the domain\n' # else: # connect(userConfigFile=UCF, userKeyFile=UKF, url=admurl) # print 'Successfully connected to the domain\n' except: print 'The domain is unreacheable. Please try again\n' exit() #============================================== #Checking Server Status #============================================== def _serverstatus(ServerName): try: # print 'Server reached:'+ServerName cd('domainRuntime:/ServerLifeCycleRuntimes/'+ServerName); # print 'Cd successful'; # ls(); serverState = cmo.getState() # print 'Server State'+serverState; if serverState == "RUNNING": print 'Server ' + ServerName + ' is :\033[1;32m' + serverState + '\033[0m'; elif serverState == "STARTING": print 'Server ' + ServerName + ' is :\033[1;33m' + serverState + '\033[0m'; elif serverState == "UNKNOWN": print 'Server ' + ServerName + ' is :\033[1;34m' + serverState + '\033[0m'; else: print 'Server ' + ServerName + ' is :\033[1;31m' + serverState + '\033[0m'; return serverState except: print 'Not able to get the' + serverState +'server status. Please try again\n'; print 'Please check logged in user has full access to complete the requested operation on ' +ServerName+ '\n'; exit() #============================================== #Start Server Block #============================================== def _startServer(ServerName): try: cd('domainRuntime:/ServerLifeCycleRuntimes/'+ServerName); cmo.start(); state=_serverstatus(ServerName); while (state!='RUNNING'): state=_serverstatus(ServerName); java.lang.Thread.sleep(5000); except: print 'Error in getting current status of ' +ServerName+ '\n'; print 'Please check logged in user has full access to complete the start operation on ' +ServerName+ '\n'; exit() #============================================== #Stop Server Block #============================================== def _stopServer(ServerName): try: cd('domainRuntime:/ServerLifeCycleRuntimes/'+ServerName); cmo.forceShutdown(); state=_serverstatus(ServerName); while (state!='SHUTDOWN'): state=_serverstatus(ServerName); java.lang.Thread.sleep(5000); except: print 'Error in getting current status of ' +ServerName+ '\n'; print 'Please check logged in user has full access to complete the stop operation on ' +ServerName+ '\n'; exit() #=============================== #Input Values Validation Section #=============================== if __name__=='__main__' or __name__== 'main': try: opts, args = getopt.getopt(sys.argv[1:], "u:p:a:n:c:", ["username=", "password=", "adminUrl=", "ServerName=", "command="]) except getopt.GetoptError, err: print str(err) usage() username = '' password = '' adminUrl = '' ServerName = '' command = '' for opt, arg in opts: if opt == "-u": username = arg elif opt == "-p": password = arg elif opt == "-a": adminUrl = arg elif opt == "-n": ServerName = arg elif opt == "-c": command = arg if username == "": print "Missing \"-u username\" parameter.\n" usage() elif password == "": print "Missing \"-p password\" parameter.\n" usage() elif adminUrl == "": print "Missing \"-a adminUrl\" parameter.\n" usage() elif ServerName == "": print "Missing \"-n ServerName\" parameter.\n" usage() elif command == "": print "Missing \"-c command\" parameter.\n" usage() #======================== #Main Control Block For Operations #======================== def lifecycleMain(): try: if command =='status' : _serverstatus(ServerName); elif command =='stop': state=_serverstatus(ServerName); if state!='SHUTDOWN' : print 'Trying To Shutdown Server:' + ServerName + '...'; _stopServer(ServerName); elif command =='start': state=_serverstatus(ServerName); if state!='RUNNING' : print 'Trying To Start Server:' + ServerName + '...'; _startServer(ServerName); elif command =='restart': state=_serverstatus(ServerName); if state!='SHUTDOWN' : print 'Trying To Shutdown Server:' + ServerName + '...'; _stopServer(ServerName); state=_serverstatus(ServerName); if state!='RUNNING' : print 'Trying To Start Server:' + ServerName + '...'; _startServer(ServerName); elif command == "stopall": try: cd('/Servers') allServers=ls('/Servers', returnMap='true') for p_server in allServers: if p_server == 'AdminServer': continue else: _stopServer(p_server); except Exception, e: print "Error Occured" elif command == "startall": try: cd('/Servers') allServers=ls('/Servers', returnMap='true') for p_server in allServers: if p_server == 'AdminServer': continue else: _startServer(p_server); except Exception, e: print "Error Occured" elif command == "statusall": try: cd('/Servers') allServers=ls('/Servers', returnMap='true') for p_server in allServers: _serverstatus(p_server); except Exception, e: print "Error Occured" else: print 'Not able to understand the command supplied.' usage(); except: print 'Error during lifecycle operation of ' +ServerName+ '\n' exit(); #======================== #Execute Block #======================== connectToDomain(); lifecycleMain(); disconnect(); exit();
2. Wrapper Bash script:
create a bash script named manageServers.sh in the same directory where you have saved the wlst python script manageServers.py with below content.
#!/bin/bash
/slot/oracle/weblogic/myDomain/bin/setDomainEnv.sh 2>&1 >/dev/null
java -cp /slot/oracle/weblogic/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -pwelcome -a localhost:7001 -n $1 -c $2
Execution:
You can run the scripts in any manner, directly via wlst or using the bash wrapper script with prefed username and passwords.
1. Direct Run Using WLST tool
Starting a Server:
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n ess_server1 -c start
Output:
Initializing WebLogic Scripting Tool (WLST) …
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Connecting to t3://localhost:7001 with userid weblogic …
Successfully connected to Admin Server ‘AdminServer’ that belongs to domain ‘MyDomain’.
Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
Successfully connected to the domain
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean.
For more help, use help(domainRuntime)
Server ess_server1 is :SHUTDOWN
Trying To Start Server:ess_server1…
Server ess_server1 is :SHUTDOWN
Server ess_server1 is :STARTING
Server ess_server1 is :STARTING
Server ess_server1 is :STARTING
Server ess_server1 is :RESUMING
Server ess_server1 is :RESUMING
Server ess_server1 is :RESUMING
Server ess_server1 is :RESUMING
Server ess_server1 is :RUNNING
Disconnected from weblogic server: AdminServer
Exiting WebLogic Scripting Tool.
Output On SSH Terminal(Putty):
Restart A Server:
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n ess_server1 -c restart
Stopping A Server:
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n ess_server1 -c stop
Successfully connected to the domain
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
Server ess_server1 is :RUNNING
Trying To Shutdown Server:ess_server1…
Server ess_server1 is :FORCE_SUSPENDING
Server ess_server1 is :FORCE_SUSPENDING
Server ess_server1 is :SHUTDOWN
Disconnected from weblogic server: AdminServer
Output On SSH Terminal(Putty):
Status Check Of Server:
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n ess_server1 -c status
Successfully connected to the domain
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
Server ess_server1 is :SHUTDOWN
Disconnected from weblogic server: AdminServer
Output On SSH Terminal(Putty):
Status Check Of All Servers:
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n all -c statusall
Similar commands:
You can use below command to stopall/startall servers in a domain
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n all -c stopall/startall/statusall
Start/stop/status using bash script(manageServers.sh):
-bash-3.2$ ./manageServers.sh all statusall/stopall/statusall
-bash-3.2$ ./manageServers.sh ess_server1 status/stop/start
Output will be similar to above output.
Script To Show Progress Bar in Status:
We can modify the above mentioned manageServers.py script to show a progress bar instead of showing servers current runtime state while starting/stopping for better stylish view
Modify the existing functions like below to show progress bar:
def _serverstatus(ServerName): try: cd('domainRuntime:/ServerLifeCycleRuntimes/'+ServerName); serverState = cmo.getState() return serverState except: print 'Not able to get the' + serverState +'server status. Please try again\n'; print 'Please check logged in user has full access to complete the requested operation on ' +ServerName+ '\n'; exit() #============================================== #Start Server Block #============================================== def _startServer(ServerName): try: cd('domainRuntime:/ServerLifeCycleRuntimes/'+ServerName); cmo.start(); state=_serverstatus(ServerName); toolbar_width = 40 # setup toolbar sys.stdout.write("\033[1;34m[%s]\033[0m" % (" " * toolbar_width)) sys.stdout.flush() sys.stdout.write("\b" * (toolbar_width+1)) # return to start of line, after '[' for i in xrange(toolbar_width): while (state!='RUNNING'): state=_serverstatus(ServerName); java.lang.Thread.sleep(4000); # update the bar sys.stdout.write("\033[1;32m#\033[0m") sys.stdout.flush() sys.stdout.write("\n") except: print 'Error in getting current status of ' +ServerName+ '\n'; print 'Please check logged in user has full access to complete the start operation on ' +ServerName+ '\n'; exit() #============================================== #Stop Server Block #============================================== def _stopServer(ServerName): try: cd('domainRuntime:/ServerLifeCycleRuntimes/'+ServerName); cmo.forceShutdown(); state=_serverstatus(ServerName); toolbar_width = 40 # setup toolbar sys.stdout.write("\033[1;34m[%s]\033[0m" % (" " * toolbar_width)) sys.stdout.flush() sys.stdout.write("\b" * (toolbar_width+1)) # return to start of line, after '[' for i in xrange(toolbar_width): # time.sleep(0.1) # do real work here while (state!='SHUTDOWN'): state=_serverstatus(ServerName); java.lang.Thread.sleep(4000); # update the bar sys.stdout.write("\033[1;32m#\033[0m") sys.stdout.flush() sys.stdout.write("\n") except: print 'Error in getting current status of ' +ServerName+ '\n'; print 'Please check logged in user has full access to complete the stop operation on ' +ServerName+ '\n'; exit()
The commands to operate remains same but the Output will look like below, Stylish good to impress your manager 🙂
Restart of ess_server1
If you find this article useful please share!!
In case of any ©Copyright or missing credits issue please check CopyRights page for faster resolutions.
Thank you for the script.It addresses all the questions I had with managing start/stop from command line
Glad it helped !!
Hi,
I am new one for Web logic server. Will you please help me how to do the above process step by step in Local server using Putty Software
will you please guide me How to install web logic 10.3
You can check below links for weblogic installation steps
http://www.techpaste.com/2011/12/29/steps-install-oracle-weblogic-application-server-11gr1/
http://www.techpaste.com/2013/10/13/steps-install-configure-weblogic-server-12c-console-mode/
I’m running a command java weblogic.WLST pythonscript.py from some bash script examplebash.sh
I have problem to execute Command raw_input or sys.stdin.readline(), which I try use in pythonscript.py file.
When I use raw_input I get error EOFError: raw_input(), when I use sys.stdin.readline() it’s nothing happened.
It’s looks that, because I start pythonscript.py from bash script examplebash.sh the standard input doesn’t work?
Can You help me with this problem?
message = sys.stdin.read()
sys.stdin = open(‘/dev/tty’)
selected_index = raw_input(‘Which URL to open?’)
Instead of passing the server name as command line parameter, I am looking at displaying all servers of the domain as a list and then type in the number to pickup the server for startup/shutdown. I will appreciate if you can direct me to anything similar.
You can do something like list the servers/applications and add them to variables and read the input to execute the command on them.
E.g adding to variable
ArrayList appList = new ArrayList ();
Writer out = new StringWriter();
interpreter.setOut(out);
interpreter.exec(“print listApplications()”);
StringBuffer results = new StringBuffer();
results.append(out.toString());
Scanner scanner = new Scanner(results.toString());
while(scanner.hasNextLine()){
String line = scanner.nextLine();
line = line.trim();
if(line.equals(“None”))
continue;
appList.add(line);
}
once the servers are listed and numbered For reading inputs do something like
import os;
serverName=raw_input(‘Enter the server number you want to operate: ‘)
lifecycleoperation=raw_inpu(‘Enter what you want to do stop(1)/start(2)/restart(3)/shutdown(4):’)
I appreciate your effort.
Just wanted to know if their is any performance issue while running this script.
Thanks
Hi Shashi,
It’s using the Oracle recommended inbuilt WLST for these life-cycle operations, so it should not have any performance issues while running them. You can go ahead and use it without worries.
Does this script include bouncing of coherence server?
It is not particular about a server. You can mention any server name in weblogic domain and it shall work fine with that. you need to mention something like below:
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n -c stop/start/restart
Hi Ramakanta. This is a very useful script. Thank you. We have the following requirement. We have multiple domains in a environment for different weblogic products like portal sever domain,. soa domain, osb domain etc. Every domain has its managed servers. How do we start all the servers from all the domains with a single WLST script? Please advise.
Thanks,
Bharat
What you can do is create a shell script containing commands for individual domains.Like below
#!/bin/bash
/slot/oracle/weblogic/myDomain/bin/setDomainEnv.sh 2>&1 >/dev/null
java -cp /slot/oracle/weblogic/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -pwelcome -a localhost:7001 -n $1 -c $2
/slot/oracle/weblogic/myDomain_1/bin/setDomainEnv.sh 2>&1 >/dev/null
java -cp /slot/oracle/weblogic/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -pwelcome -a localhost:7001 -n $1 -c $2
/slot/oracle/weblogic/myDomain_2/bin/setDomainEnv.sh 2>&1 >/dev/null
java -cp /slot/oracle/weblogic/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -pwelcome -a localhost:7001 -n $1 -c $2
Thanks again. We have multiple domains on separate vm’s. Please advise how we can ssh or connect to the other domains on separate vm’s and perform a restart for all these domains at once using WLST.
Thanks,
Bharat
Please let me know if there is a way we can perform the above task.
Thanks,
Bharat
Nevermind. I was able to figure it out. We established a route and was able to connect to other servers on separate vm’s using the same commands inside the script with different host name and ports.
Thanks,
Bharat
Glad to know you solved it yourself 🙂
Can you give the script you used for this
hi,
actually the managed server has been stopped successfully but i couldnt start it again by the script, beside please i need to stop/start all the managed servers my domain all at the same time by the script.
Can you please post the error you are seeing while starting.
If you want all servers to be started at the same time you can create a shell script and put all the server names individually for starting and stopping
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n ess_server1 -c start &
java -cp /slot/oracle/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ms.py -u weblogic -p weblogic1 -a localhost:7001 -n ess_server2 -c start &
i want to use encrypted username and password of weblogic. Could you please help.
Hi Rajesh,
You can modify the script to use encrypted passwords from file.
in the connect to domain section of the script you can enable the code (remove the #) and can use the encrypted passwords from file
def connectToDomain():
try:
if username != “”:
connect(username, password, adminUrl)
print ‘Successfully connected to the domain\n’
# else:
# connect(userConfigFile=UCF, userKeyFile=UKF, url=admurl)
# print ‘Successfully connected to the domain\n’
except:
print ‘The domain is unreacheable. Please try again\n’
exit()
Example Connect:
connect(userConfigFile=’/someDirectory/MyUserConfigFile’,userKeyFile=’/someDirectory/MyUserKeyFile’,url=’t3://localhost:7001′)
Follow the below steps to store you password and keys into a file
https://blogs.oracle.com/bala/entry/encrypt_the_credentials_when_r
Thanks.
hi,
the managed server has been stopped successfully but i couldn’t start it again by the script. below is the command i am using and the output for the same.
java -cp weblogic.jar weblogic.WLST manageServers.py -u weblogic -p abcd1234 -a localhost:9004 -n ess_server2 -c restart
Initializing WebLogic Scripting Tool (WLST) …
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Connecting to t3://localhost:9004 with userid weblogic …
Successfully connected to Admin Server ‘AdminServer’ that belongs to domain ”.
Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
Successfully connected to the domain
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
Server ess_server2 is :RUNNING
Trying To Shutdown Server:ess_server2 …
Server ess_server2 is :RUNNING
Server ess_server2 is :FORCE_SUSPENDING
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Trying To Start Server:ess_server2 …
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
Server ess_server2 is :SHUTDOWN
See if manually via console you are able to start or not and see incase the script is getting the status from the admin server or not?
The script is able to get the status from the admin server. I think the method used in the script requires node manager to start the managed server. is there any way i can start server without node manager?
Using the WLST startServer command, the administration server can be started without using a NodeManager. The server runs in a separate process from WLST, which means that exiting WLST does not shutdown the server.
startServer([adminServerName], [domainName], [url], [username], [password],[domainDir], [block], [timeout], [serverLog], [systemProperties], [jvmArgs])
Example:
wls:/offline> startServer(‘AdminServer’,’TestDomain’,’t3://myTestServer:12345′,‘,’/application/domains/TestDomain’,’false’, 60000, jvmArgs=’-XX:MaxPermSize=125m, -Xmx512m, -XX:+UseParallelGC’)
‘admin’,’
wls:/offline>
The script is very well written. Thanks a lot for sharing the scripts.
Glad It Helped! 🙂
Hi Ramakanta,
Note: I want to start manage server with node manager.
The manage server is working for stopping the server, but the script is not starting the manage server. Below are the script log.
I tried directly traversing into the wlst directory and starting the manage server but from there also stopping works but starting the server command is not working. Any idea how can I resolve this issue.
wls:/offline> connect(‘weblogic’,’welcome2341′,’t3://abc.mdc.ncvnet:7001′)
Connecting to t3://abc.mdc.ncvnet:7001 with userid weblogic …
Successfully connected to Admin Server ‘AdminServer’ that belongs to domain ‘ecmdev_domain’.
Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
wls:/ecmdev_domain/serverConfig> cd(‘domainRuntime:/ServerLifeCycleRuntimes/capture_server1’)
wls:/ecmdev_domain/domainRuntime/ServerLifeCycleRuntimes/capture_server1> ls()
dr– Tasks
-r– MiddlewareHome /usr/oracle/fmw11g
-r– Name capture_server1
-r– NodeManagerRestartCount 0
-r– State RUNNING
-r– Type ServerLifeCycleRuntime
-r– WeblogicHome /usr/oracle/fmw11g/wlserver_10.3
-r-x forceShutdown WebLogicMBean :
-r-x forceSuspend WebLogicMBean :
-r-x getIPv4URL String : String(protocol)
-r-x getIPv6URL String : String(protocol)
-r-x preDeregister Void :
-r-x resume WebLogicMBean :
-r-x shutdown WebLogicMBean :
-r-x shutdown WebLogicMBean : Integer(timeout),Boolean(ignoreSessions)
-r-x start WebLogicMBean :
-r-x suspend WebLogicMBean :
-r-x suspend WebLogicMBean : Integer(timeout),Boolean(ignoreSessions)
wls:/ecmdev_domain/domainRuntime/ServerLifeCycleRuntimes/capture_server1> cmo.forceshutdown
Traceback (innermost last):
File “”, line 1, in ?
AttributeError: ‘javainstance’ object has no attribute ‘forceshutdown’
wls:/ecmdev_domain/domainRuntime/ServerLifeCycleRuntimes/capture_server1> cmo.forceShutdown()
[MBeanServerInvocationHandler]com.bea:Name=_0_forceShutdown,Type=ServerLifeCycleTaskRuntime,ServerLifeCycleRuntime=capture_server1
wls:/ecmdev_domain/domainRuntime/ServerLifeCycleRuntimes/capture_server1> ls()
dr– Tasks
-r– MiddlewareHome /usr/oracle/fmw11g
-r– Name capture_server1
-r– NodeManagerRestartCount 0
-r– State FORCE_SHUTTING_DOWN
-r– Type ServerLifeCycleRuntime
-r– WeblogicHome /usr/oracle/fmw11g/wlserver_10.3
-r-x forceShutdown WebLogicMBean :
-r-x forceSuspend WebLogicMBean :
-r-x getIPv4URL String : String(protocol)
-r-x getIPv6URL String : String(protocol)
-r-x preDeregister Void :
-r-x resume WebLogicMBean :
-r-x shutdown WebLogicMBean :
-r-x shutdown WebLogicMBean : Integer(timeout),Boolean(ignoreSessions)
-r-x start WebLogicMBean :
-r-x suspend WebLogicMBean :
-r-x suspend WebLogicMBean : Integer(timeout),Boolean(ignoreSessions)
wls:/ecmdev_domain/domainRuntime/ServerLifeCycleRuntimes/capture_server1> ls()
dr– Tasks
-r– MiddlewareHome /usr/oracle/fmw11g
-r– Name capture_server1
-r– NodeManagerRestartCount 0
-r– State SHUTDOWN
-r– Type ServerLifeCycleRuntime
-r– WeblogicHome /usr/oracle/fmw11g/wlserver_10.3
-r-x forceShutdown WebLogicMBean :
-r-x forceSuspend WebLogicMBean :
-r-x getIPv4URL String : String(protocol)
-r-x getIPv6URL String : String(protocol)
-r-x preDeregister Void :
-r-x resume WebLogicMBean :
-r-x shutdown WebLogicMBean :
-r-x shutdown WebLogicMBean : Integer(timeout),Boolean(ignoreSessions)
-r-x start WebLogicMBean :
-r-x suspend WebLogicMBean :
-r-x suspend WebLogicMBean : Integer(timeout),Boolean(ignoreSessions)
wls:/ecmdev_domain/domainRuntime/ServerLifeCycleRuntimes/capture_server1> cmo.start()
[MBeanServerInvocationHandler]com.bea:Name=_1_start,Type=ServerLifeCycleTaskRuntime,ServerLifeCycleRuntime=capture_server1
wls:/ecmdev_domain/domainRuntime/ServerLifeCycleRuntimes/capture_server1> ls()
dr– Tasks
-r– MiddlewareHome /usr/oracle/fmw11g
-r– Name capture_server1
-r– NodeManagerRestartCount 0
-r– State SHUTDOWN
-r– Type ServerLifeCycleRuntime
-r– WeblogicHome /usr/oracle/fmw11g/wlserver_10.3
-r-x forceShutdown WebLogicMBean :
-r-x forceSuspend WebLogicMBean :
-r-x getIPv4URL String : String(protocol)
-r-x getIPv6URL String : String(protocol)
-r-x preDeregister Void :
-r-x resume WebLogicMBean :
-r-x shutdown WebLogicMBean :
-r-x shutdown WebLogicMBean : Integer(timeout),Boolean(ignoreSessions)
-r-x start WebLogicMBean :
-r-x suspend WebLogicMBean :
-r-x suspend WebLogicMBean : Integer(timeout),Boolean(ignoreSessions)
wls:/ecmdev_domain/domainRuntime/ServerLifeCycleRuntimes/capture_server1>
Appreciate all your help.
Script Logs :
java -cp /usr/oracle/fmw11g/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ManageStartStop1.py -u weblogic -p welcome1 -a ecmhostdev.mdc.cginet:7001 -n capture_server1 -c stop
Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
Successfully connected to the domain
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
Server capture_server1 is :RUNNING
[Server capture_server1 is :FORCE_SUSPENDING
#Server capture_server1 is :FORCE_SHUTTING_DOWN
#Server capture_server1 is :FORCE_SHUTTING_DOWN
#Server capture_server1 is :SHUTDOWN
#
Trying To Shutdown Server:capture_server1…
Error in getting current status of capture_server1
Please check logged in user has full access to complete the stop operation on capture_server1
Exiting WebLogic Scripting Tool.
java -cp /usr/oracle/fmw11g/wlserver_10.3/server/lib/weblogic.jar weblogic.WLST ManageStartStop1.py -u weblogic -p welcome1 -a ecmhostdev.mdc.cginet:7001 -n capture_server1 -c start
Connecting to t3://abc.mdc.ncvnet:7001 with userid weblogic …
Successfully connected to Admin Server ‘AdminServer’ that belongs to domain ‘ecmdev_domain’.
Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
Successfully connected to the domain
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
Server capture_server1 is :SHUTDOWN
Trying To Start Server:capture_server1…
Server capture_server1 is :SHUTDOWN
[Server capture_server1 is :SHUTDOWN ]
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
#Server capture_server1 is :SHUTDOWN
Sorry I meant without node manager
Note: I want to start manage server WITHOUT node manager.
See the comment:
http://www.techpaste.com/2013/09/simple-wlst-script-start-stop-monitor-check-status-managed-servers-progress-bar-weblogic-server/#comment-33842
i want to grab the admin URL of domain when i connect wlst through manage server, is that possible to get this ?i knew domain runtime mbean not available on manage server. but is there alternate way to grab those details
i am new to this wlst script. my requirement is to monitor weblogic server status say admin server,oacore_server1 and oaea_server1. if any of the server status gone to shutdown or unknown, we needs to get the alert. could you please provide me the script to do this.
You can create a small shell script to probe for the status of the managed servers and when status is not equal to RUNNING just send an email to some group id. Like below
/opt/jdk1.5.0_22/bin/java -cp /opt/weblogic/server/lib/weblogic.jar weblogic.Admin -url t3://HOST:7001 GETSTATE oacore_server1
Hi, Thanks for sharing this script. I was wondering if you could advise on the following
In my case I have different java parameters per server that have to be loaded before its startup, e.g. :
. //setwlenv
I would like to run script with startall command and load specific file per managed server.
What would be the best way to achieve that?
What you can do is create a small shell script and put it in each env. which will be running the setwlenv of that env. before running the command to start or stop.
Great Script. But i have a difficulty to get an information for Adminserver. Its working fine for managed servers.
This is the error i am getting while i am trying to pull a status of admin server.
Connecting to t3://url:port with userid user …
Successfully connected to Admin Server ‘AdminServer’ that belongs to domain ‘domain’.
Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
Successfully connected to the domain
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
No stack trace available.
Error during lifecycle operation of all
Exiting WebLogic Scripting Tool.
Please help/guide.
Regards,
Suman
Can you elaborate what your code change is, which is showing error?
Default article code is for managed servers only.
Hi Rama,
Thank you
I fixed that issue. How can i add my Adminserver in the list. I want to start/stop/restart my Adminserver with managed servers.
Regards,
Suman
For AdminServer you dont need this script… you can just use the startWeblogic.sh and stopWeblogic.sh scripts
Hi Sir,
I want to do stoping and starting the Admin server in one script, once i execute the script , it will first stop the admin server if running, then delete the logs and start the server. above script is only for MS.
Hi,
I have the same issue faced by other folks.
everything is working properly except startup of managed servers. Is it mandatory to start node manager before starting admin and other managed servers?
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(‘domainRuntime’)
Server server1 is :SHUTDOWN
Trying To Start Server:server1…
Server server1 is :SHUTDOWN
Server server1 is :SHUTDOWN
Server server1 is :SHUTDOWN
Server server1 is :SHUTDOWN
Server server1 is :SHUTDOWN
Server server1 is :SHUTDOWN
Server server1 is :SHUTDOWN
^C
http://www.techpaste.com/2013/09/simple-wlst-script-start-stop-monitor-check-status-managed-servers-progress-bar-weblogic-server/#comment-33842
superb script.Great job..:-) .it was very helpful… thank you sir. but it would be pleasure if you help me to solve this issue,,, i’m new to wlst,, i’m a java developer…actually my weblogic server is in another system and i’m running this script in mine using putty, my doubt is without logging into admin server in that system where weblogic server is installed,,, can i start it here using putty ????????? cause when i tried running this script before to check the status of server,, it showed me no stack trace under domain tree and exiting the wlst. and when admin logged into admin server using his credentials ,,then it showed me the status of server. why is it so??? can’t i run this script and get the status of the server ,,even when admin server was not logged in ,,status as its in shutdown state, why?
The status of a managed server is stored in AdminServer via heartbeat .. On request Admin Server responds back on what is the current status of managed server.
https://docs.oracle.com/cd/E11035_01/wls100/server_start/server_life.html
http://www.techpaste.com/2012/08/weblogic-monitors-servers-health-states/
thank you for the help.
i have an another doubt.
while i run this script directly from lib folder where ms.py file is present, it runs successfully and retreive the status of server,, but when i get into wlst scrpting tool and try to execute the same file using the command execfile(‘path of ms.py’)
it shows error like this ‘missing -u username’
and prints the usage line nd comes out of wlst
how to run it using execfile command and be in wlst and it should to exit it
Hi Sir,
I want to do stoping and starting the Admin server in one script, once i execute the script , it will first stop the admin server if running, then delete the logs and start the server. above script is only for MS.
How or where can I write/find a script to stop and start Managed servers via Admin / Server ? please help
How or where can I write/find a script to stop and start Managed servers via Admin / Server on windows machine ? please help
http://www.techpaste.com/2012/04/shell-python-script-automate-weblogic-server-start-stop-running-service/
Hi,
I am testing your script and i get the below error. The java version seems to be ok, I am currently running Weblogic 10.3.
./WrapperScript.sh
Initializing WebLogic Scripting Tool (WLST) …
Problem invoking WLST – java.lang.UnsupportedClassVersionError: Bad version number in .class file
java -version
java version “1.5.0_23”
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_23-b01)
Java HotSpot(TM) Server VM (build 1.5.0_23-b01, mixed mode)
Can you please advise a solution?
Not sure what you are doing wrong here. UnsupportedClassVersionError means that the Java runtime environment you are using doesn’t recognise the version of a class file that you are trying to execute. The most common cause for this error is trying to use a class file compiled for a newer Java version on an older Java version – for example, you are trying to use a class compiled for Java 6 on a Java 5 runtime environment.
Can you post the content of WrapperScript.sh file?
I can invoke the script in my Development environment. In UAT, I am getting authentication issue. Could you please help me?
Can you post the errors you are seeing in logs?
Ramakanta – Super awesome script!!!! Thanks so much!!! – I hope you can still answer my question. My current production requirement requires me to always first shutdown the managed servers then the admin server last. Say we have MS1, MS2, MS3 & MS4 – How can I pass multiple servers to the flag -n so I can shutdown all managed servers first as required?
Thanks so much for your time!
You can create a shell script like below:
export WL_HOME=/shared/oracle/FMW_Home/wlserver_12.1/server/bin:] -n ServerName -c [stopall]:] -n ServerName -c [startall]
echo Starting Weblogic 12c – FMW_XPS Domain
. $WL_HOME/setWLSEnv.sh > /dev/null 2>&1
java weblogic.WLST manageServers.py -u username -p password -a adminUrl [
nmConnect(‘NM_user’,’NM_pass’,’NM_host’,’NM_port’,’Domain_Name,’Domain_Directory’,’Connection_type’);
nmKill(‘Administration Server Name’);
nmDisconnect();
exit();
nmConnect(‘weblogic’,’welcome1′,’localhost’,’5556′,’FMW_XPS’,’/shared/oracle/FMW_Home/user_projects/domains/FMW_XPS’,’plain’);
nmStart(‘AdminServer’);
nmDisconnect();
exit();
java weblogic.WLST manageServers.py -u username -p password -a adminUrl [
Hi thanks again! – How can I execute this script without having to show my credentials? specially I’m interested in hiding the password used to manage. Thanks!
Hi,
Facing below issue
[fmwuser@fmwhost1 scripts]$ java -cp /home/FMW/wlserver/server/lib/weblogic.jar weblogic.WLST manageServers.py -u weblogic -p welcome1 -a fmwhost1:7140 -n myserver1 -c status
Initializing WebLogic Scripting Tool (WLST) …
Error execing the Python script “/home/FMW/oracle_common/modules/internal/clients/oracle.fmwshare.pyjar.jar!/wlstScriptDir/lib/ora_help.py” caused an error “Traceback (innermost last):
File “”, line 1, in ?
File “/home/FMW/oracle_common/modules/internal/clients/oracle.fmwshare.pyjar.jar/wlstScriptDir/lib/ora_help.py”, line 12, in ?
File “/home/FMW/wlserver/modules/com.oracle.weblogic.management.scripting.jar/weblogic/management/scripting/core/utils/modules/wlstModule_core.py”, line 20, in ?
at weblogic.management.scripting.core.utils.WLSTCoreUtil.getOfflineWLSTScriptPath(WLSTCoreUtil.java:86)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
java.lang.RuntimeException: java.lang.RuntimeException: Could not find the OffLine WLST class
”
Error execing the Python script “/home/FMW/oracle_common/modules/internal/clients/oracle.fmwshare.pyjar.jar!/wlstScriptDir/lib/ora_util.py” caused an error “Traceback (innermost last):
File “”, line 1, in ?
File “/home/FMW/oracle_common/modules/internal/clients/oracle.fmwshare.pyjar.jar/wlstScriptDir/lib/ora_util.py”, line 15, in ?