關(guān)于如何配置Tomcat數(shù)據(jù)庫(kù)連接池,網(wǎng)上已有太多文章了??墒钦也坏揭黄恼履?br />
告訴我,怎么能得到Tomcat連接池的當(dāng)前連接數(shù)。如果想要監(jiān)視Tomcat的運(yùn)行狀況,這
是一個(gè)重要參數(shù)。所以我花了半天的時(shí)間,專(zhuān)門(mén)來(lái)研究這個(gè)問(wèn)題。
先是看了Tomcat的相關(guān)源碼,得到它用了jakarta commons-dbcp這個(gè)包,又下載了
commons-dbcp這個(gè)包的源嗎。終于在BasicDataSource找到getNumActive方法,這就是我想
要的。
Context initCtx = new InitialContext();
BasicDataSource bds = (BasicDataSource)initCtx.lookup("java:comp/env/jdbc/afunms");
initCtx.close();
bds.getConnection();
System.out.println("當(dāng)前連接數(shù)=" + bds.getNumActive());
隨時(shí)getConnection()的增加,這個(gè)numActive也會(huì)增多(如果不關(guān)閉connection的話)。
當(dāng)numActive>maxActive(這個(gè)maxActive在xml文件中)時(shí),程序就再不能連上DB了。這就
是我以前的程序?yàn)槭裁磿?huì)出錯(cuò)的原因,哈哈。
注:在連接池配置文件.xml中要寫(xiě)明
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>