You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Short, Dave" <da...@pfizer.com> on 2002/08/18 02:22:48 UTC

DBCP borrowObject failed

I am having a problem getting a connection from JNDI.  I set up my
server.xml and web.xml files per the instructions in the JNDI Resources
HOW-TO and JNDI DataSource Examples on the Tomcat 4.1 Documentation Page.

Configuration:

W2K
Tomcat 4.1.9 (Stand Alone)
Oracle 8.1.7

Here's my Tomcat console output, server.xml and web.xml snippets.

Any help would be much appreciated.

Dave

Console Output
****************************************************************************
*************************************************

[INFO] Registry - -Loading registry information
[INFO] Registry - -Creating new Registry instance
[INFO] Registry - -Creating MBeanServer
[INFO] Http11Protocol - -Initializing Coyote HTTP/1.1 on port 8080
Starting service Tomcat-Standalone
Apache Tomcat/4.1.9
[INFO] Http11Protocol - -Starting Coyote HTTP/1.1 on port 8080
[INFO] ChannelSocket - -JK2: ajp13 listening on tcp port 8009
[INFO] JkMain - -APR not loaded, disabling jni components:
java.io.IOException:
no jkjni in java.library.path
[INFO] JkMain - -Jk running ID=0 time=60/60
config=C:\Tomcat\conf\jk2.properties
DBCP borrowObject failed: null
java.lang.NullPointerException
        at
org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnect
ion.java:237)
        at
org.apache.commons.dbcp.PoolableConnectionFactory.activateObject(PoolableCon
nectionFactory.java:273)
        at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(Unknown Source)
        at
org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool
.java:117)
        at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.ja
va:110)
        at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:3
12)
        at foo.DBTest.init(Unknown Source)
        at org.apache.jsp.test_jsp._jspService(test_jsp.java:52)
        at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
02)
        at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2350)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:380)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:533)
        at java.lang.Thread.run(Thread.java:479)


server.xml
****************************************************************************
*************************************************
        <!-- Tomcat PSI Context -->
        <Context path="/PSI" docBase="PSI" debug="0"
                 reloadable="true" crossContext="true">

          <Logger className="org.apache.catalina.logger.FileLogger"
                     prefix="short200_PSI_log." suffix=".txt"
        	  timestamp="true"/>

          <Resource name="jdbc/PSIOracle" auth="Container"
                    type="javax.sql.DataSource"/> 

          <ResourceParams name="jdbc/PSIOracle">

            <parameter>
              <name>factory</name>
              <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
            </parameter>
    
            <parameter>
              <name>username</name>
              <value>cust0</value>
            </parameter>

            <parameter>
              <name>password</name>
              <value>sql</value>
            </parameter>

            <parameter>
              <name>driverClassName</name>
              <value>oracle.jdbc.driver.OracleDriver</value>
            </parameter>

            <parameter>
              <name>url</name>
              <value>jdbc:oracle:thin:CUST0@short200:1521:PSIP</value>
            </parameter>

            <parameter>
              <name>maxActive</name>
              <value>20</value>
            </parameter>

            <parameter>
              <name>maxIdle</name>
              <value>10</value>
            </parameter>

            <parameter>
              <name>maxWait</name>
              <value>-1</value>
            </parameter>

            <parameter>
              <name>validationQuery</name>
              <value>select 1 from dual</value>
            </parameter>

          </ResourceParams>

        </Context>

web.xml
****************************************************************************
*************************************************
<web-app>
  <resource-ref>

    <description>
      Resource reference to a factory for java.sql.Connection
      instances that may be used for talking to a particular
      database that is configured in the server.xml file.
    </description>

    <res-ref-name>
      jdbc/PSIOracle
    </res-ref-name>

    <res-type>
      javax.sql.DataSource
    </res-type>

    <res-auth>
      Container
    </res-auth>

  </resource-ref>

</web-app>

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: DBCP borrowObject failed

Posted by Simon T <to...@sydneybluegum.com>.
Your server xml is missing usersname and password, mybe you left this 
out in the email.
web.xml is fine, but it need to be the one under PSI/WEB-INF

I am running oracle fine wtih JDK1.3.1 as a window service, have not got 
going with JDK1.4.0 yet.
My url has no username in front of it.
    <value>jdbc:oracle:thin:@localhost:1521:test</value>

Yours has

value>jdbc:oracle:thin:CUST0@short200:1521:PSIP</value>

is CUSTO correct? Maybe you could leave it out.

Did you use the correct tomcat.exe, the LE one is for JDK1.4.


This is from my server.xml
<Resource name="jdbc/myoracle" auth="Container"
              type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/myoracle">
  <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  </parameter>
  <parameter>
    <name>driverClassName</name>
    <value>oracle.jdbc.driver.OracleDriver</value>
  </parameter>
  <parameter>
    <name>url</name>
    <value>jdbc:oracle:thin:@localhost:1521:test</value>
  </parameter>
  <parameter>
    <name>username</name>
    <value>test</value>
  </parameter>
  <parameter>
    <name>password</name>
    <value>xxxx</value>
  </parameter>
  <parameter>
    <name>maxActive</name>
    <value>20</value>
  </parameter>
  <parameter>
    <name>maxIdle</name>
    <value>10</value>
  </parameter>
  <parameter>
    <name>maxWait</name>
    <value>-1</value>
  </parameter>
</ResourceParams>

Simon

Short, Dave wrote:

>I am having a problem getting a connection from JNDI.  I set up my
>server.xml and web.xml files per the instructions in the JNDI Resources
>HOW-TO and JNDI DataSource Examples on the Tomcat 4.1 Documentation Page.
>
>Configuration:
>
>W2K
>Tomcat 4.1.9 (Stand Alone)
>Oracle 8.1.7
>
>Here's my Tomcat console output, server.xml and web.xml snippets.
>
>Any help would be much appreciated.
>
>Dave
>
>Console Output
>****************************************************************************
>*************************************************
>
>[INFO] Registry - -Loading registry information
>[INFO] Registry - -Creating new Registry instance
>[INFO] Registry - -Creating MBeanServer
>[INFO] Http11Protocol - -Initializing Coyote HTTP/1.1 on port 8080
>Starting service Tomcat-Standalone
>Apache Tomcat/4.1.9
>[INFO] Http11Protocol - -Starting Coyote HTTP/1.1 on port 8080
>[INFO] ChannelSocket - -JK2: ajp13 listening on tcp port 8009
>[INFO] JkMain - -APR not loaded, disabling jni components:
>java.io.IOException:
>
>[INFO] JkMain - -Jk running ID=0 time=60/60
>config=C:\Tomcat\conf\jk2.properties
>DBCP borrowObject failed: null
>java.lang.NullPointerException
>        at
>org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnect
>ion.java:237)
>        at
>org.apache.commons.dbcp.PoolableConnectionFactory.activateObject(PoolableCon
>nectionFactory.java:273)
>        at
>org.apache.commons.pool.impl.GenericObjectPool.borrowObject(Unknown Source)
>        at
>org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool
>.java:117)
>        at
>org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.ja
>va:110)
>        at
>org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:3
>12)
>        at foo.DBTest.init(Unknown Source)
>        at org.apache.jsp.test_jsp._jspService(test_jsp.java:52)
>        at
>org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>        at
>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
>02)
>        at
>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
>        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>        at
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
>FilterChain.java:247)
>        at
>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
>ain.java:193)
>        at
>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
>va:260)
>        at
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
>eNext(StandardPipeline.java:643)
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>        at
>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
>va:191)
>        at
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
>eNext(StandardPipeline.java:643)
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>        at
>org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2350)
>        at
>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
>)
>        at
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
>eNext(StandardPipeline.java:643)
>        at
>org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
>java:170)
>        at
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
>eNext(StandardPipeline.java:641)
>        at
>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171
>)
>        at
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
>eNext(StandardPipeline.java:641)
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>        at
>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
>:174)
>        at
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
>eNext(StandardPipeline.java:643)
>        at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
>        at
>org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>        at
>org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>        at
>org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
>        at
>org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
>ction(Http11Protocol.java:380)
>        at
>org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
>        at
>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
>a:533)
>        at java.lang.Thread.run(Thread.java:479)
>
>
>server.xml
>****************************************************************************
>*************************************************
>        <!-- Tomcat PSI Context -->
>        <Context path="/PSI" docBase="PSI" debug="0"
>                 reloadable="true" crossContext="true">
>
>          <Logger className="org.apache.catalina.logger.FileLogger"
>                     prefix="short200_PSI_log." suffix=".txt"
>        	  timestamp="true"/>
>
>          <Resource name="jdbc/PSIOracle" auth="Container"
>                    type="javax.sql.DataSource"/> 
>
>          <ResourceParams name="jdbc/PSIOracle">
>
>            <parameter>
>              <name>factory</name>
>              <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
>            </parameter>
>    
>            <parameter>
>              <name>username</name>
>              <value>cust0</value>
>            </parameter>
>
>            <parameter>
>              <name>password</name>
>              <value>sql</value>
>            </parameter>
>
>            <parameter>
>              <name>driverClassName</name>
>              <value>oracle.jdbc.driver.OracleDriver</value>
>            </parameter>
>
>            <parameter>
>              <name>url</name>
>              <value>jdbc:oracle:thin:CUST0@short200:1521:PSIP</value>
>            </parameter>
>
>            <parameter>
>              <name>maxActive</name>
>              <value>20</value>
>            </parameter>
>
>            <parameter>
>              <name>maxIdle</name>
>              <value>10</value>
>            </parameter>
>
>            <parameter>
>              <name>maxWait</name>
>              <value>-1</value>
>            </parameter>
>
>            <parameter>
>              <name>validationQuery</name>
>              <value>select 1 from dual</value>
>            </parameter>
>
>          </ResourceParams>
>
>        </Context>
>
>web.xml
>****************************************************************************
>*************************************************
><web-app>
>  <resource-ref>
>
>    <description>
>      Resource reference to a factory for java.sql.Connection
>      instances that may be used for talking to a particular
>      database that is configured in the server.xml file.
>    </description>
>
>    <res-ref-name>
>      jdbc/PSIOracle
>    </res-ref-name>
>
>    <res-type>
>      javax.sql.DataSource
>    </res-type>
>
>    <res-auth>
>      Container
>    </res-auth>
>
>  </resource-ref>
>
></web-app>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>  
>




--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>