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>