Getting the Messaging Bridge Runtime Details through Java - Weblogic
The below java jmx code will help us to get the run time details of the messaging bridge in weblogic server.import java.util.Hashtable;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import javax.naming.Context;
public class GetMessageBridgeStatus {
private static MBeanServerConnection connection;
private static JMXConnector connector;
public static void getMessageBridgeStatus() {
try
{
getRuntimeMBeanServerConnection();
String son = "com.bea:ServerRuntime=AdminServer,Name=Bridge-0,Location=AdminServer,Type=MessagingBridgeRuntime";
ObjectName service = new ObjectName(son);
String status = connection.getAttribute(service,"State").toString();
System.out.println("Status: "+status);
String description = connection.getAttribute(service,"Description").toString();
System.out.println("Descrption: "+description);
}catch(Exception e) {
e.printStackTrace();
}
}
public static void getRuntimeMBeanServerConnection() throws Exception{
String jndiroot = "/jndi/";
String mserver = "weblogic.management.mbeanservers.domainruntime";
JMXServiceURL serviceURL = new JMXServiceURL("t3", "localhost", 8000,jndiroot + mserver);
Hashtable h = new Hashtable();
h.put(Context.SECURITY_PRINCIPAL, "weblogic");
h.put(Context.SECURITY_CREDENTIALS, "welcome1");
h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,"weblogic.management.remote");
connector = JMXConnectorFactory.connect(serviceURL, h);
connection = connector.getMBeanServerConnection();
}
public static void main(String[] args) {
getMessageBridgeStatus();
}
}
import java.io.BufferedWriter;
ReplyDeleteimport java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import javax.naming.Context;
public class GetMessageBridgeStatus {
private static MBeanServerConnection connection;
private static JMXConnector connector;
public static void getMessageBridgeStatus(String hostname, int portString, String username, String password, String path) {
try
{
getRuntimeMBeanServerConnection(hostname,portString,username,password);
String wlname="Weblogic";
List bridgeName = new ArrayList();
bridgeName.add(0, "amdocsBeans.FulfillmentOrderSvcJMS.bridge");
bridgeName.add(1, "amdocsBeans.NotifyFulfillmentOrderSvcJMS.bridge");
PrintStream o = new PrintStream(new File(System.getProperty("user.dir") + " bridge.txt "));
PrintStream console = System.out;
System.out.println(path);
System.out.println("------" + System.getProperty("user.dir") );
Iterator iterator = bridgeName.iterator();
while(iterator.hasNext()){
String bName = iterator.next();
String son = "com.bea:ServerRuntime="+wlname+",Name="+bName+",Location="+wlname+",Type=MessagingBridgeRuntime";
ObjectName service = new ObjectName(son);
String status = connection.getAttribute(service,"State").toString();
String description = connection.getAttribute(service,"Description").toString();
System.setOut(o);
System.out.println(bName+" , "+status+" , "+description);
System.setOut(console);
System.out.println(bName+" , "+status+" , "+description);
}
}catch(Exception e) {
e.printStackTrace();
}
}
public static void getRuntimeMBeanServerConnection(String hostname, int portString, String username, String password) throws Exception{
String jndiroot = "/jndi/";
String mserver = "weblogic.management.mbeanservers.domainruntime";
JMXServiceURL serviceURL = new JMXServiceURL("t3", hostname, portString ,jndiroot + mserver);
Hashtable h = new Hashtable();
h.put(Context.SECURITY_PRINCIPAL, username);
h.put(Context.SECURITY_CREDENTIALS, password);
h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,"weblogic.management.remote");
connector = JMXConnectorFactory.connect(serviceURL, h);
connection = connector.getMBeanServerConnection();
}
public static void main(String[] args) throws FileNotFoundException {
String hostname = args[0];
int portString = Integer.parseInt(args[1]);
String username = args[2];
String password = args[3];
String path = args[4];
getMessageBridgeStatus(hostname,portString,username,password,path);
}
}
Command Line Arguments for the above code are :
ReplyDeleteindlin2717 23101 system password123 C:\Users\abc\WORK\Usm\src
and "PrintStream" is used to get the status in a TEXT FILE and on CONSOLE.