You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Angus Mezick <am...@guidestar.org> on 2003/09/03 22:32:07 UTC
Using jndi to get a DBCP BasicDataSource give ClassCastException
I am having problems with the GlobalNamingResources. If I put my two DB
resource entries into the GlobalNamingResources section and just use
Resource-Links to access them I cannot cast from DataSource to
BasicDataSource.. I need to do this to use this line in my monitoring
app: (I can still use the Datasources to get talk to the DB, just not
recast it from the interface to the concrete class)
pageContext.getOut().println(" jdbc/CommerceDB: Active: " +
((BasicDataSource)ds).getNumActive() + " Idle: " +
((BasicDataSource)ds).getNumIdle() + "<br>");
If I define the resources directly in the Context everything works fine.
ARGH! Here is my server.xml snippets:
<GlobalNamingResources>
<Resource name="jdbc/SessionDBGlobal" auth="Container"
type="javax.sql.DataSource"/>
<Resource name="jdbc/CommerceDBGlobal" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/SessionDBGlobal">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.inet.tds.TdsDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:inetdae7a:IPADDR</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select top 1 name from
syscolumns</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>300</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>timeBetweenEvictionRunsMillis</name>
<value>60000</value>
</parameter>
<parameter>
<name>testOnBorrow</name>
<value>true</value>
</parameter>
<parameter>
<name>testWhileIdle</name>
<value>true</value>
</parameter>
</ResourceParams>
<ResourceParams name="jdbc/CommerceDBGlobal">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.inet.tds.TdsDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:inetdae7a:IPADDR</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select top 1 name from
syscolumns</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>300</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>timeBetweenEvictionRunsMillis</name>
<value>60000</value>
</parameter>
<parameter>
<name>testOnBorrow</name>
<value>true</value>
</parameter>
<parameter>
<name>testWhileIdle</name>
<value>true</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
---- 8< ---- 8< ----
<Host name="wwwHOST_NAME.guidestar.net"
debug="1"
appBase="/Guidestar/" unpackWARs="true"
autoDeploy="true">
<Logger
className="org.apache.catalina.logger.FileLogger"
directory="logs"
prefix="wwwHOST_NAME_log." suffix=".txt"
timestamp="true"/>
<Context path="" reloadable="true"
docBase="C:\GuideStar\GsMain\web"
workDir="C:\GuideStar\GsMain\web\work\org\apache\jsp"
debug="1">
<Manager
className="org.apache.catalina.session.JdbcSessionManager"
debug="1"
maxInactiveInterval="1800" maxIdleSwap="-1"
maxIdleBackup="-1"
checkInterval="60"
useDirtyFlag="true"
reaper="yes">
</Manager>
<InstanceListener>
org.apache.catalina.session.JdbcSessionInstanceListener</InstanceListene
r>
<Loader
className="org.apache.catalina.loader.DevLoader"
reloadable="true"
debug="1"/>
<ResourceLink
name="jdbc/SessionDB"
global="jdbc/SessionDBGlobal"
type="javax.sql.DataSource"/>
<ResourceLink
name="jdbc/CommerceDB"
global="jdbc/CommerceDBGlobal"
type="javax.sql.DataSource"/>
</Context>
</Host>
</Engine>
</Service>
</Server>