(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]>
