Weblogic监控数据源(Jdbc连接池)



我是weblogic的初学者。我正在用wlst编写这个脚本,它监视当前从属于数据源的jdbc连接池中建立的连接数量。

以下是我对管理控制台工作原理的理解。首先需要定义Jdbc服务,然后将其分配给一个(或多个)服务器。一旦激活了更改,就会在服务器上创建jdbc服务的实例。

下面是我写的第一个jython代码片段(使用java文档):

domainRuntime()
servers=domainRuntimeService.getServerRuntimes()
for server in servers:
 jdbcDSrcs=server.getJDBCServiceRuntime().getJDBCDataSourceRuntimeMBeans()
 print 'Domain Name         #', cmo.getName()
 print 'Server Name         #', server.getName()
 for jdbaDSrc in jdbcDSrcs:
    print 'Data Source Name #', jdbaDSrc.getName()
    print 'Curr Connc Count #', jdbaDSrc.getActiveConnectionsCurrentCount()

你能评论一下逻辑和代码吗

(我还没有访问测试环境。因此我无法运行它。我几乎是在黑暗中编码)

网上论坛的很多例子都是这样的:

pools= adminHome.getMBeansByType('JDBCConnectionPoolRuntime')
for pool in pools:
  ......

我写的代码和上面的代码有什么不同?

这两个WLST调用都做同样的事情,但重要的信息是JDBCConnectionPoolRuntimeMBean已经被Weblogic版本9的getJDBCDataSourceRuntimeMBeans()所取代。请看这里提到的:

http://docs.oracle.com/cd/E21764_01/apirefs.1111/e13945/weblogic/management/runtime/JDBCConnectionPoolRuntimeMBean.html

您应该使用您的原始示例:

jdbcDSrcs=server.getJDBCServiceRuntime().getJDBCDataSourceRuntimeMBeans()

除非你使用的是更老版本的Weblogic。从语法上看,第一个例子看起来是正确的,我们对10.3.6做同样的事情。

最新更新