It could be either 'Forwarding Messages' or 'Fail to connect Source' or 'Fail to connect to Target'. The actual tragedy starts when it comes to production environment, where we have multiple managedservers in the cluster. Usually Bridges status matters when it connects to third party messaging providers such as MQ Series or something else. Assume that, there are 10 Bridges deployed to 10 managed servers on the WebLogic Console becomes very slow when you use 'Monitoring' tab to show 100 result rows from the JMX. Alternative is we must develop a Python script or something else. Searched in search engines but no luck, OTN forums have same discussions but using python there is no output or MessagingBridgeRuntime is not there on the MBean tree. This is due to bug in WebLogic 9.2 ver to WebLogic 10.3.6. It is fixed in WebLogic 12c. So previous version need to update the patch. Alternative to patch you can use weblogic.Admin utility. The following scripting trick works well to show below output.
Fetching RUNNING managed server list
The weblogic.Admin command can give you the CLUSTERSTATE which will give the all the managed servers status(such as RUNNING, SHUTDOWN, UNKNOWN, ADMIN, FAILED etc.,) in that cluster. To give more robustness to the script, extract the that running list of managed servers. So that we can get all live server bridges status. using our 'awk' seizer we can pick the managed server names which 'grep' RUNNING state.managdserver=`java weblogic.Admin -url t3://$admURL -username weblogic -password $admpasswd CLUSTERSTATE | grep managed |grep RUNN|awk -F'-' '{print $1}'`
Now the script
#!/bin/ksh #================================================ # This is MessageBridge Monitoring script # Updated by: Pavan Devarakonda #================================================ admpasswd=Secret admURL= hostname.company.com domain=mydomain echo "Starting at:" date # For trace the time spending for this monitoring script managdservers=`java weblogic.Admin -url t3://$admURL -username weblogic -password $admpasswd CLUSTERSTATE | grep managed |grep RUNN|awk -F'-' '{print $1}'` for mserver in managdservers do echo "Managed Server :" $mserver for bridge in `grep MessagingBridge mydomain.properties| cut -d'=' -f2` do echo " " java weblogic.Admin -url t3://$admURL -username weblogic -password $admpasswd GET -pretty -type MessagingBridgeRuntime -mbean $domain:ServerRuntime=$mserver,Name=$bridge,Type=MessagingBridgeRuntime,Location=$mserver -property Description -property Name -property State | grep -v MBeanName done done echo "Bridge Status completed " dateYou must create a properties from your domain as follows:
mydomain.properties #=================== srvr_target1=ms1_mydomain srvr_target2=ms2_mydomain srvr_target3=ms3_mydomain bridge1=MQMessagingBridge1 bridge2=JMSMessagingBridge2
How to execute this script?
To execute this script you must have weblogic.jar in the CLASSPATH and java must be in the PATH that is JAVA_HOME/bin must be appended in your PATH environment variable. To execute the above Kron shell script$ ./bridgeMonitor.ksh
To know more on Bridges and how to configure with simple python script. you can find on WLSTbyExample blog link
Technorati claim code QK7QN6U9ZST6
Hi ..
ReplyDeleteplz post run sql query in sql server 2008 using schell script..
Thanks in advance
Rajesh N
We are executing below script to monitor the bridge Status, but we are getting below mentioned error.
ReplyDeleteScript : java weblogic.Admin -url t3://xxxx:21345 -username weblogic -password weblogic123 GET -pretty -type MessagingBridgeRuntime -mbean'$Domain_Path:ServerRuntime=MS1,Name=Bridge1,Type=MessagingRuntime,Location=MS1' -property Description -property Name -property State
Error : Could not find the instance for mydomain:ServerRuntime=MS1,Name=Bridge1,Type=MessagingRuntime,Location=MS1
I already defined location of my Weblogic Domain in variable mydomain.