Although the managed server on which Java Virtual Machine Diagnostics (JVMD) manager is deployed is configured to use the the Node Manager like OMS and admin server, it is not started automatically with OMS. In this post, I will describe how to start JVMD manager automatically when the physical server boots.
To implement the script, several steps have to be executed:
- Creation of a config file containing the encrypted password to connect to the NodeManager
- Test the start/stop WLST commands
- Creation of the python scripts
- Creation of the init script
Config file creation
To avoid using a password in clear text, a config file containing the encrypted password will be created.
Set the MW_HOME environment variable.
export MW_HOME=/u01/app/oracle/Middleware
Create a script folder:
mkdir $MW_HOME/script
Connect to the NodeManager (in the example, nmpassword is the password to access the nodemanager):
source $MW_HOME/wlserver_10.3/server/bin/setWLSEnv.sh java weblogic.WLST nmConnect('nodemanager','nmpassword','vmtestoraem12c','7403','GCDomain','/u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain/','SSL')
Create files to avoid using the password in clear text:
storeUserConfig(userConfigFile='/u01/app/oracle/Middleware/script/userconfigNM.secure',userKeyFile='/u01/app/oracle/Middleware/script/userkeyNM.secure',nm='true') nmDisconnect()
Test the encrypted password:
nmConnect(userConfigFile='/u01/app/oracle/Middleware/script/userconfigNM.secure',userKeyFile='/u01/app/oracle/Middleware/script/userkeyNM.secure', host='vmtestoraem12c', port='7403', domainName='GCDomain', domainDir='/u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain', nmType='SSL')
Test wlst start/stop command
Before creating a python script, test the start and stop commands:
nmStart('EMGC_JVMDMANAGER1') nmKill(EMGC_JVMDMANAGER1')
Create the python scripts
The python scripts will be used to start and stop the WLS managed server where JVMD manager is deployed:
Start script:
# start_EMGC_JVMDMANAGER1.py 1.0 09/24/2012 # # file: start_EMGC_JVMDMANAGER1.py # purpose: start the EMGC_JVMDMANAGER WLS managed server because it is not sta rted automatically by the emctl command # # Author: dbi_services (GWI) # Version: 1.0 09/24/2012 # ############################################ # connect to the NodeManager using an encrypted file nmConnect(userConfigFile='/u01/app/oracle/Middleware/script/userconfigNM.secure',userKeyFile='/u01/app/oracle/Middleware/script/userkeyNM.secure', host='vmtestoraem12c', port='7403', domainName='GCDomain', domainDir='/u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain', nmType='SSL') # start the managed server nmStart('EMGC_JVMDMANAGER1') # disconnect from nodemanager nmDisconnect()
Stop script:
# stop_EMGC_JVMDMANAGER1.py 1.0 09/24/2012 # # file: stop_EMGC_JVMDMANAGER1.py # purpose: stop the EMGC_JVMDMANAGER WLS managed server because it is not stopped automatically by the emctl command # # Author: dbi_services (GWI) # Version: 1.0 09/24/2012 # ############################################ # connect to the NodeManager using an encrypted file nmConnect(userConfigFile='/u01/app/oracle/Middleware/script/userconfigNM.secure',userKeyFile='/u01/app/oracle/Middleware/script/userkeyNM.secure', host='vmtestoraem12c', port='7403', domainName='GCDomain', domainDir='/u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain', nmType='SSL') # stop the managed server nmKill('EMGC_JVMDMANAGER1') # disconnect from nodemanager nmDisconnect()
Test the python scripts:
java weblogic.WLST /u01/app/oracle/Middleware/script/start_EMGC_JVMDMANAGER1.py java weblogic.WLST /u01/app/oracle/Middleware/script/stop_EMGC_JVMDMANAGER1.py
Create an init script
Under /etc/init.d, create the jvmd script:
# jvmd.sh 1.0 09/24/2012 # # file: jvmd # purpose: start the EMGC_JVMDMANAGER WLS managed server because this is not sta rted automatically by the emctl command # # Author: dbi_services (GWI) # Version: 1.0 09/24/2012 # # chkconfig: 345 85 15 ############################################ ###BEGIN INIT INFO # Provides: jvmd # Required-Start: # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: EMGC_JVMDMANAGER WLS managed server # Description: Start and stop EMGC_JVMDMANAGER WLS managed server ### END INIT INFO # set Weblogic environment defining CLASSPATH and LD_LIBRARY_PATH # to start/stop various components. export MW_HOME=/u01/app/oracle/Middleware # source $MW_HOME/wlserver_10.3/server/bin/setWLSEnv.sh > /dev/null SCRIPTDIR=$MW_HOME/script start() { echo "start EMGC_JVMDMANAGER1" java weblogic.WLST $SCRIPTDIR/start_EMGC_JVMDMANAGER1.py } stop() { echo "stop EMGC_JVMDMANAGER1" java weblogic.WLST $SCRIPTDIR/stop_EMGC_JVMDMANAGER1.py } case "$1" in start) start ;; stop) stop ;; *) echo -n "Usage: $0 {start|stop}" exit 2 esac exit $?
Change the permission:
chmod u+x jvmd
Create the link in the runlevel folder:
/sbin/chkconfig --add jvmd
Test the script:
/etc/rc3.d/S85jvmd start
/etc/rc3.d/S85jvmd stop
At the end, reboot your server and check if the JVMD manager is up and can be used through the OMS admin console.
In case you have to stop/start the OMS and JVMD, of course you can do it manually:
java weblogic.WLST /u01/app/oracle/Middleware/script/start_EMGC_JVMDMANAGER1.py emctl stop oms -all emctl start oms java weblogic.WLST /u01/app/oracle/Middleware/script/stop_EMGC_JVMDMANAGER1.py
As JVMD manager can be installed on a WLS domain other than the OMS domain, I do not think Oracle will ever integrate the start/stop procedure in the OMS by changing the startOMS.py script.