//来源: http://middlewaremagic.com/weblogic/?p=606 import java.io.IOException; import java.util.Hashtable; import java.util.Iterator; import java.util.Set; import javax.management.AttributeNotFoundException; import javax.management.InstanceNotFoundException; import javax.management.IntrospectionException; import javax.management.MBeanException; import javax.management.MBeanServerConnection; import javax.management.ObjectName; import javax.management.ReflectionException; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import javax.naming.Context; import weblogic.jndi.Environment; import weblogic.management.MBeanHome; import weblogic.management.WebLogicMBean; import weblogic.management.configuration.ComponentMBean; import weblogic.management.configuration.JDBCConnectionPoolMBean; import weblogic.management.configuration.JDBCTxDataSourceMBean; public class ConnectionPoolParamsChecker { static MBeanServerConnection connection; static JMXConnector connector; static ObjectName service; public static void main(String [] args){ try { //////////////// Enter the Admin Server Details here///////////////////// String protocol = "t3"; int port = 7001; String hostname = "localhost"; String jndiroot = "/jndi/"; String mserver = "weblogic.management.mbeanservers.domainruntime"; JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port, jndiroot + mserver); service = new ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean"); Hashtable h = new Hashtable(); h.put(Context.SECURITY_PRINCIPAL, "weblogic"); h.put(Context.SECURITY_CREDENTIALS, "weblogic"); h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,"weblogic.management.remote"); connector = JMXConnectorFactory.connect(serviceURL, h); connection = connector.getMBeanServerConnection(); new ConnectionPoolParamsChecker().getJdbcRuntime(); } catch(Exception e) { e.printStackTrace(); } } private ObjectName getJDBCDriverParamsBean(ObjectName jdbcSystemResourceMBean) throws AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException, IOException, IntrospectionException { ObjectName jdbcDataSourceBean = (ObjectName) getObjectName(jdbcSystemResourceMBean, "JDBCResource"); return (ObjectName) getObjectName(jdbcDataSourceBean, "JDBCDriverParams"); } private Object getObjectName(ObjectName objectName, String attributeName) throws AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException, IOException { return connection.getAttribute(objectName, attributeName); } public void getJdbcRuntime() throws Exception { ObjectName[] serverRT = (ObjectName[])connection.getAttribute(service, "ServerRuntimes"); int length = (int) serverRT.length; for (int i = 0; i < length; i++) { String name = (String) connection.getAttribute(serverRT[i],"Name"); ObjectName[] appRT = (ObjectName[]) connection.getAttribute(new ObjectName("com.bea:Name="+name+",ServerRuntime="+name+",Location="+name+",Type=JDBCServiceRuntime"),"JDBCDataSourceRuntimeMBeans"); int appLength = (int) appRT.length; for (int x = 0; x < appLength; x++) { System.out.println("\n\t******SERVER NAME: <<"+name+">> \tDataSource Name: " + (String)connection.getAttribute(appRT[x], "Name")+"..........\n"); System.out.println("ActiveConnectionsCurrentCount : " + connection.getAttribute(appRT[x], "ActiveConnectionsCurrentCount")); System.out.println("ActiveConnectionsAverageCount : " + connection.getAttribute(appRT[x], "ActiveConnectionsAverageCount")); System.out.println("ActiveConnectionsAverageCount : " + connection.getAttribute(appRT[x], "ActiveConnectionsAverageCount")); System.out.println("ConnectionsTotalCount : " + connection.getAttribute(appRT[x], "ConnectionsTotalCount")); System.out.println("CurrCapacity : " + connection.getAttribute(appRT[x], "CurrCapacity")); System.out.println("CurrCapacityHighCount : " + connection.getAttribute(appRT[x], "CurrCapacityHighCount")); System.out.println("HighestNumAvailable : " + connection.getAttribute(appRT[x], "HighestNumAvailable")); System.out.println("HighestNumAvailable : " + connection.getAttribute(appRT[x], "HighestNumAvailable")); System.out.println("LeakedConnectionCount : " + connection.getAttribute(appRT[x], "LeakedConnectionCount")); System.out.println("WaitSecondsHighCount : " + connection.getAttribute(appRT[x], "WaitSecondsHighCount")); System.out.println("WaitingForConnectionCurrentCount: " + connection.getAttribute(appRT[x], "WaitingForConnectionCurrentCount")); System.out.println("WaitingForConnectionFailureTotal: " + connection.getAttribute(appRT[x], "WaitingForConnectionFailureTotal")); System.out.println("WaitingForConnectionTotal : " + connection.getAttribute(appRT[x], "WaitingForConnectionTotal")); System.out.println("WaitingForConnectionHighCount : " + connection.getAttribute(appRT[x], "WaitingForConnectionHighCount")); String poolName = (String)connection.getAttribute(appRT[x], "Name"); ObjectName jdbcSystemResource = new ObjectName("com.bea:Name=" + poolName+ ",Type=JDBCSystemResource"); ObjectName jdbcDataSourceBean = (ObjectName) getObjectName(jdbcSystemResource, "JDBCResource"); //////////////////// System.out.println("\n\t Connection Pool Parameters: \n"); ObjectName jdbcConnectionPoolParams = (ObjectName) getObjectName(jdbcDataSourceBean, "JDBCConnectionPoolParams"); Integer CapacityIncrement = (Integer) getObjectName(jdbcConnectionPoolParams, "CapacityIncrement"); System.out.println("\t CapacityIncrement :"+CapacityIncrement); Integer ConnectionCreationRetryFrequencySeconds = (Integer) getObjectName(jdbcConnectionPoolParams, "ConnectionCreationRetryFrequencySeconds"); System.out.println("\t ConnectionCreationRetryFrequencySeconds:"+ConnectionCreationRetryFrequencySeconds); Integer ConnectionReserveTimeoutSeconds = (Integer) getObjectName(jdbcConnectionPoolParams, "ConnectionReserveTimeoutSeconds"); System.out.println("\t ConnectionReserveTimeoutSeconds :"+ConnectionReserveTimeoutSeconds); Integer HighestNumWaiters = (Integer) getObjectName(jdbcConnectionPoolParams, "HighestNumWaiters"); System.out.println("\t HighestNumWaiters :"+HighestNumWaiters); Integer InactiveConnectionTimeoutSeconds = (Integer) getObjectName(jdbcConnectionPoolParams, "InactiveConnectionTimeoutSeconds"); System.out.println("\t InactiveConnectionTimeoutSeconds :"+CapacityIncrement); Integer InitialCapacity = (Integer) getObjectName(jdbcConnectionPoolParams, "InitialCapacity"); System.out.println("\t InitialCapacity :"+InitialCapacity); Integer JDBCXADebugLevel = (Integer) getObjectName(jdbcConnectionPoolParams, "JDBCXADebugLevel"); System.out.println("\t JDBCXADebugLevel :"+JDBCXADebugLevel); Integer LoginDelaySeconds = (Integer) getObjectName(jdbcConnectionPoolParams, "LoginDelaySeconds"); System.out.println("\t LoginDelaySeconds :"+LoginDelaySeconds); Integer MaxCapacity = (Integer) getObjectName(jdbcConnectionPoolParams, "MaxCapacity"); System.out.println("\t MaxCapacity :"+MaxCapacity); Integer ProfileHarvestFrequencySeconds = (Integer) getObjectName(jdbcConnectionPoolParams, "ProfileHarvestFrequencySeconds"); System.out.println("\t ProfileHarvestFrequencySeconds :"+ProfileHarvestFrequencySeconds); Integer ProfileType = (Integer) getObjectName(jdbcConnectionPoolParams, "ProfileType"); System.out.println("\t ProfileType :"+ProfileType); Integer SecondsToTrustAnIdlePoolConnection = (Integer) getObjectName(jdbcConnectionPoolParams, "SecondsToTrustAnIdlePoolConnection"); System.out.println("\t SecondsToTrustAnIdlePoolConnection :"+SecondsToTrustAnIdlePoolConnection); Integer ShrinkFrequencySeconds = (Integer) getObjectName(jdbcConnectionPoolParams, "ShrinkFrequencySeconds"); System.out.println("\t ShrinkFrequencySeconds :"+ShrinkFrequencySeconds); Integer StatementTimeout = (Integer) getObjectName(jdbcConnectionPoolParams, "StatementTimeout"); System.out.println("\t StatementTimeout :"+StatementTimeout); Integer TestFrequencySeconds = (Integer) getObjectName(jdbcConnectionPoolParams, "TestFrequencySeconds"); System.out.println("\t TestFrequencySeconds :"+TestFrequencySeconds); String TestTableName = (String) getObjectName(jdbcConnectionPoolParams, "TestTableName"); System.out.println("\t TestTableName :"+TestTableName); String StatementCacheType = (String) getObjectName(jdbcConnectionPoolParams, "StatementCacheType"); System.out.println("\t StatementCacheType :"+StatementCacheType); String InitSql = (String) getObjectName(jdbcConnectionPoolParams, "InitSql"); System.out.println("\t InitSql :"+InitSql); Boolean CredentialMappingEnabled = (Boolean) getObjectName(jdbcConnectionPoolParams, "CredentialMappingEnabled"); System.out.println("\t CredentialMappingEnabled :"+CredentialMappingEnabled); Boolean IdentityBasedConnectionPoolingEnabled = (Boolean) getObjectName(jdbcConnectionPoolParams, "IdentityBasedConnectionPoolingEnabled"); System.out.println("\t IdentityBasedConnectionPoolingEnabled :"+IdentityBasedConnectionPoolingEnabled); Boolean IgnoreInUseConnectionsEnabled = (Boolean) getObjectName(jdbcConnectionPoolParams, "IgnoreInUseConnectionsEnabled"); System.out.println("\t IgnoreInUseConnectionsEnabled :"+IgnoreInUseConnectionsEnabled); Boolean PinnedToThread = (Boolean) getObjectName(jdbcConnectionPoolParams, "PinnedToThread"); System.out.println("\t PinnedToThread :"+PinnedToThread); Boolean RemoveInfectedConnections = (Boolean) getObjectName(jdbcConnectionPoolParams, "RemoveInfectedConnections"); System.out.println("\t RemoveInfectedConnections :"+RemoveInfectedConnections); ///////////////////// ObjectName jdbcDriverParams=(ObjectName) getObjectName(jdbcDataSourceBean, "JDBCDriverParams"); ObjectName jdbcProperties=(ObjectName) getObjectName(jdbcDriverParams, "Properties"); ObjectName[] jdbcPropertyBeans = (ObjectName[]) getObjectName(jdbcProperties, "Properties"); for (int j = 0; j < jdbcPropertyBeans.length; j++) { ObjectName jdbcPropertyBean = null; jdbcPropertyBean = jdbcPropertyBeans[j]; String jdbcPropertyName = (String) getObjectName(jdbcPropertyBean, "Name"); String jdbcPropertyValue = (String) getObjectName(jdbcPropertyBean, "Value"); System.out.println("\n\tDataSource URL And "+jdbcPropertyName+"\t"+jdbcPropertyValue); } System.out.println(".............................................................................\n"); } } } }
相关推荐
weblogic配置sql数据连接池
在WebLogic中建立数据库连接池与数据源及利用JBuilder进行测试
资料为本人整理的weblogic配置应用和配置连接池的方法,供大家参考!
weblogic连接池配置说明, weblogic8.1连接池配置及简单优化
loadrunner 监视 weblogic(JMX) 操作详细步骤.txt
WebLogic 11g配置数据库连接池
BEA WebLogic Server实现了JMX大部分的API,并且提供了一个完全兼容JMX的控制台来管理各种资源。OPEN SOURCE的应用服务器JBoss也是基于JMX来实现。并且对之评价很高,认为是目前为止最好的软件集成工具。JBoss的成功...
weblogic连接池配置数据库断掉重连的问题
WebLogic_11g配置数据库连接池,里面有自己写的java代码,可以测试配置WebLogic是否成功
weblogic数据源连接池的创建步骤,很快很好很方便
java项目,自己做的项目利用jmx监控weblogic,tomcat,websphere源码
weblogic+Oracle数据库连接池的配置问题
weblogic与oracle数据库通过连接池连接及测试代码 另有myeclipse中weblogic服务器下使用jsf1.2的设置步骤
BEA_Weblogic_配置Oracle连接池 轻松搞定
Java版 jmx 监控weblogic 生成html
实时获取weblogic连接池使用情况;下载之后修改JmxWeblogicMonitor类中port、hostname、userName、passWord属性值(对应自己实际值);有注释很简单,不懂留言!
在WebLogic中建立数据库连接池与数据源及利用JBuilder进行测试.pdf
weblogic中,如何配置各种数据库的连接池
tomcat和weblogic的jmx开通方式。。
里面有截图,和文字描述,很适合初级使用者