数据库连接池

我使用的weblogic服务器

在java中查看数据库连接池的大小,已连接数,未连接数等,有什么方法
(1)第一种怎么查看
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup(JNDIName);
ds没有对应的方法
(2)第二种怎么查看
Context initCtx = new InitialContext();
BasicDataSource bds = (BasicDataSource)initCtx.lookup("java:comp/env/jdbc/afunms");
initCtx.close();

bds.getConnection();
System.out.println("当前连接数=" + bds.getNumActive());

报错java.lang.ClassCastException: weblogic.jdbc.common.internal.RmiDataSource

明白了,你那个是rmiDatasoruce,是被rmi给代理过的,所以不存在这个class

你别心急,你看玩玩jconsole,看看有没有你说的connection链接数

你先用jconsole链接上去看看

有没有mbean在里面,如果有mbean的话,一切都很简单

[code="java"]
Context initCtx = new InitialContext();
RmiDataSource bds = (RmiDataSource)initCtx.lookup("java:comp/env/jdbc/afunms");
initCtx.close();

bds.getConnection();
System.out.println("当前连接数=" + bds.getNumActive());
[/code]

jsonsole的话,你可以google

然后链接到weblogic,就可以看mbean

链接上去就能看到

此外

你的jar里肯定有weblogic.jdbc.common.internal.RmiDataSource

你在eclipse里面用ctrl + shift + T 来寻找一下RmiDataSource

[quote]RmiDataSource类是哪个jar包中的啊?找不到怎么使用啊[/quote]

weblogic.jdbc.common.internal.RmiDataSource

weblogic的包,在weblogic中找找。

我觉得langshao说的思路不错

jconsole在你的%JAVA_HOME%/bin目录下

你双击点开,就能用了

用法很简单,再框框里面找java程度就好了

mbean这个东西,你得学习jmx,看看[url=http://download.oracle.com/javase/tutorial/jmx/index.html]jmx toturial[/url]就能知道怎么使用。

我想说的是,如果希望快速解决问题的话,还是cast to RmiDataSource这个类比较实用

提高的话,可以弄mbean

你的IDE是不是eclipse??

[quote]我用的MyEclipse8.5,但是我怎么也找不到RmiDataSource在哪里 [/quote]
它当然没有,这是weblogic的,在weblogic容器的lib中找得到。