Re: [question] Tomcat 5.5 & JNDI DataSources

From: Eric Schneider (eri..entralparksoftware.com)
Date: Thu Feb 10 2005 - 10:25:11 EST

  • Next message: Andrus Adamchik: "Re: Paginated Queries"

    laszlo,

    I have a similar config for one of my projects...here's how I have it
    set up:

    server.xml (this stuff is all between my GlobalNamingResources tags):

      <Resource name="jdbc/sophora" type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/sophora">
           <parameter>
             <name>maxWait</name>
             <value>5000</value>
           </parameter>
           <parameter>
             <name>maxActive</name>
             <value>6</value>
           </parameter>
           <parameter>
             <name>password</name>
             <value>crap</value>
           </parameter>
           <parameter>
             <name>url</name>
             <value>jdbc:mysql://localhost/sophora</value>
           </parameter>
           <parameter>
             <name>driverClassName</name>
             <value>org.gjt.mm.mysql.Driver</value>
           </parameter>
           <parameter>
             <name>maxIdle</name>
             <value>2</value>
           </parameter>
           <parameter>
             <name>username</name>
             <value>crap</value>
           </parameter>
         </ResourceParams>

    The new versions of tomcat have separate config files in
    $CATALINA_HOME/conf/Catalina/localhost. In this directory I have an
    xml file named processing.xml (which is my app name). It contains the
    following:

    <?xml version='1.0' encoding='utf-8'?>
    <Context crossContext="true" displayName="Sophora Processing
    Application" docBase="processing" path="/processing" reloadable="true"
    workDir="work/Catalina/localhost/processing">
       <Logger className="org.apache.catalina.logger.FileLogger"
    prefix="localhost_processing." suffix=".txt" timestamp="true"/>
       <ResourceLink global="jdbc/sophora" name="jdbc/sophora"
    type="javax.sql.DataSource"/>
    </Context>

    In the modeler, I select the MySql adaptor, the JNDIDataSourceFactory,
    and I use "jdbc/sophora" as the JNDI location.

    I don't have any additional configuration in my web.xml. I just
    lazily initialize a DataContext on my Tapestry Visit object.

    Hope that helps.
    e.

    On Feb 10, 2005, at 10:03 AM, Laszlo Spoor wrote:

    > Cayenne 1.1
    > MySQL 4.12
    > Tomcat 5.5.7
    >
    > Hello,
    >
    > I want to use a JNDI DataSource for connecting to my Database. These
    > are the steps I followed:
    >
    > - Used the modeler to tell Cayenne that I want to use the DataSource
    > jdbc/PvaDS (as explained in the documentation)
    > - Added to web.xml
    > <listener>
    >
    > <listener-
    > class>org.objectstyle.cayenne.conf.BasicServletConfiguration</
    > listener-class>
    > </listener>
    >
    > <resource-ref>
    > <res-ref-name>jdbc/PvaDS</res-ref-name>
    > <res-type>javax.sql.DataSource</res-type>
    > <res-auth>Container</res-auth>
    > </resource-ref>
    >
    > - Added to server.xml (In <GlobalNamingResources>-tag):
    >
    > <Resource name="jdbc/PvaDS"
    > auth="Container"
    > type="javax.sql.DataSource"
    > factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
    > maxActive="100"
    > maxIdle="30"
    > maxWait="10000"
    > username="pva"
    > password="welcome1"
    > driverClassName="com.mysql.jdbc.Driver"
    > url="jdbc:mysql://localhost:3306/pva_dev?autoReconnect=true"/>
    >
    > - Added to context.xml (in <Context>-tag):
    >
    > <ResourceLink global="jdbc/PvaDS" name="jdbc/PvaDS"
    > type="javax.sql.DataSource"/>
    >
    > I am certain that all references to the JNDI Datasource point to:
    > jdbc/PvaDS. I have tried to use the factory:
    > 'org.objectstyle.cayenne.conn.ContainerPoolFactory', but then Tomcat
    > does not want to start.
    >
    > Now, when I start Tomcat, I get the following message:
    >
    > 15:12:14 ERROR (ManagerBase) -Exception loading sessions from
    > persistent storage
    > org.objectstyle.cayenne.ConfigurationException: [v.1.1 December 6
    > 2004] Error during Configuration initialization. [v.1.1 December 6
    > 2004] Load failures. Main configuration class:
    > org.objectstyle.cayenne.conf.DefaultConfiguration, details:
    > domain.node.name=ProvestaDomainNode,
    > domain.node.datasource=jdbc/PvaDS, reason: DataSource load failed -
    > Name jdbc is not bound in this Context
    > at
    > org.objectstyle.cayenne.conf.Configuration.initializeSharedConfiguratio
    > n(Configuration.java:304)
    > at
    > org.objectstyle.cayenne.conf.Configuration.initializeSharedConfiguratio
    > n(Configuration.java:278)
    > at
    > org.objectstyle.cayenne.conf.Configuration.initializeSharedConfiguratio
    > n(Configuration.java:261)
    > at
    > org.objectstyle.cayenne.conf.Configuration.getSharedConfiguration(Confi
    > guration.java:224)
    > at
    > org.objectstyle.cayenne.access.DataContext.awakeFromDeserialization(Dat
    > aContext.java:350)
    > at
    > org.objectstyle.cayenne.access.DataContext.getObjectStore(DataContext.j
    > ava:423)
    > at
    > org.objectstyle.cayenne.access.DataContext.readObject(DataContext.java:
    > 1872)
    > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    > at
    > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
    > va:39)
    > at
    > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
    > rImpl.java:25)
    > at java.lang.reflect.Method.invoke(Method.java:585)
    > at
    > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:919)
    > at
    > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1813)
    > at
    > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
    > 1713)
    > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
    > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
    > at
    > org.apache.catalina.session.StandardSession.readObject(StandardSession.
    > java:1362)
    > at
    > org.apache.catalina.session.StandardSession.readObjectData(StandardSess
    > ion.java:894)
    > at
    > org.apache.catalina.session.StandardManager.doLoad(StandardManager.java
    > :393)
    > at
    > org.apache.catalina.session.StandardManager.load(StandardManager.java:
    > 320)
    > at
    > org.apache.catalina.session.StandardManager.start(StandardManager.java:
    > 634)
    > at
    > org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:
    > 431)
    > at
    > org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.j
    > ava:354)
    > at
    > org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:
    > 970)
    > at
    > org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.
    > java:249)
    > at
    > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleS
    > upport.java:119)
    > at
    > org.apache.catalina.core.StandardContext.start(StandardContext.java:
    > 4020)
    > at
    > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.j
    > ava:759)
    > at
    > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:
    > 739)
    > at
    > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    > at
    > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java
    > :590)
    > at
    > org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.jav
    > a:535)
    > at
    > org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
    > at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1106)
    > at
    > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:
    > 310)
    > at
    > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleS
    > upport.java:119)
    > at
    > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1019)
    > at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    > at
    > org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1011)
    > at
    > org.apache.catalina.core.StandardEngine.start(StandardEngine.java:440)
    > at
    > org.apache.catalina.core.StandardService.start(StandardService.java:
    > 450)
    > at
    > org.apache.catalina.core.StandardServer.start(StandardServer.java:683)
    > at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
    > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    > at
    > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
    > va:39)
    > at
    > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
    > rImpl.java:25)
    > at java.lang.reflect.Method.invoke(Method.java:585)
    > at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
    > at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
    > Caused by: org.objectstyle.cayenne.ConfigurationException: [v.1.1
    > December 6 2004] Load failures. Main configuration class:
    > org.objectstyle.cayenne.conf.DefaultConfiguration, details:
    > domain.node.name=ProvestaDomainNode,
    > domain.node.datasource=jdbc/PvaDS, reason: DataSource load failed -
    > Name jdbc is not bound in this Context
    > at
    > org.objectstyle.cayenne.conf.RuntimeLoadDelegate.finishedLoading(Runtim
    > eLoadDelegate.java:560)
    > at
    > org.objectstyle.cayenne.conf.ConfigLoader.loadDomains(ConfigLoader.java
    > :115)
    > at
    > org.objectstyle.cayenne.conf.DefaultConfiguration.initialize(DefaultCon
    > figuration.java:185)
    > at
    > org.objectstyle.cayenne.conf.Configuration.initializeSharedConfiguratio
    > n(Configuration.java:296)
    > ... 48 more
    >
    >
    > Can someone tell me what I am doing wrong?
    >
    > Thanks in advance, Laszlo Spoor
    >
    > _________________________________________________________________
    > Play online games with your friends with MSN Messenger
    > http://messenger.msn.nl/
    >



    This archive was generated by hypermail 2.0.0 : Thu Feb 10 2005 - 10:23:29 EST