Dbcp

3 respostas
_fs

Olá, boa tarde … seguinte:

Ambiente: tomcat 5.0.14, sql server 2000, jdbc, win2000 server, webwork 1.4

Configurações:
Server.xml

<Context path="/SelectManager" docBase="D:InetpubwwwrootSelectManager" debug="5" crossContext="true" workDir="D:InetpubwwwrootSelectManagerwork" reloadable="true">
			<Resource name="jdbc/SelectManager" auth="Container" type="javax.sql.DataSource"/>
			<ResourceParams name="jdbc/SelectManager">
				<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>30000</value>
				</parameter>
				<parameter>
					<name>maxWait</name>
					<value>100</value>
				</parameter>
				<parameter>
					<name>username</name>
					<value>sa</value>
				</parameter>
				<parameter>
					<name>password</name>
					<value>pass</value>
				</parameter>
				<parameter>
					<name>driverClassName</name>
					<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
				</parameter>
				<parameter>
					<name>url</name>
					<value>jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=smbase</value> 
				</parameter> 
			</ResourceParams>
		</Context>

web.xml

<resource-ref>
		<description>DB Connection</description>
		<res-ref-name>jdbc/SelectManager</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>

minha classe Conn ( que é chamada a partir de uma classe Action )

Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
			
			Context ctx = new InitialContext();
			DataSource ds = (DataSource) ctx.lookup( "java" );
			
			conn = ds.getConnection();

Dúvida:
Qual Name eu tenho que colocar no método Lookup() para ter acesso ao dataSource?

No exemplo que eu segui aqui:
http://www.midrangeserver.com/mpo/mpo081502-story04.html
Ele diz para preencher com

ctx.lookup("java:comp/env/jdbc/db2p")

Mas fazendo assim eu recebo uma

NamingException: name db2p is not bound to this Context

Todo o resto está certinho?

Muitíssimo obrigado!

3 Respostas

leonardom

LIPE tente colocar assim:

ctx.lookup("java:comp/env/jdbc/SelectManager")

SelectManager é o nome que está definido no seu server.xml

<ResourceParams name="jdbc/SelectManager">

Mas caso não funcionar tente ver o este exemplo:

http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html#Database%20Connection%20Pool%20
[/code]

_fs

… lindo.

Valeu cara :smiley:

devendo mais uma cerveja

_fs

O único detalhe é que o tomcat simplesmente fecha depois da primeira consulta hehe

2004-02-16 15:07:36 NamingContextListener[/Catalina/localhost/SelectManager]:   Resource parameters for jdbc/SelectManager = ResourceParams[name=jdbc/SelectManager, parameters={factory=org.apache.commons.dbcp.BasicDataSourceFactory, url=jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=smbase, password=pass, maxWait=100, maxActive=100, driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver, username=sa, maxIdle=100}]
2004-02-16 15:07:36 NamingContextListener[/Catalina/localhost/SelectManager]:   Adding resource ref jdbc/SelectManager
2004-02-16 15:07:36 NamingContextListener[/Catalina/localhost/SelectManager]:   ResourceRef[className=javax.sql.DataSource,factoryClassLocation=null,factoryClassName=org.apache.naming.factory.ResourceFactory,{type=scope,content=Shareable},{type=auth,content=Container},{type=factory,content=org.apache.commons.dbcp.BasicDataSourceFactory},{type=url,content=jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=smbase},{type=password,content=pass},{type=maxWait,content=100},{type=maxActive,content=100},{type=driverClassName,content=com.microsoft.jdbc.sqlserver.SQLServerDriver},{type=username,content=sa},{type=maxIdle,content=100}]
2004-02-16 15:07:36 NamingContextListener[/Catalina/localhost/SelectManager]:   Resource parameters for UserTransaction = null
2004-02-16 15:07:39 ContextListener: contextInitialized()
2004-02-16 15:07:39 SessionListener: contextInitialized()
2004-02-16 15:07:39 ContextListener: contextInitialized()
2004-02-16 15:07:39 SessionListener: contextInitialized()
2004-02-16 15:07:53 SessionListener: contextDestroyed()
2004-02-16 15:07:53 ContextListener: contextDestroyed()
2004-02-16 15:07:53 SessionListener: contextDestroyed()
2004-02-16 15:07:53 ContextListener: contextDestroyed()

abrindo google

Criado 16 de fevereiro de 2004
Ultima resposta 16 de fev. de 2004
Respostas 3
Participantes 2