(1) Description of the problem:

When using Oracle database server as data store for slide/tomcat,
"PUT" produces an "internal error 500". This is shown below:

(a) authenticate as root user:

[LOCALHOST] / $ open http://localhost:8080/slide
connect http://localhost:8080/slide
UserName: root
Password: root

(b) "PUT" sometimes successful for a smaller file

[LOCALHOST] /slide/files/Products/mysecond-prod-b/ $ put a.xml a.xml
put a.xml a.xml
Uploading  'a.xml' to '/slide/files/Products/mysecond-prod-b/a.xml': succeeded.

(c) "PUT" usually fails for a larger file with internal error 500

[LOCALHOST] /slide/files/Products/mysecond-prod-b/ $ put Domain.xml  Domain.xml 
put Domain.xml Domain.xml
Uploading  'Domain.xml' to '/slide/files/Products/mysecond-prod-b/Domain.xml': failed.
Internal Server Error (500)

(2) error messages

(a) Oracle alert.log error:

Wed Oct 16 23:26:16 2002
Errors in file /ora01/apps/oracle/admin/ora901/udump/ora901_ora_1795.trc:
ORA-00600: internal error code, arguments: [12333], [34], [32], [117], [], [], [], []

(b) The ora901_ora_1795.trc file is cryptive for the most part, it shows
what SQL statement that causes the error:

ORA-00600: internal error code, arguments: [12333], [34], [32], [117], [], [], [], []
Current SQL statement for this session:
insert into revisioncontent values(:1, :2, :3)

(c) The oracle server does not seem to be the problem,
the request is wrong. The following is found in Oracle's
website http://metalink.oracle.com/:

<quote>
ORA-600[12333] is reported with three additional numeric values when a
request is being received from a network packet and the request code in
the packet is not recognized. The three additional values report the
invalid request values received.

The error may have a number of different root causes. For example, a
network error may have caused bad data to be received, or the client
application may have sent wrong data, or the data in the network
buffer may have been overwritten. Since there are many potential
causes of this error, it is essential to have a reproducible tes tcase
to correctly diagnose the underlying
cause. If operating system network logs are available, it is advisable
to check them for evidence of network failures which may indicate
network transmission problems.
</quote>

(d) tomcat catalina.out error:

16 Oct 2002 23:25:27 - slidestore.reference.JDBCContentStore - ERROR - 
java.sql.SQLException: No more data
 to read from socket
java.sql.SQLException: No more data to read from socket
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
        at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:944)
        at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:741)
        at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:700)
        at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:373)
        at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1451)
        at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:862)
        at 
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1839)
        at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1764)
        at 
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2354)
        at 
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:421)
        at 
slidestore.reference.JDBCContentStore.storeContent(JDBCContentStore.java:726)
        at 
slidestore.reference.JDBCContentStore.createRevisionContent(JDBCContentStore.java:544)
        at 
org.apache.slide.store.AbstractStore.createRevisionContent(AbstractStore.java:1225)
        at 
org.apache.slide.store.StandardStore.createRevisionContent(StandardStore.java:654)
        at org.apache.slide.content.ContentImpl.create(ContentImpl.java:556)
        at org.apache.slide.webdav.method.PutMethod.executeRequest(PutMethod.java:395)
        at 
org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:324)
        at org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:221)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:24
7)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:531)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at 
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at 
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
        at 
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
        at java.lang.Thread.run(Thread.java:536)
16 Oct 2002 23:25:27 - org.apache.slide.common.Domain - WARNING - Service 
slidestore.reference.JDBCContent
Store@d8dc2e access error : No more data to read from socket
16 Oct 2002 23:25:27 - slidestore.reference.JDBCContentStore - INFO - Connecting to 
"jdbc:oracle:thin:@emi
ly:1521:ora901" as user "sa"
16 Oct 2002 23:25:27 - org.apache.slide.common.Domain - WARNING - Service 
slidestore.reference.JDBCContent
Store@d8dc2e access error : No more data to read from socket
16 Oct 2002 23:25:27 - org.apache.slide.store.StandardStore - INFO - Delisting service 
slidestore.referenc
e.JDBCContentStore@d8dc2e from active transaction with failure
org.apache.slide.common.ServiceAccessException: Service 
slidestore.reference.JDBCContentStore@d8dc2e acces
s error : No more data to read from socket
        at 
slidestore.reference.JDBCContentStore.createRevisionContent(JDBCContentStore.java:550)
        at 
org.apache.slide.store.AbstractStore.createRevisionContent(AbstractStore.java:1225)
        at 
org.apache.slide.store.StandardStore.createRevisionContent(StandardStore.java:654)
        at org.apache.slide.content.ContentImpl.create(ContentImpl.java:556)
        at org.apache.slide.webdav.method.PutMethod.executeRequest(PutMethod.java:395)
        at 
org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:324)
        at org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:221)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:24
7)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:531)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at 
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at 
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
        at 
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
        at java.lang.Thread.run(Thread.java:536)
16 Oct 2002 23:25:27 - org.apache.slide.transaction.SlideTransactionManager - WARNING 
- Rollback Transacti
on 30 xid HttpProcessor[8080][4]-1034825112793-30- in thread HttpProcessor[8080][4]
16 Oct 2002 23:25:28 - org.apache.slide.webdav.WebdavServlet - INFO - PUT = 500 
Internal Server Error (tim
e: 15230 ms) URI = /files/Products/mysecond-prod-b/Domain.xml

(3) Configuration:

I am able to produce the error in various combination of packages,
Oracle 8.1.7, Oracle 9.0.1, jakarta-tomcat 4.0.x, jakarta-slide 1.x and 2.x.

The following is the configuration I used. I hope the problem can be
reproduced.

(a) jakarta-tomcat-4.0.6 binary distribution
(b) jakarta-slide 2002-10-13 night build binary
(c) Installation is done by following RUNNING.txt
(d) classes12.jar from Oracle 9.0.1 is copied to <TOMCAT>/common/lib
(e) 13 tables are created using the DDL scripts documented in jdbc-howto.
(f) three lines are added to tomcat-users:

  <user name="admin"  password="password" roles="tomcat,manager" />
  <user name="guest"  password="guest"   roles="tomcat,guest" />
  <user name="root"   password="root"    roles="tomcat,root" />

(g) web.xml is modified to enable authentification:

$ diff -c web.xml.orig web.xml
*** web.xml.orig        Wed Oct 16 01:31:52 2002
--- web.xml     Wed Oct 16 01:34:38 2002
***************
*** 525,531 ****
      </welcome-file-list>
      <!-- Authetication for the WebDAV servlet -->
      <!-- Uncomment this to get authentication -->
!     <!--security-constraint>
          <web-resource-collection>
              <web-resource-name>DAV resource</web-resource-name>
              <url-pattern>/*</url-pattern>
--- 525,531 ----
      </welcome-file-list>
      <!-- Authetication for the WebDAV servlet -->
      <!-- Uncomment this to get authentication -->
!     <security-constraint>
          <web-resource-collection>
              <web-resource-name>DAV resource</web-resource-name>
              <url-pattern>/*</url-pattern>
***************
*** 565,569 ****
      <login-config>
          <auth-method>BASIC</auth-method>
          <realm-name>Slide DAV Server</realm-name>
!     </login-config!-->
  </web-app>
--- 565,569 ----
      <login-config>
          <auth-method>BASIC</auth-method>
          <realm-name>Slide DAV Server</realm-name>
!     </login-config>
  </web-app>

(h) Domain.xml modification to use Oracle jdbc driver:

$ diff -c Domain.xml.orig Domain.xml

*** Domain.xml.orig     Mon Oct 14 12:58:46 2002
--- Domain.xml  Mon Oct 14 16:19:27 2002
***************
*** 25,30 ****
--- 25,31 ----
          node, security, locks and revisions. For content the FileContentStore
          is used. Content is reset before start.
          -->
+ <!--
          <definition>
              <store name="memory">
                  <nodestore
***************
*** 49,67 ****
              </store>
              <scope match="/" store="memory"/>
          </definition>
          <!-- ### JDBC Configuration ###
          The following jdbc sample configuration uses the hsql Database Engine
          a relational database engine written in Java, for more info:
          http://hsqldb.sourceforge.net/
          -->
-         <!--
          <definition>
              <store name="jdbc">
              <nodestore classname="slidestore.reference.JDBCDescriptorsStore">
!                 <parameter name="driver">org.hsqldb.jdbcDriver</parameter>
!                 <parameter name="url">jdbc:hsqldb:slidestructure</parameter>
                  <parameter name="user">sa</parameter>
!                 <parameter name="password"></parameter>
              </nodestore>
              <securitystore>
                  <reference store="nodestore" />
--- 50,68 ----
              </store>
              <scope match="/" store="memory"/>
          </definition>
+ -->
          <!-- ### JDBC Configuration ###
          The following jdbc sample configuration uses the hsql Database Engine
          a relational database engine written in Java, for more info:
          http://hsqldb.sourceforge.net/
          -->
          <definition>
              <store name="jdbc">
              <nodestore classname="slidestore.reference.JDBCDescriptorsStore">
!                 <parameter name="driver">oracle.jdbc.OracleDriver</parameter>
!                 <parameter name="url">jdbc:oracle:thin:@emily:1521:ora901</parameter>
                  <parameter name="user">sa</parameter>
!                 <parameter name="password">password</parameter>
              </nodestore>
              <securitystore>
                  <reference store="nodestore" />
***************
*** 76,90 ****
                  <reference store="nodestore" />
              </revisiondescriptorstore>
              <contentstore classname="slidestore.reference.JDBCContentStore">
!                 <parameter name="driver">org.hsqldb.jdbcDriver</parameter>
!                 <parameter name="url">jdbc:hsqldb:slidecontent</parameter>
                  <parameter name="user">sa</parameter>
!                 <parameter name="password"></parameter>
              </contentstore>
              </store>
              <scope match="/" store="jdbc" />
          </definition>
-         -->
          <!-- ### Mixed JDBC - Filesystem ###
          stores: slidestore.reference.JDBCDescriptorsStore
                  slidestore.reference.FileContentStore
--- 77,90 ----
                  <reference store="nodestore" />
              </revisiondescriptorstore>
              <contentstore classname="slidestore.reference.JDBCContentStore">
!                 <parameter name="driver">oracle.jdbc.OracleDriver</parameter>
!                 <parameter name="url">jdbc:oracle:thin:@emily:1521:ora901</parameter>
                  <parameter name="user">sa</parameter>
!                 <parameter name="password">password</parameter>
              </contentstore>
              </store>
              <scope match="/" store="jdbc" />
          </definition>
          <!-- ### Mixed JDBC - Filesystem ###
          stores: slidestore.reference.JDBCDescriptorsStore
                  slidestore.reference.FileContentStore

-- 
Michael Wang
http://www.unixlabplus.com/

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

Reply via email to