Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Tomcat Users »

Re: Problems with InitialContext and threads

Tim de Boer

2004-06-09


Hello again. Just having another go at getting an answer on this one. Anybody with any suggestions? Please???

I have a problem with my Tomcat 4.1.24 installation which I'm hoping someone may have an answer for. I have a little quartz scheduler running in Tomcat which I start with a servlet (previously started with a listener but switched to servlet in the hope it might fix things - both ways produced the same error).

When I start Tomcat up in my development mode which has the configuration shown below all works fine. When I start up in production mode however there seems to be problems with *some* Quartz scheduler threads picking up the initialContext???

I have a little utility for printing out the name tree and the output varies between quartz threads??

Here is an example of the output
==============================================================================================

DEBUG[DefaultQuartzScheduler_Worker-4] HibernateUtils:79 - Beginning transaction
ERROR[DefaultQuartzScheduler_Worker-2] TomcatUtils:46 - javax.naming.NameNotFoundException: Name java: is not bound in this Context
DEBUG[DefaultQuartzScheduler_Worker-6] TomcatUtils:42 - >>>>>>>>>>>>>>>>>>>>>>>> PRINTING NAME TREE

>>>>>>>>>>>>>>>>>>>>>>>> FINISHED PRINTING NAME TREE
DEBUG[DefaultQuartzScheduler_Worker-7] HibernateUtils:79 - Beginning transaction
DEBUG[DefaultQuartzScheduler_Worker-2] HibernateUtils:79 - Beginning transaction
DEBUG[DefaultQuartzScheduler_Worker-8] HibernateUtils:79 - Beginning transaction
DEBUG[DefaultQuartzScheduler_Worker-5] HibernateUtils:79 - Beginning transaction
ERROR[DefaultQuartzScheduler_Worker-9] TomcatUtils:40 - javax.naming.NameNotFoundException: Name java: is not bound in this Context
DEBUG[DefaultQuartzScheduler_Worker-9] HibernateUtils:79 - Beginning transaction
Sending Mail!
Sending Mail!
Sending Mail!
Sending Mail!
DEBUG[DefaultQuartzScheduler_Worker-1] TomcatUtils:48 - >>>>>>>>>>>>>>>>>>>>>>>> PRINTING NAME TREE

>>>>>>>>>>>>>>>>>>>>>>>> FINISHED PRINTING NAME TREE
DEBUG[DefaultQuartzScheduler_Worker-6] HibernateUtils:79 - Beginning transaction
Sending Mail!
DEBUG[DefaultQuartzScheduler_Worker-0] TomcatUtils:42 - >>>>>>>>>>>>>>>>>>>>>>>> PRINTING NAME TREE

>>>>>>>>>>>>>>>>>>>>>>>> FINISHED PRINTING NAME TREE
Sending Mail!
Sending Mail!
DEBUG[DefaultQuartzScheduler_Worker-2] TomcatUtils:42 - >>>>>>>>>>>>>>>>>>>>>>>> PRINTING NAME TREE
-comp
--UserTransaction
Couldn't traverse any part of name java:/comp/\UserTransaction: Name is not bound to a Context
--env
---jdbc
----ln
Couldn't traverse any part of name java:/comp//env//jdbc/\ln: Name is not bound to a Context
--Resources
---WEB-INF
----classes
(..and so on)


Here is my production config...
==============================================================================================

<Server port="8005" shutdown="SHUTDOWN" debug="0">
<!-- <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/>-->

  <Service name="Tomcat-Standalone">

   <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
          port="80" minProcessors="5" maxProcessors="75"
          enableLookups="true" redirectPort="8443"
          acceptCount="100" debug="0" connectionTimeout="20000"
          useURIValidationHack="false" disableUploadTimeout="true" />

   <Engine name="Standalone" defaultHost="localhost" debug="0">
      <Host name="localhost" debug="0" unpackWARs="false">
      <Logger className="org.apache.catalina.logger.FileLogger"
            directory="..\logs" prefix="tomcat_" suffix=".log"
        timestamp="true"/>
      <Context
           path="/ln"
           docBase="LuckyNumbers"
           debug="10"
      >
      <Resource name="jdbc/ln" scope="Shareable" type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/ln">
        <parameter>
           <name>factory</name>
           <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <!-- DBCP database connection settings -->
        <parameter>
           <name>url</name>
           <value>jdbc:hsqldb:hsql://localhost</value>
        </parameter>
        <parameter>
           <name>driverClassName</name>
           <value>org.hsqldb.jdbcDriver</value>
        </parameter>
        <parameter>
           <name>username</name>
           <value>sa</value>
        </parameter>
        <parameter>
           <name>password</name>
           <value></value>
        </parameter>
        <!-- DBCP connection pooling options -->
        <parameter>
           <name>maxWait</name>
           <value>3000</value>
        </parameter>
        <parameter>
           <name>maxIdle</name>
           <value>100</value>
        </parameter>
        <parameter>
           <name>maxActive</name>
           <value>10</value>
        </parameter>
      </ResourceParams>        
        </Context>
      </Host>

   </Engine>
  </Service>
</Server>

Here is my development config...
==============================================================================================
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<!-- <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/>-->

  <Service name="Tomcat-Standalone">

   <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
          port="80" minProcessors="5" maxProcessors="75"
          enableLookups="true" redirectPort="8443"
          acceptCount="100" debug="0" connectionTimeout="20000"
          useURIValidationHack="false" disableUploadTimeout="true" />

   <Engine name="Standalone" defaultHost="localhost" debug="0">
      <Alias>Tim</Alias>
      <Host name="localhost" debug="0" unpackWARs="true" autoDeploy="true" >
        <Logger
           className="org.apache.catalina.logger.SystemOutLogger"
           timestamp="false"
        />
        <Context
           path="/ln"
           docBase="*project.dir*web"
           reloadable="true"
           debug="10"
        >
      <Resource name="jdbc/ln" scope="Shareable" type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/ln">
        <parameter>
           <name>factory</name>
           <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <!-- DBCP database connection settings -->
        <parameter>
           <name>url</name>
           <value>jdbc:hsqldb:hsql://localhost</value>
        </parameter>
        <parameter>
           <name>driverClassName</name>
           <value>org.hsqldb.jdbcDriver</value>
        </parameter>
        <parameter>
           <name>username</name>
           <value>sa</value>
        </parameter>
        <parameter>
           <name>password</name>
           <value></value>
        </parameter>
        <!-- DBCP connection pooling options -->
        <parameter>
           <name>maxWait</name>
           <value>3000</value>
        </parameter>
        <parameter>
           <name>maxIdle</name>
           <value>100</value>
        </parameter>
        <parameter>
           <name>maxActive</name>
           <value>10</value>
        </parameter>
      </ResourceParams>        
        </Context>
      </Host>

   </Engine>
   
   
   
  </Service>
</Server>


©2008 junlu.com - Jax Systems, LLC, U.S.A.