Hi,
in my environmet ( WindowsXP, Tomcat5, DB2) dbforms cannot estblish a
dbconnection via JNDI resource to the database.
If the dbconnection is defined directly in dbform-config.xml then it works
fine.

How do I properly define a JNDI Connection ?
Following error occurs :

*******  connection error: ************
ERROR-[23.07.2004 
17:10:08]-[http-8080-Processor25]-[org.dbforms.config.DbConnection.getConnectionFromJNDI(DbConnection.java:427)]-::getConnectionFromJNDI
- cannot retrieve a connection from JNDI:
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
  at org.apache.naming.NamingContext.lookup(NamingContext.java:768)
  at org.apache.naming.NamingContext.lookup(NamingContext.java:151)
  at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136)
  at javax.naming.InitialContext.lookup(InitialContext.java:347)
  at org.dbforms.config.DbConnection.getConnectionFromJNDI(DbConnection.java:414)
  at org.dbforms.config.DbConnection.getConnection(DbConnection.java:548)
  at org.dbforms.config.DbFormsConfig.getConnection(DbFormsConfig.java:230)
  at org.dbforms.taglib.DbGetConnection.doStartTag(DbGetConnection.java:57)
  at org.apache.jsp.scmrpt.ctrlReportGen_jsp._jspService(ctrlReportGen_jsp.java:262)
  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
  at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
  at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
  at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
  at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
  at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
  at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
  at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
  at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
  at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
  at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
  at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
  at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
  at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
  at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)
  at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
  at java.lang.Thread.run(Thread.java:534)
  *************** END **********************


The Tomcat Context definition with Database Resource:
***** scmwebui.xml *******
<Context displayName="SCM WebUI" docBase="scmwebui" path="/scmwebui" 
workDir="work\Catalina\localhost\scmwebui">
  <Resource name="jdbc/SCMAN" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/SCMAN">
    <parameter>
      <name>url</name>
      <value>jdbc:db2://localhost/SCMAN</value>
    </parameter>
    <parameter>
      <name>validationQuery</name>
      <value>values(current timestamp)</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>2</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>4</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>COM.ibm.db2.jdbc.net.DB2Driver</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>5000</value>
    </parameter>
    <parameter>
      <name>removeAbandoned</name>
      <value>true</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>scmdbusr</value>
    </parameter>
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>logAbandoned</name>
      <value>true</value>
    </parameter>
    <parameter>
      <name>removeAbandonedTimeout</name>
      <value>60</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>pw23</value>
    </parameter>
  </ResourceParams>
</Context>
******** END **********
Reference in the deployment web.xml:
************** web.xml *************
  <resource-ref>
    <description>DB2 Datasource</description>
    <res-ref-name>jdbc/SCMAN</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
********** END *****************

The JNDI connection definition

******** dbform-config.xml **********
....
  <dbconnection
    name    = "jdbc/SCMAN"
    isJndi  = "true"
    isPow2  = "false"
    default = "true"
  />
....
******** END **********
What's wrong ?

This connection definition works:

******** dbform-config.xml **********
....
<dbconnection
    id = "jakarta-commons-dbcp"
    isJndi = "false"
    isPow2 = "false"
    default = "true"
    connectionProviderClass = "org.dbforms.conprovider.JakartaConnectionProvider"
    connectionPoolURL = ""
    name   = "jdbc:db2://localhost/SCMAN"
    conClass  = "COM.ibm.db2.jdbc.net.DB2Driver"
    username = "scmdbusr"
    password = "pw23">

    <!-- jdbc properties -->
    <property name="charSet" value="ISO-8859-1" />
    <!-- connection pool dataSource properties -->
    <pool-property name="validationQuery" value="values(current timestamp)"
/>
    <pool-property name="maxActive" value="10" />
    <pool-property name="maxIdle" value="5" />
    <pool-property name="maxWait" value="-1" />
    <pool-property name="useLog" value="false" />
    <pool-property name="removeAbandoned" value="true" />
    <pool-property name="logAbandoned" value="true" />
    <pool-property name="removeAbandonedTimeout" value="60" />

</dbconnection>
....
******** END **********
Thanks for Help
Regards
Peter



-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
DbForms Mailing List

http://www.wap-force.net/dbforms

Reply via email to