this tool helps to mointor connection pool during performance testing
import java.io.*;
import java.util.Iterator;
import java.util.ResourceBundle;
import java.util.Set;
import javax.naming.Context;
import weblogic.jndi.Environment;
import weblogic.management.MBeanHome;
import weblogic.management.configuration.ExecuteQueueMBean;
import weblogic.management.runtime.JDBCConnectionPoolRuntimeMBean;
import weblogic.management.runtime.ExecuteQueueRuntimeMBean;
import weblogic.management.WebLogicMBean;
import weblogic.management.RemoteMBeanServer;
import weblogic.management.runtime.JMSDestinationRuntimeMBean;
import weblogic.management.runtime.JVMRuntimeMBean;
public class Performance_Monitor
{
public Performance_Monitor()
{
}
public static void main(String args[])
{
Object obj = null;
try
{
Object obj1 = null;
Object obj2 = null;
int i = 0;
Set set = null;
Set set1 = null;
Set set2 = null;
Set set3 = null;
Object obj3 = null;
Object obj4 = null;
System.out.println("*********");
String url="";
String domain="";
String username="";
String password="";
String poolname1="";
String poolname2="";
String ExecuteQueuename1="";
String ExecuteQueuename2="";
String poolcheck="";
String Threadcheck="";
String Heapcheck="";
ResourceBundle prop = null;
prop = ResourceBundle.getBundle("Performance");
url=prop.getString("url").trim();
username=prop.getString("username").trim();
password=prop.getString("password").trim();
domain = prop.getString("domain").trim();
poolname1= prop.getString("poolname1").trim();
poolname2= prop.getString("poolname2").trim();
ExecuteQueuename1= prop.getString("ExecuteThreadname1").trim();
ExecuteQueuename2= prop.getString("ExecuteThreadname2").trim();
poolcheck= prop.getString("poolcheck").trim();
Threadcheck= prop.getString("Threadcheck").trim();
Heapcheck= prop.getString("Heapcheck").trim();
try
{
Environment environment = new Environment();
environment.setProviderUrl(url);
environment.setSecurityPrincipal(username);
environment.setSecurityCredentials(password);
Context context = environment.getInitialContext();
MBeanHome mbeanhome = (MBeanHome)context.lookup("weblogic.management.adminhome");
set1 = mbeanhome.getMBeansByType("JDBCConnectionPoolRuntime");
set2 = mbeanhome.getMBeansByType("ExecuteQueueRuntime");
//Set mbeanSet = home.getMBeansByType("JMSDestinationRuntime");
set3 = mbeanhome.getMBeansByType("JVMRuntime");
}
catch(Exception exception1)
{
System.out.println("Exception caught: 2 " + exception1);
}
String s4 = null;
File file = new File("ExQ.txt");
FileWriter filewriter = new FileWriter(file, true);
System.out.println("Monitoring pool.......");
do
{
Iterator iterator1 = set1.iterator();
Iterator iterator2 = set2.iterator();
Iterator iterator3 = set3.iterator();
try
{
do
{
if(Threadcheck.equals("Y") || Threadcheck.equals("y"))
{ // for(int k=0;k<7;k++)
while(iterator2.hasNext())
{
//if(!iterator2.hasNext())
//break;
ExecuteQueueRuntimeMBean executequeueruntimembean = (ExecuteQueueRuntimeMBean)iterator2.next();
if(executequeueruntimembean.getName().equals("weblogic.kernel.Default")||executequeueruntimembean.getName().equals(ExecuteQueuename1)||executequeueruntimembean.getName().equals(ExecuteQueuename2) )
{
System.out.println("\n"+executequeueruntimembean.getParent().toString()+" "+executequeueruntimembean.getName()+" "+executequeueruntimembean.getExecuteThreadCurrentIdleCount());
}
}
}
/*if(Heapcheck.equals("Y")||Heapcheck.equals("y"))
{
//for(int j=0;j<3;j++)
while(iterator3.hasNext())
{
//if(!iterator3.hasNext())
//break;
JVMRuntimeMBean jvmruntimembean= (JVMRuntimeMBean)iterator3.next();
System.out.println("\n"+jvmruntimembean.getName()+" "+"Free:"+jvmruntimembean.getHeapFreeCurrent() + " " +"current: "+ jvmruntimembean.getHeapSizeCurrent() );
}
}*/
/*if(poolcheck.equals("Y")||poolcheck.equals("y"))
{
while(iterator1.hasNext())
//if(!iterator1.hasNext())
// break;
{
JDBCConnectionPoolRuntimeMBean jdbcconnectionpoolruntimembean = (JDBCConnectionPoolRuntimeMBean)iterator1.next();
if(jdbcconnectionpoolruntimembean.getName().equals(poolname1)||jdbcconnectionpoolruntimembean.getName().equals(poolname2) )
{
System.out.println("\n"+jdbcconnectionpoolruntimembean.getName()+" "+"currentcount="+jdbcconnectionpoolruntimembean.getActiveConnectionsCurrentCount()+" and "+"highcount="+jdbcconnectionpoolruntimembean.getActiveConnectionsHighCount()+"\n");
System.out.println("\n-----------------------------------------------------------------------");
}}
}*/
} while(true);
}
catch(Exception exception2)
{
System.out.println("Exception caught: 3 " + exception2);
}
try
{
Thread.sleep(500L);
}
catch(InterruptedException interruptedexception)
{
System.out.println("Interrupted Exception...." + interruptedexception);
}
//filewriter.write("\n--------------------------------------------------------------------------------");
} while(true);
}
catch(Exception exception)
{
System.out.println("Interrupted Exception...." + exception);
}
}
}