Hello all,
I am currently working on getting Tomcat and DB2 to work together here and have
been having a heck of a time.
I'm at a point where I'm able to reference the JNDI resource in my test servlet
(finally), and now am getting a connection pool issue: "Cannot create
PoolableConnectionFactory"
I am running Tomcat 6.0.x. I know there were some changes to resource
definitions at some point in v5, is there anything that changed in v6 that I
could be missing? At what point do I declare a factory in the resource and
how/why is that used?
To access the database, I use the following code:
javax.sql.DataSource DS2 =
(javax.sql.DataSource)ctx.lookup("java:/comp/env/jdbc/PhoenixDB");
Connection con = DS2.getConnection();
If I add a factory attribute to context.xml (listed below), getConnection()
returns null: factory="com.ibm.db2.jcc.DB2DataSourceFactory"
I have seen many examples with 'how-to's", many of them don't specify versions
and it's hard to tell what belongs to what.
Also in V6, it seems to be using a version of dbcp associated with tomcat as
opposed to commons. (org.apache.tomcat.dbcp.*) Has some underlying behavior
changed as well here?
Thanks!
-P
Following is information related to my setup:
--------
META-INF/context.xml:
<Context>
<Resource name="jdbc/PhoenixDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.ibm.db2.jcc.DB2Driver"
validationQuery="SELECT 1"
loginTimeout="10"
connectionProperties="currentSchema=T;"
maxWait="5000"
username="uid"
password="pwd"
testOnBorrow="true"
driverType="4"
url="jdbc:db2://test:50000/TDB"
/>
</Context>
Stacktrace:
DS2 : org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (DB2 SQL error: SQLCODE: -104, SQLSTATE:
42601, SQLERRMC: ;;+ - AS )
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (DB2 SQL error: SQLCODE: -104, SQLSTATE:
42601, SQLERRMC: ;;+ - AS )
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at TestServlet.performTask(TestServlet.java:49)
at TestServlet.doGet(TestServlet.java:17)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:866)
at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:716)
at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1498)
at java.lang.Thread.run(Unknown Source)
Caused by: com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -104,
SQLSTATE: 42601, SQLERRMC: ;;+ - AS
at com.ibm.db2.jcc.b.zc.e(zc.java:1606)
at com.ibm.db2.jcc.b.zc.a(zc.java:1206)
at com.ibm.db2.jcc.a.db.h(db.java:149)
at com.ibm.db2.jcc.a.db.a(db.java:43)
at com.ibm.db2.jcc.a.r.a(r.java:30)
at com.ibm.db2.jcc.a.sb.g(sb.java:152)
at com.ibm.db2.jcc.b.zc.n(zc.java:1186)
at com.ibm.db2.jcc.b.zc.a(zc.java:1857)
at com.ibm.db2.jcc.b.zc.a(zc.java:497)
at com.ibm.db2.jcc.b.zc.executeQuery(zc.java:481)
at
org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:205)
at
org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:328)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:879)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
... 17 more
____________________________________________________________________________________
Don't pick lemons.
See all the new 2007 cars at Yahoo! Autos.
http://autos.yahoo.com/new_cars.html
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]