DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8091>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8091

JDBCRealm makes Tomcat unusable if the database is unavailable when Tomcat starts

           Summary: JDBCRealm makes Tomcat unusable if the database is
                    unavailable when Tomcat starts
           Product: Tomcat 4
           Version: 4.0.3 Final
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: Catalina
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Hi,

I use Tomcat 4.0.3, NT/win2k, JDK 1.3.1_01, Oracle 8.1.6. I declared JDBCRealm 
(see config file below). If the database is down when Tomcat starts I get a 
LifecycleException (see stack trace below). After that, Tomcat accepts incoming 
HTTP connections but never sends any response - a kind of "zombie" state.
FYI: I have two applications - one standard web app using servlet declarative 
security with form-based login and WebDav servlet using servlet security with 
Basic authentication.

Best Regards,
Slawek Zachcial

*** exception stack trace ***

Using CATALINA_BASE:   d:\opt\servers\jakarta-tomcat-4.0.3
Using CATALINA_HOME:   d:\opt\servers\jakarta-tomcat-4.0.3
Using CATALINA_TMPDIR: d:\opt\servers\jakarta-tomcat-4.0.3\temp
Using JAVA_HOME:       d:\opt\java\j2se\1.3.1_01
Starting service Tomcat-Standalone
Apache Tomcat/4.0.3
Catalina.start: LifecycleException:  Exception opening database connection:  
java.sql.SQLException:
Exception d'E/S: The Network Adapter could not establish the connection
LifecycleException:  Exception opening database connection:  
java.sql.SQLException: Exception d'E/S:
 The Network Adapter could not establish the connection
        at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:615)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1108)
        at org.apache.catalina.core.StandardEngine.start
(StandardEngine.java:343)
        at org.apache.catalina.core.StandardService.start
(StandardService.java:388)
        at org.apache.catalina.core.StandardServer.start
(StandardServer.java:506)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
----- Root Cause -----
java.sql.SQLException: Exception d'E/S: The Network Adapter could not establish 
the connection
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
        at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:210)
        at oracle.jdbc.driver.OracleDriver.getConnectionInstance
(OracleDriver.java:251)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:224)
        at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:548)
        at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:613)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1108)
        at org.apache.catalina.core.StandardEngine.start
(StandardEngine.java:343)
        at org.apache.catalina.core.StandardService.start
(StandardService.java:388)
        at org.apache.catalina.core.StandardServer.start
(StandardServer.java:506)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)

*** server.xml ***

<Server port="8005" shutdown="SHUTDOWN" debug="0">

  <Service name="Tomcat-Standalone">


    <Connector className="org.apache.catalina.connector.http.HttpConnector"
               port="8080" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="5" connectionTimeout="60000"/>

    <Engine name="Standalone" defaultHost="localhost" debug="0">

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


      <Realm className="org.apache.catalina.realm.MemoryRealm" />

      <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
              driverName="oracle.jdbc.driver.OracleDriver"
              connectionName="clmmdev"
              connectionPassword="clmmdev"
              connectionURL="jdbc:oracle:thin:@localhost:1521:oradev"
              userTable="clmm_user" 
              userNameCol="user_name" 
              userCredCol="password"
              userRoleTable="clmm_user_role" 
              roleNameCol="role_name" />

      <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve"
                 directory="logs"  prefix="localhost_access_log." suffix=".txt"
                 pattern="common"/>

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


        <Context path="/manager" docBase="manager" 
         debug="0" privileged="true"/>

        <Context path="/tomcat" 
                 docBase="d:/opt/servers/jakarta-tomcat-4.0.1/webapps/tomcat-
docs" 
                 reloadable="false" />

        <Context path="/security"
                 docBase="d:/home/slawek/dev/servlet-security"
                 reloadable="true" />


        <Context path="" 
                 docBase="d:/home/hp/projects/clm-metrics/build/clm-
metrics/website"
                 reloadable="true"
                 useNaming="false">
        </Context>
        
        <Context path="/clmm-web-dir"
                 docBase="d:/home/hp/projects/clm-metrics/build/clm-metrics"
                 reloadable="true" />

      </Host>

    </Engine>

  </Service>

</Server>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to