Hi Again!

Here is my domain.xml - I have also attached my log file. As you can see
it throws an exception but the server run fine and stores all
descriptorsstore data correctly in the database! The content are stored
as a file contentstore running with versioning=true.

To verify that it reads this domain.xml file I did try to misspell
something at it did stop the server with an exception?

This is really strange!

BTW I am using latest JSQLConnect jdbc driver!

Thanks
/Jacob

-----Original Message-----
From: Kumar, Ashok [mailto:[EMAIL PROTECTED]] 
Sent: 15. juli 2002 14:22
To: Slide Users Mailing List
Subject: RE: Modified Proposal for a more efficient Slide Database
Design 


Hi Jacob

 I have not seen this behaviour of slide so far. But I am still using
the TC4.0.4. . Therefore i am not sure whether it is related to the
TC417 version. Can i have alook at the domain.xml u are using ??

Ashok

-----Original Message-----
From: Jacob Lund [mailto:[EMAIL PROTECTED]]
Sent: Monday, July 15, 2002 5:35 AM
To: 'Slide Users Mailing List'
Subject: RE: Modified Proposal for a more efficient Slide Database
Design 


Hi Ashok!

I have been testing the j2ee descriptors store with filestore and now I
wanted to test the j2ee contentstore too.

I have a small problem though - I have configured my slide for using the
j2ee descriptors store and j2ee content store and the log file tells me
that the content store is slidestore.j2ee.J2EEContetStore2 but it saves
the files on the harddrive?? It seems like it ignores the setup at
defaults to file content store?

Have you seen this before?

I am running on tomcat 4.1.7

/Jacob

-----Original Message-----
From: Kumar, Ashok [mailto:[EMAIL PROTECTED]] 
Sent: 12. juli 2002 22:47
To: Slide Users Mailing List
Cc: [EMAIL PROTECTED]
Subject: RE: Modified Proposal for a more efficient Slide Database
Design 


Hi Jacob

   Good to know that someone other than me is showing interest for a new
and better database design. I have done some more testing and attached
is the latest set of sources. I have also incorporated the sql changes
pointed out by U. Also attached is a utility java file for file content
compression. I think this is a nice feature to have(both for File
contentstore(not done) or J2EECOntentStore(done)). Considering from the
point of storage for file contents in database, his could save a lot of
time as the retrieval will be effcient for smaller blobs. The related
code can be found 
in the J2EEContentStore2 and is controlled by a domain.xml parameter
"compress".

Please do some more testing by which we should be able to commit it to
Slide. 

Thanks Once again for testing.

Ashok
Metatomix INC,.




-----Original Message-----
From: Jacob Lund [mailto:[EMAIL PROTECTED]]
Sent: Friday, July 12, 2002 4:15 AM
To: 'Slide Users Mailing List'
Subject: RE: Modified Proposal for a more efficient Slide Database
Design 


Found it!

Line 1010:
Old: StringBuffer theSQL = new StringBuffer("delete from VERSION_PREDS
where VERSION_ID = (SELECT VERSION_ID FROM VERSION_HISTORY where URI_ID
= ");

New: StringBuffer theSQL = new StringBuffer("delete from VERSION_PREDS
where VERSION_ID IN (SELECT VERSION_ID FROM VERSION_HISTORY where URI_ID
= ");

I haven't tested through!
/Jacob

-----Original Message-----
From: Jacob Lund [mailto:[EMAIL PROTECTED]] 
Sent: 12. juli 2002 09:19
To: [EMAIL PROTECTED]
Subject: RE: Modified Proposal for a more efficient Slide Database
Design 


Hi Ashok!

I finally found the time to test you new database scheme - It really
improves the performance. I have tried it with your descriptoresstore
and file store for content!

If I enable automatic versioning then I get following error:

org.apache.slide.common.ServiceAccessException: Service
slidestore.j2ee.J2EEDesc riptorsStore2@3cc262 access error : Subquery
returned more than 1 value. This is  not permitted when the subquery
follows =, !=, <, <= , >, >= or when the subque ry is used as an
expression.
        at
slidestore.j2ee.J2EEDescriptorsStore2.removeRevisionDescriptors(J2EED
escriptorsStore2.java:1016)
        at
slidestore.j2ee.J2EEDescriptorsStore2.storeRevisionDescriptors(J2EEDe
scriptorsStore2.java:987)
        at
org.apache.slide.store.AbstractStore.storeRevisionDescriptors(Abstrac
tStore.java:982)
        at
org.apache.slide.store.StandardStore.storeRevisionDescriptors(Standar
dStore.java:523)
        at
org.apache.slide.content.ContentImpl.create(ContentImpl.java:1291)
        at
org.apache.slide.content.ContentImpl.create(ContentImpl.java:686)
        at
org.apache.slide.webdav.util.VersioningHelper.versionControl(Versioni
ngHelper.java:334)
        at
org.apache.slide.webdav.method.VersionControlMethod.executeRequest(Ve
rsionControlMethod.java:201)
        at
org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebda
vMethod.java:323)
        at
org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:221)

This is really nice work and I will try to get some more detailed
testing done!

Thanks
/Jacob

-----Original Message-----
From: Kumar, Ashok [mailto:[EMAIL PROTECTED]] 
Sent: 2. maj 2002 23:24
To: Slide Users Mailing List
Cc: [EMAIL PROTECTED]
Subject: Modified Proposal for a more efficient Slide Database Design 


Hi All

Thanks for testing the new proposed schema and for the fixes. But I am
curious to know the reason for converting all the statements to Prepared
Statements?. The reasons are outline below. 

In the proposal version I was using normal statements rather than
prepared statments because, as u see there is STATEMENT creation and
subsequent STATEMENT close in every method. Infact this prepared
statements wont be fast in this scenario where u have this recreation on
every method invocation. In this set up I think the prepared statements
will be faster only if the database preparedstatement pooling is used
which would be database driver dependent.Infact JSQLConnect has an
option of enabling the prepared statment pooling while dbconnection is
established. It would be great to have your comments on this aspect
before going in for the changes.

Meanwhile I was doing some more testing based on the Slide TestSuite and
for the remarks reported by Jacob Lund and Michael Smith; which are now
fixed. There is a schema modification too.The schema submitted has
referential integrity set and we can take it off the schema, once we are
confident with the new schema to improve the performance. Please see the
attached J2EE sources and modified Schema.

The following are the test cases checked by me to cover the various
commands used, and the return code checks. My test configuration had 2
users and 4 iterations.

        */code/lock200.xml
        */code/lock423.xml
        */code/head200.xml
        */code/head404.xml
        */code/mkcol201.xml
        */code/mkcol405.xml
        */code/mkcol409.xml
        */code/get200.xml
        */code/get404.xml
        */code/delete204.xml
        */code/delete404.xml
        */code/delete423.xml
        */code/put201.xml
        */code/put409.xml
        */code/put423.xml
        */code/copy201.xml
        */code/copy204.xml
        */code/copy403.xml
        */code/copy409.xml
        */code/copy412.xml
        */code/copy423.xml
        */code/move201.xml
        */code/move204.xml
        */code/move403.xml
        */code/move412.xml
        */code/move423.xml
        */code/propfind207.xml
        */code/proppatch200.xml
        */code/proppatch207.xml
        */code/proppatch404.xml

Ashok


-----Original Message-----
From: Lionel Touati [mailto:[EMAIL PROTECTED]]
Sent: Thursday, May 02, 2002 4:20 AM
To: Slide Users Mailing List
Subject: RE: Proposal for a more efficient Slide Database Design


Hi Ashok,

I've done some changes to your classes, mainly using prepared statements
all along + some bug fixing. I've also ported the schema to DB2. Hope
you'll find theses files helpfull

Lionel


-----Message d'origine-----
De :
[EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
.org]De la part de Kumar, Ashok
Envoyé : Tuesday, April 23, 2002 2:35 PM
À : Slide Users Mailing List
Objet : RE: Proposal for a more efficient Slide Database Design


Hi

Thanks for testing the new schema. I am now in the process of doing some
more extensive testing using the Slide TestSuite and have already came
across this error. Previously I had only tested the mkcol, Put,Get and
Proppatch with my own testcase. As I am using the Slide TestSuite which
covers the lock, unlock, copy, move etc..we could have all the
conditions met. With in this week I will complete the testing with SLIDE
TESTSUITE and repost the revised proposal.

Thanks once again for the testing.

Ashok

-----Original Message-----
From: Jacob Lund [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, April 23, 2002 5:18 AM
To: 'Slide Users Mailing List'
Subject: RE: Proposal for a more efficient Slide Database Design


Hi,

I was testing you proposal and I am having some problems. My test is on
a ms sql 2000 server and a tomcat 4.0.3. My slide installation is 1_0
from the cvs.

I can see that you test system is tomcat 4.0.4 and newest slide from
cvs.

I am using newest version of jsqlconnect for jdbc connection.

The message I get is:
23 Apr 2002 11:04:23 - slidestore.j2ee.J2EEDescriptorsStore2 - ERROR -
com.jnetd
irect.jsql.u: INSERT statement conflicted with COLUMN FOREIGN KEY
constraint 'FK __PERMISSIO__OBJEC__0D44F85C'. The conflict occurred in
database 'slide', table 'URI', column 'URI_ID'.
com.jnetdirect.jsql.u: INSERT statement conflicted with COLUMN FOREIGN
KEY const raint 'FK__PERMISSIO__OBJEC__0D44F85C'. The conflict occurred
in database 'slide ', table 'URI', column 'URI_ID'.

What kind of constraints do you assume on the relationships (cascading
for update, Insert, delete)?

/Jacob


-----Original Message-----
From: Kumar, Ashok [mailto:[EMAIL PROTECTED]]
Sent: 12. april 2002 22:15
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Proposal for a more efficient Slide Database Design


Hi,

New Slide Database Store Proposal
---------------------------------

Here is a proposal for a more optimized database schema for the Slide
J2EE Database Store. The major changes to the current schema involve
adding numeric identifiers for URI's and other strings that were
previously used as keys. This allows for much faster lookups and the use
of foreign keys for referential integrity. Other changes include merging
and dropping some of the existing tables. All the existing slide
functionality was maintained.


Justification for the new schema
--------------------------------

Using the existing Slide Database store for storing and retrieving a
large number of documents is extremely inefficient. The primary reason
for this is the lack of indexing. Applying indexing to the existing
database schema definitely helps. However, due to the fact that the URI
field (being a large VARCHAR(800) datatype) is the main key linking most
of the tables, it makes a very inefficient index.

In addition, most databases have a limit on index size. In tables like
CHILDREN, where the unique index would be a combination of the URI and
CHILD_URI fields, the index size would exceed most database limits.

Finally, duplicating the data in large fields like URI in almost all of
the database tables is an inefficient waist of space and simple
normalization of this field provides a dramatic improvement in this
area.


The New Schema
--------------

Here is an overview of the schema changes:

- Three new tables were created to hold numeric key mappings for URI,
BRANCH and LABEL
- WORKING_REVISION ->   removed
- LATEST_REVISIONS and REVISION -> VERSION_HISTORY
- REVISION_CONTENT ->   VERSION_CONTENT
- REVISIONS        ->   VERSION
- BRANCHES             ->   VERSION_PREDS (predecessors)
- LABEL            ->   VERSION_LABELS
- OBJECT           ->  (same + URI key mapping)
- LOCKS            -> (same)
- LINKS            -> (same)
- CHILDREN         -> (same)
- PERMISSIONS      -> (same)
- PROPERTY             -> (same)

Plus the addition of indexing and foreign key references.

The following schema will work with MS SQLServer and Sybase. (although
with Sybase the user defined datatypes need to be changed to map to
Sybase datatype limits) Other schema's for Oracle, DB2 and MySQL will
follow.

<<see attached file: new_slide_schema.zip>>


New Schema Implementation
------------------------

In order not to modify the existing database stores we have created
J2EEStore2. This store can be configured to point to a different
database instance that reflects the new schema.

Source files:
J2EEStore2.java( same as the J2EEStore.java with the addition of
hashtables for URI_ID lookup) J2EEDescriptorsStore2.java
J2EEContentStore2.java

<<see attached java source files : J2EEStore.zip>>


Tests Conducted
---------------

Configuration:

Latest version of slide (from CVS as of March 25) with J2EEStore2 Tomcat
4.04 MS SQLServer as the database store.

For the test we created a collection structure /rdf/testcase/test1 and
in this collection stored 1800 files each with a size of 313 KB.

>From the Browser (IE6) a request to view the contents of this
collection
(/rdf/testcase/test1) triggers a GET to this collection,


    All Test Results are in Milliseconds. (by tracking Database Logs)
    =================================================================
    Operation                  OLD Schema     New Schema
    -----------------------------------------------------------------
    Starting                         1933           1559

    Put(testcase/test1/xxfile)       2544           1578

    Get(testcase)                    2805           2103

    Get(testcase/test1)            174616          98477


Conclusion
----------

We believe the this is a good start for a new database schema. The test
results already show a large improvement and we believe addition code
modifications will result in a much greater improvement.

In the process of redesigning the database we uncovered a number of
referential errors that were fixed by the new schema. For example,
problems we previously had with deadlocks when storing / updating very
large files are no longer an issue.

We are looking for feedback from this proposal.

Thank you...

Ashok



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


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



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


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



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


--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
<?xml version="1.0"?>
<slide logger="org.apache.slide.util.logger.SimpleLogger" logger-level="0" default="slide">
	<!--
logger
~~~~~~
org.apache.slide.util.logger.SimpleLogger
   default logger with 1 log level
log4j.Log4jLogger
   logger with fine granularity
   see http://jakarta.apache.org/log4j/

logger-level
~~~~~~~~~~~~
0 EMERGENCY
1 CRITICAL
2 ERROR
4 WARNING
6 INFO
7 DEBUG
-->
	<namespace name="slide">
		<!-- ### Memory Configuration ###
     The following memory configuration uses the MemoryDescriptorsStore
     for node,security,locks and revisions. For content the FileContentStore
     is used. Content is reset before start.
-->
		<definition>
			<store name="j2ee">
				
				<nodestore classname="slidestore.j2ee.J2EEDescriptorsStore2">
					<parameter name="datasource">jdbc/mtx</parameter>
				</nodestore>

				<securitystore>
					<reference store="nodestore"/>
				</securitystore>
				<lockstore>
					<reference store="nodestore"/>
				</lockstore>
				<revisiondescriptorsstore>
					<reference store="nodestore"/>
				</revisiondescriptorsstore>
				<revisiondescriptorstore>
					<reference store="nodestore"/>
				</revisiondescriptorstore>

				<contentstore classname="slidestore.j2ee.J2EEContentStore2">
					<parameter name="datasource">jdbc/mtx</parameter>
				</contentstore>
			</store>
			<scope match="/" store="j2ee"/>
		</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" />
        </securitystore>
        <lockstore>
          <reference store="nodestore" />
        </lockstore>
        <revisiondescriptorsstore>
          <reference store="nodestore" />
        </revisiondescriptorsstore>
        <revisiondescriptorstore>
          <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
     !!! set resetBeforeStarting parameter for FileContentStore to false !!!
-->
		<!-- ### Cloudscape configuration (embedded database) ###
     stores: slidestore.cloudscape.CloudscapeDescriptorsStore
             slidestore.cloudscape.CloudscapeContentStore
     driver: COM.cloudscape.core.JDBCDriver
     url:    jdbc:cloudscape:slidestructure;create=true
             jdbc:cloudscape:slidecontent;create=true
-->
		<!-- ### Oracle configuration (thin driver) ###
     stores: slidestore.reference.JDBCDescriptorsStore
             slidestore.oracle.OracleContentStore
     driver: oracle.jdbc.OracleDriver
     url:    jdbc:oracle:thin:@localhost:1521:slide
-->
		<configuration>
			<!-- Actions mapping -->
			<default-action>/actions</default-action>
			<read-object>/actions/read</read-object>
			<create-object>/actions/write</create-object>
			<remove-object>/actions/write</remove-object>
			<grant-permission>/actions/manage</grant-permission>
			<revoke-permission>/actions/manage</revoke-permission>
			<read-permissions>/actions/manage</read-permissions>
			<lock-object>/actions/write</lock-object>
			<kill-lock>/actions/manage</kill-lock>
			<read-locks>/actions/read</read-locks>
			<read-revision-metadata>/actions/read</read-revision-metadata>
			<create-revision-metadata>/actions/write</create-revision-metadata>
			<modify-revision-metadata>/actions/write</modify-revision-metadata>
			<remove-revision-metadata>/actions/write</remove-revision-metadata>
			<read-revision-content>/actions/read</read-revision-content>
			<create-revision-content>/actions/write</create-revision-content>
			<modify-revision-content>/actions/write</modify-revision-content>
			<remove-revision-content>/actions/write</remove-revision-content>
			<!-- Paths configuration -->
			<userspath>/users</userspath>
			<guestpath>guest</guestpath>
			<filespath>/files</filespath>
			<parameter name="dav">true</parameter>
			<parameter name="standalone">true</parameter>
			<!-- Roles definition -->
			<role name="root">slideroles.basic.RootRole</role>
			<role name="user">slideroles.basic.UserRole</role>
			<role name="guest">slideroles.basic.GuestRole</role>
			<!-- Users management -->
			<auto-create-users>true</auto-create-users>
			<!-- Default properties mapping -->
			<default-property name="foo" namespace="nsfoo/" value="bar" role="user"/>
			<default-property name="password" namespace="slide/" value="" role="user"/>
		</configuration>
		<data>
			<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/">
				<!-- Subject can be:
                self  "~"
                all   "nobody"
                user  "/users/john"
                group "+/users/groupA"
                role  "root"
        -->
				<!-- Uncomment the following line to give all permissions to
             principals have the root role -->
				<!-- <permission action="/actions" subject="root"/> -->
				<permission action="/actions" subject="/users/root"/>
				<permission action="/actions/read" subject="/users" inheritable="false"/>
				<permission action="/actions/read" subject="nobody" inheritable="false"/>
				<!-- /users -->
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users">
					<permission action="/actions" subject="~"/>
					<permission action="/actions" subject="/users/guest" inheritable="true" negative="true"/>
					<permission action="/actions/read" subject="/users" inheritable="false"/>
					<!-- Permission group example -->
					<objectnode classname="org.apache.slide.structure.GroupNode" uri="/users/groupA">
						<objectnode classname="org.apache.slide.structure.LinkNode" uri="/users/groupA/john" linkedUri="/users/john"/>
						<objectnode classname="org.apache.slide.structure.LinkNode" uri="/users/groupA/root" linkedUri="/users/root"/>
						<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users/groupA/singleGroupMember"/>
					</objectnode>
					<!-- /users/root represents the administrator -->
					<objectnode classname="slideroles.basic.RootRoleImpl" uri="/users/root">
						<revision>
							<property name="password">root</property>
						</revision>
					</objectnode>
					<!-- /users/john represents an authenticated user -->
					<objectnode classname="slideroles.basic.UserRoleImpl" uri="/users/john">
						<revision>
							<property name="password">john</property>
						</revision>
					</objectnode>
					<!-- /users/guest represents an authenticated or unauthenticated
               guest user -->
					<objectnode classname="slideroles.basic.GuestRoleImpl" uri="/users/guest">
						<revision>
							<property name="password"/>
						</revision>
					</objectnode>
				</objectnode>
				<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions">
					<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/read"/>
					<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/write"/>
					<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/manage"/>
				</objectnode>
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/files">
					<!-- ### Give read/write/manage permission to guest ###
               Uncomment the following line to give permission to do
               all actions on /files to guest (unauthenticated users) -->
					<!-- <permission action="/actions" subject="/users/guest"/> -->
					<permission action="/actions/manage" subject="/users/john"/>
					<permission action="/actions/write" subject="+/users/groupA"/>
					<permission action="/actions/read" subject="nobody"/>
				</objectnode>
				<!-- DeltaV: default history and workspace paths -->
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/history"/>
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/workspace"/>
				<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/workingresource"/>
			</objectnode>
		</data>
	</namespace>
	<!--
    DeltaV global parameters
    ========================
    * historypath (mandatory=no, default="/history"):
    Specifies a Slide path which determines the location where this DeltaV server stores
    history data.

    * workspacepath (mandatory=no, default="/workspace"):
    Specifies a Slide path which determines the location where this DeltaV server allows
    workspaces to reside.

    * workingresourcepath (mandatory=no, default="/workingresource"):
    Specifies a Slide path which determines the location where this DeltaV server stores
    working resources.

    * auto-version (mandatory=no, default="checkout-checkin"):
    Controls the DeltaV auto-version behaviour.

    * auto-version-control (mandatory=no, default="false"):
    Indicates if a resource just created by a PUT should be set under version-control.

    * checkout-fork (mandatory=no, default="forbidden"):
    Controls the DeltaV check-out behaviour when a version is already checked-out or
    has a successor.

    * checkin-fork (mandatory=no, default="forbidden"):
    Controls the DeltaV check-out behaviour when a version has already a successor.

    * standardLivePropertiesClass (mandatory=no, default="org.apache.slide.webdav.util.resourcekind.AbstractResourceKind"):
    Determines the "agent" knowing about what the standard live properties are.
    It should be a loadable class containing the following static methods:
    - boolean isLiveProperty( String propName )
    - boolean isProtectedProperty( String propName )
    - boolean isComputedProperty( String propName )
    - Set getAllLiveProperties()
    - Set getAllProtectedProperties()
    - Set getAllComputedProperties()

    * uriRedirectorClass (mandatory=no, default="org.apache.slide.webdav.util.DeltavUriRedirector"):
    Determines the URI redirector class. The DeltaV URI redirector is in charge of the
    following redirections:
    - version URI to history URI, e.g. /history/2/1.4 to /history/2
    - latest revision number for history resource to 0.0
    - latest revision number for version resource to last URI token, e.g. /history/2/1.4 to 1.4
    It should be a loadable class containing the following static methods:
    - String redirectUri( String uri )
    - NodeRevisionNumber redirectLatestRevisionNumber( String uri )
    -->
	<parameter name="historypath">/history</parameter>
	<parameter name="workspacepath">/workspace</parameter>
	<parameter name="workingresourcepath">/workingresource</parameter>
	<parameter name="auto-version">checkout-checkin</parameter>
	<parameter name="auto-version-control">false</parameter>
	<parameter name="checkout-fork">forbidden</parameter>
	<parameter name="checkin-fork">forbidden</parameter>
</slide>
2002-07-15 15:01:38 HostConfig[localhost]: Deploying configuration descriptor admin.xml
2002-07-15 15:01:42 HostConfig[localhost]: Deploying configuration descriptor 
manager.xml
2002-07-15 15:01:42 WebappLoader[/manager]: Deploying class repositories to work 
directory D:\Tomcat4\work\Standalone\localhost\manager
2002-07-15 15:01:42 ContextConfig[/manager]: Configured an authenticator for method 
BASIC
2002-07-15 15:01:42 StandardManager[/manager]: Seeding random number generator class 
java.security.SecureRandom
2002-07-15 15:01:42 StandardManager[/manager]: Seeding of random number generator has 
been completed
2002-07-15 15:01:42 StandardWrapper[/manager:default]: Loading container servlet 
default
2002-07-15 15:01:42 default: init
2002-07-15 15:01:42 StandardWrapper[/manager:invoker]: Loading container servlet 
invoker
2002-07-15 15:01:42 invoker: init
2002-07-15 15:01:43 HostConfig[localhost]: Expanding web application archive 
slide-admin.war
2002-07-15 15:01:43 StandardHost[localhost]: Installing web application at context 
path /slide-admin from URL file:d:/Tomcat4/webapps/slide-admin
2002-07-15 15:01:43 WebappLoader[/slide-admin]: Deploying class repositories to work 
directory D:\Tomcat4\work\Standalone\localhost\slide-admin
2002-07-15 15:01:43 WebappLoader[/slide-admin]: Deploy class files /WEB-INF/classes to 
d:\Tomcat4\webapps\slide-admin\WEB-INF\classes
2002-07-15 15:01:43 WebappLoader[/slide-admin]: Deploy JAR 
/WEB-INF/lib/slide-admin.jar to 
d:\Tomcat4\webapps\slide-admin\WEB-INF\lib\slide-admin.jar
2002-07-15 15:01:43 WebappLoader[/slide-admin]: Deploy JAR 
/WEB-INF/lib/slide-taglib-common.jar to 
d:\Tomcat4\webapps\slide-admin\WEB-INF\lib\slide-taglib-common.jar
2002-07-15 15:01:43 WebappLoader[/slide-admin]: Deploy JAR 
/WEB-INF/lib/slide-taglib-struts.jar to 
d:\Tomcat4\webapps\slide-admin\WEB-INF\lib\slide-taglib-struts.jar
2002-07-15 15:01:43 WebappLoader[/slide-admin]: Deploy JAR /WEB-INF/lib/struts.jar to 
d:\Tomcat4\webapps\slide-admin\WEB-INF\lib\struts.jar
2002-07-15 15:01:43 ContextConfig[/slide-admin]: WARNING: Security role name root used 
in an <auth-constraint> without being defined in a <security-role>
2002-07-15 15:01:43 ContextConfig[/slide-admin]: Configured an authenticator for 
method BASIC
2002-07-15 15:01:43 StandardManager[/slide-admin]: Seeding random number generator 
class java.security.SecureRandom
2002-07-15 15:01:43 StandardManager[/slide-admin]: Seeding of random number generator 
has been completed
2002-07-15 15:01:43 StandardWrapper[/slide-admin:default]: Loading container servlet 
default
2002-07-15 15:01:43 default: init
2002-07-15 15:01:43 StandardWrapper[/slide-admin:invoker]: Loading container servlet 
invoker
2002-07-15 15:01:43 invoker: init
2002-07-15 15:01:43 action: init
2002-07-15 15:01:44 HostConfig[localhost]: Expanding web application archive 
slide-doc.war
2002-07-15 15:01:44 StandardHost[localhost]: Installing web application at context 
path /slide-doc from URL file:d:/Tomcat4/webapps/slide-doc
2002-07-15 15:01:44 WebappLoader[/slide-doc]: Deploying class repositories to work 
directory D:\Tomcat4\work\Standalone\localhost\slide-doc
2002-07-15 15:01:44 StandardManager[/slide-doc]: Seeding random number generator class 
java.security.SecureRandom
2002-07-15 15:01:44 StandardManager[/slide-doc]: Seeding of random number generator 
has been completed
2002-07-15 15:01:44 StandardWrapper[/slide-doc:default]: Loading container servlet 
default
2002-07-15 15:01:44 default: init
2002-07-15 15:01:44 StandardWrapper[/slide-doc:invoker]: Loading container servlet 
invoker
2002-07-15 15:01:44 invoker: init
2002-07-15 15:01:44 HostConfig[localhost]: Expanding web application archive slide.war
2002-07-15 15:01:44 StandardHost[localhost]: Installing web application at context 
path /slide from URL file:d:/Tomcat4/webapps/slide
2002-07-15 15:01:44 WebappLoader[/slide]: Deploying class repositories to work 
directory D:\Tomcat4\work\Standalone\localhost\slide
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy class files /WEB-INF/classes to 
d:\Tomcat4\webapps\slide\WEB-INF\classes
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/commons-dbcp.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\commons-dbcp.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/commons-modeler.jar 
to d:\Tomcat4\webapps\slide\WEB-INF\lib\commons-modeler.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/commons-pool.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\commons-pool.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/crimson.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\crimson.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/hsqldb.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\hsqldb.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/jaxp-api.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\jaxp-api.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/jdom-dev.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\jdom-dev.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/jta.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\jta.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/slide-kernel.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\slide-kernel.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/slide-roles.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\slide-roles.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR /WEB-INF/lib/slide-stores.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\slide-stores.jar
2002-07-15 15:01:44 WebappLoader[/slide]: Deploy JAR 
/WEB-INF/lib/slide-webdavservlet.jar to 
d:\Tomcat4\webapps\slide\WEB-INF\lib\slide-webdavservlet.jar
2002-07-15 15:01:44 ContextConfig[/slide]: WARNING: Security role name root used in an 
<auth-constraint> without being defined in a <security-role>
2002-07-15 15:01:44 ContextConfig[/slide]: WARNING: Security role name guest used in 
an <auth-constraint> without being defined in a <security-role>
2002-07-15 15:01:44 ContextConfig[/slide]: WARNING: Security role name user used in an 
<auth-constraint> without being defined in a <security-role>
2002-07-15 15:01:45 ContextConfig[/slide]: Configured an authenticator for method BASIC
2002-07-15 15:01:45 StandardManager[/slide]: Seeding random number generator class 
java.security.SecureRandom
2002-07-15 15:01:45 StandardManager[/slide]: Seeding of random number generator has 
been completed
2002-07-15 15:01:45 webdav: init
2002-07-15 15:01:46 CONNDEBUG: Couldn't get connection: Cannot load JDBC driver class 
'null'
java.sql.SQLException: Cannot load JDBC driver class 'null'
        at 
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:529)
        at 
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)
        at slidestore.j2ee.J2EEStore$TransactionId.<init>(J2EEStore.java:515)
        at slidestore.j2ee.J2EEStore.start(J2EEStore.java:438)
        at 
org.apache.slide.transaction.SlideTransaction.enlistResource(SlideTransaction.java:518)
        at org.apache.slide.store.AbstractStore.enlist(AbstractStore.java:1393)
        at org.apache.slide.store.AbstractStore.createObject(AbstractStore.java:587)
        at org.apache.slide.store.StandardStore.createObject(StandardStore.java:209)
        at org.apache.slide.common.Namespace.loadBaseData(Namespace.java:792)
        at org.apache.slide.common.Domain.initNamespace(Domain.java:851)
        at org.apache.slide.common.Domain.init(Domain.java:479)
        at org.apache.slide.common.Domain.init(Domain.java:413)
        at org.apache.slide.common.Domain.init(Domain.java:376)
        at org.apache.slide.webdav.WebdavServlet.init(WebdavServlet.java:370)
        at javax.servlet.GenericServlet.init(GenericServlet.java:258)
        at org.apache.slide.webdav.WebdavServlet.init(WebdavServlet.java:293)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:924)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
        at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3294)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3486)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
        at 
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:257)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:502)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:410)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:879)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
        at org.apache.catalina.core.StandardService.start(StandardService.java:497)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2185)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:510)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
org.apache.slide.common.ServiceAccessException: Service 
slidestore.j2ee.J2EEDescriptorsStore2@1d98a access error : 
java.lang.NullPointerException
        at 
slidestore.j2ee.J2EEDescriptorsStore2.createObject(J2EEDescriptorsStore2.java:358)
        at org.apache.slide.store.AbstractStore.createObject(AbstractStore.java:589)
        at org.apache.slide.store.StandardStore.createObject(StandardStore.java:209)
        at org.apache.slide.common.Namespace.loadBaseData(Namespace.java:792)
        at org.apache.slide.common.Domain.initNamespace(Domain.java:851)
        at org.apache.slide.common.Domain.init(Domain.java:479)
        at org.apache.slide.common.Domain.init(Domain.java:413)
        at org.apache.slide.common.Domain.init(Domain.java:376)
        at org.apache.slide.webdav.WebdavServlet.init(WebdavServlet.java:370)
        at javax.servlet.GenericServlet.init(GenericServlet.java:258)
        at org.apache.slide.webdav.WebdavServlet.init(WebdavServlet.java:293)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:924)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
        at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3294)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3486)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
        at 
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:257)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:502)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:410)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:879)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
        at org.apache.catalina.core.StandardService.start(StandardService.java:497)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2185)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:510)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

        at org.apache.slide.store.AbstractStore.createObject(AbstractStore.java:599)
        at org.apache.slide.store.StandardStore.createObject(StandardStore.java:209)
        at org.apache.slide.common.Namespace.loadBaseData(Namespace.java:792)
        at org.apache.slide.common.Domain.initNamespace(Domain.java:851)
        at org.apache.slide.common.Domain.init(Domain.java:479)
        at org.apache.slide.common.Domain.init(Domain.java:413)
        at org.apache.slide.common.Domain.init(Domain.java:376)
        at org.apache.slide.webdav.WebdavServlet.init(WebdavServlet.java:370)
        at javax.servlet.GenericServlet.init(GenericServlet.java:258)
        at org.apache.slide.webdav.WebdavServlet.init(WebdavServlet.java:293)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:924)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
        at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3294)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3486)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
        at 
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:257)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:502)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:410)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:879)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
        at org.apache.catalina.core.StandardService.start(StandardService.java:497)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2185)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:510)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

2002-07-15 15:01:46 StandardWrapper[/slide:default]: Loading container servlet default
2002-07-15 15:01:46 default: init
2002-07-15 15:01:46 StandardWrapper[/slide:invoker]: Loading container servlet invoker
2002-07-15 15:01:46 invoker: init
2002-07-15 15:01:46 HostConfig[localhost]: Deploying web application directory examples
2002-07-15 15:01:46 StandardHost[localhost]: Installing web application at context 
path /examples from URL file:D:\Tomcat4\webapps\examples
2002-07-15 15:01:46 WebappLoader[/examples]: Deploying class repositories to work 
directory D:\Tomcat4\work\Standalone\localhost\examples
2002-07-15 15:01:46 WebappLoader[/examples]: Deploy class files /WEB-INF/classes to 
D:\Tomcat4\webapps\examples\WEB-INF\classes
2002-07-15 15:01:46 ContextConfig[/examples]: Configured an authenticator for method 
FORM
2002-07-15 15:01:46 StandardManager[/examples]: Seeding random number generator class 
java.security.SecureRandom
2002-07-15 15:01:46 StandardManager[/examples]: Seeding of random number generator has 
been completed
2002-07-15 15:01:46 ContextListener: contextInitialized()
2002-07-15 15:01:46 SessionListener: contextInitialized()
2002-07-15 15:01:46 StandardWrapper[/examples:default]: Loading container servlet 
default
2002-07-15 15:01:46 default: init
2002-07-15 15:01:46 StandardWrapper[/examples:invoker]: Loading container servlet 
invoker
2002-07-15 15:01:46 invoker: init
2002-07-15 15:01:46 HostConfig[localhost]: Deploying web application directory 
tomcat-docs
2002-07-15 15:01:46 StandardHost[localhost]: Installing web application at context 
path /tomcat-docs from URL file:D:\Tomcat4\webapps\tomcat-docs
2002-07-15 15:01:46 WebappLoader[/tomcat-docs]: Deploying class repositories to work 
directory D:\Tomcat4\work\Standalone\localhost\tomcat-docs
2002-07-15 15:01:46 StandardManager[/tomcat-docs]: Seeding random number generator 
class java.security.SecureRandom
2002-07-15 15:01:46 StandardManager[/tomcat-docs]: Seeding of random number generator 
has been completed
2002-07-15 15:01:46 StandardWrapper[/tomcat-docs:default]: Loading container servlet 
default
2002-07-15 15:01:46 default: init
2002-07-15 15:01:46 StandardWrapper[/tomcat-docs:invoker]: Loading container servlet 
invoker
2002-07-15 15:01:46 invoker: init
2002-07-15 15:01:46 HostConfig[localhost]: Deploying web application directory webdav
2002-07-15 15:01:46 StandardHost[localhost]: Installing web application at context 
path /webdav from URL file:D:\Tomcat4\webapps\webdav
2002-07-15 15:01:46 WebappLoader[/webdav]: Deploying class repositories to work 
directory D:\Tomcat4\work\Standalone\localhost\webdav
2002-07-15 15:01:47 StandardManager[/webdav]: Seeding random number generator class 
java.security.SecureRandom
2002-07-15 15:01:47 StandardManager[/webdav]: Seeding of random number generator has 
been completed
2002-07-15 15:01:47 StandardWrapper[/webdav:default]: Loading container servlet default
2002-07-15 15:01:47 default: init
2002-07-15 15:01:47 StandardWrapper[/webdav:invoker]: Loading container servlet invoker
2002-07-15 15:01:47 invoker: init

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

Reply via email to