Conexão BD2 com JNDI

5 respostas
K

olá para tds…

estou com o seguinte problema… estou tentando conectar minha aplicação q esta rodando localmente, em um banco de dados db2 via JNDI… uma parte do arquivo server.xml q fica no tomcat esta assim:

server.xml

<!-- Tomcat Examples Context -->
		<Resource name="jdbc/ExtratoPrestadorMaritimaDS" auth="Container"  type="javax.sql.DataSource"/> 
		<ResourceParams name="jdbc/ExtratoPrestadorMaritimaDS"> 
			<parameter>
				<name>factory</name>
				<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
				<!--<value>com.ibm.db2.jcc.DB2DataSourceFactory</value>-->
			</parameter>
			<parameter>
				<name>maxWait</name>
				<value>5000</value>
			</parameter>
			<parameter>
				<name>maxActive</name>
				<value>4</value>
			</parameter>
			<parameter>
				<name>password</name>
				<value>microt</value>
			</parameter>
			<parameter>
				<name>url</name>
				<value>jdbc:db2:VAWS01:50000:DB2TEST</value>
				<!--<value>jdbc:db2:DB2TEST</value>-->
			</parameter>
			<parameter>
				<name>driverClassName</name>
				<value>com.ibm.db2.jcc.DB2Driver</value>
			</parameter>
			<parameter>
				<name>maxIdle</name>
				<value>2</value>
			</parameter>
			<parameter>
				<name>username</name>
				<value>microt</value>
			</parameter>
		</ResourceParams>
	</Context>

i o arquivo web.xml q está na minha aplicação está assim:

web.xml

<resource-ref>
		<res-ref-name>jdbc/ExtratoPrestadorMaritimaDS</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	 </resource-ref>

qunado eu tento conectar com o banco ele da um erro assim.

erro:

Erro ao efetuar pesquisa no banco de dados
	at br.com.maritima.prestador.persistence.DefaultDAO.query(DefaultDAO.java:93)
	at br.com.maritima.prestador.persistence.DefaultDAO.queryObject(DefaultDAO.java:166)
	at br.com.maritima.prestador.struts.business.LoginBean.efetuaLogin(LoginBean.java:25)
	at br.com.maritima.prestador.struts.action.LoginAction.execute(LoginAction.java:24)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Failure in loading T2 native library db2jcct2)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at br.com.maritima.prestador.persistence.DefaultDAO.getConnection(DefaultDAO.java:43)
	at br.com.maritima.prestador.persistence.DefaultDAO.query(DefaultDAO.java:76)
	... 39 more
Caused by: com.ibm.db2.jcc.b.SqlException: Failure in loading T2 native library db2jcct2
	at com.ibm.db2.jcc.t2.a.a(a.java:31)
	at com.ibm.db2.jcc.t2.T2Configuration.<clinit>(T2Configuration.java:60)
	at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:152)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
	... 42 more
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Failure in loading T2 native library db2jcct2)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at br.com.maritima.prestador.persistence.DefaultDAO.getConnection(DefaultDAO.java:43)
	at br.com.maritima.prestador.persistence.DefaultDAO.query(DefaultDAO.java:76)
	at br.com.maritima.prestador.persistence.DefaultDAO.queryObject(DefaultDAO.java:166)
	at br.com.maritima.prestador.struts.business.LoginBean.efetuaLogin(LoginBean.java:25)
	at br.com.maritima.prestador.struts.action.LoginAction.execute(LoginAction.java:24)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Unknown Source)
Caused by: com.ibm.db2.jcc.b.SqlException: Failure in loading T2 native library db2jcct2
	at com.ibm.db2.jcc.t2.a.a(a.java:31)
	at com.ibm.db2.jcc.t2.T2Configuration.<clinit>(T2Configuration.java:60)
	at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:152)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
	at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
	... 42 more

jah procurei na net e falaum de uma dll… a db2jcct2.dll… q deveria a ser ela !!! e o q ela poderia me ajudar !!!

bom… fico no aguardo por ajuda… desde jah agradeço…

fiquem com DEUS

5 Respostas

T

Seu diagnóstico está correto. Instale os drivers do DB2 corretamente (provavelmente você terá de instalar o DB2 Client na tal máquina com Tomcat), e teste novamente.

K

ok… mas eu jah tenho o DB2 Client instalado na minha maquina…

ele precisa estar startado ou algo do tipo ?!?!?!

eu dei um Pesquizar aque no pc e naum acho nada…

na pasta D:\Arquivos de programas\SQLLIB\bin\ tem varias dll menos essa q ele fala q não consegue carregar…

eu posso fazer download dessa dll separada ?!!? q q eu tenho q fazer ?!?!?

flow… e obrigado pela ajuda

K

estou com a versão 7.0 do client instalado no meu pc… vou instalar a ver 8 (q contem essa dll) e falar se deu ou não certo…

qualquer ajuda q vocês possam me dar, fico no aguardo

att.
Kleber

K

usando a versão 7.0 ele da o seguinte erro

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'COM.ibm.db2.jdbc.app.DB2Driver' for connect URL 'jdbc:db2://VAWS01:50000/DB2TEST'

a url de acesso q estou usando eh:

<parameter>
    <name>url</name>
    <value>jdbc:db2://VAWS01:50000/DB2TEST</value>
</parameter>

está errado a string de acesso ?!?!

[]'s

K

resolvi… a string de conxão com o banxco estava errada… o correto eh

jbdc:db2:dbName

somente isso… achei estranho por não conter o caminho para este data base… porem, pensei um pouco e conlui q ele relaciona com os bds configurados no client… sendo assim… isso faz sentido…

intaum… problema resolvido !!

obrigado

Criado 8 de maio de 2007
Ultima resposta 9 de mai. de 2007
Respostas 5
Participantes 2