Thanks for the reply Daniel,

We tried to turn the memory up to 256M and we got the same error.



From: Daniel Florey <[EMAIL PROTECTED]>
Reply-To: "Slide Users Mailing List" <[EMAIL PROTECTED]>
To: Slide Users Mailing List <[EMAIL PROTECTED]>
Subject: Re: OutOfMemoryError for large file uploads
Date: Thu, 22 Apr 2004 15:36:00 +0200

Hi Ryan,
try to start Tomcat with 256M. This might help as slide tries to load the file into memory (this is a known issue).
We'll have a closer look at the problem in the near future.
Regards,
Daniel


Ryan Rhodes wrote:

We're having some issues getting large files into Slide. Other suggestions on the mailing list have helped somewhat (like setting the max_packet_size MySQL attribute) for getting larger files in, but nothing anywhere near what we'll need to be able to handle. I have not tried the LONGBLOB solution mentioned elsewhere in the mailing lists; frankly it looks like way too much of a pain to implement.

The root of the problem appears to be that the MySQL JDBC driver can't deal with blob insert sizes somewhere between 9M and 60M - I was able to successfully insert a 9M file into our Slide app (once we tweaked MySQL's max_allowedpacket attribute, and giving Tomcat 128M stack size using the -Xmx and -Xms options), but the 60M file fails no matter how I try. I've attempted it using our interface to Slide, the command-line client provided, and through IE, but it never works. We're using MySQL 4.0.18 and the JDBCStore with the MySQL RDBMS adapter. Our version of Slide was checked out from the HEAD a week ago.

Has anybody gotten mysql to take large files ("large" for my purposes being in the 15-100 meg range)? Am I right about it being the driver? Any other suggestions or workarounds? I'll do the LONGBLOB thing if I have to but...I really don't want to have to. ;)

Catalina.out shows the following:

21 Apr 2004 17:40:43 - org.apache.slide.util.event.EventLogger - INFO - Recieved event with name 'transaction:begin': [EMAIL PROTECTED]

21 Apr 2004 17:40:43 - org.apache.slide.util.event.EventLogger - INFO - Recieved vetoable event with name 'webdav:put': [EMAIL PROTECTED]

21 Apr 2004 17:40:43 - org.apache.slide.store.impl.rdbms.StandardRDBMSAdapter - INFO - /files/projects/project-1/largeFile60M1.0
21 Apr 2004 17:40:43 - org.apache.slide.util.event.EventLogger - INFO - Recieved vetoable event with name 'content:create': org.apache.slide.event.ContentEvent[content uri=/files/projects/project-1/largeFile60M contentType=application/octet-stream]
java.lang.OutOfMemoryError
org.apache.slide.common.ServiceAccessException: Service [EMAIL PROTECTED] access error : java.lang.OutOfMemoryError


at org.apache.slide.store.AbstractStore.createRevisionContent(AbstractStore.java:1311)

at org.apache.slide.store.ExtendedStore.createRevisionContent(ExtendedStore.java:393)

at org.apache.slide.content.ContentImpl.create(ContentImpl.java:552)
at org.apache.slide.webdav.method.PutMethod.executeRequest(PutMethod.java:380)


at org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:322)

at org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:165)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)


at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)

at org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:139)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)


at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:587)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:184)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)


at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:732)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:619)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:688)

at java.lang.Thread.run(Thread.java:534)
21 Apr 2004 17:40:44 - org.apache.slide.util.event.EventLogger - INFO - Recieved event with name 'transaction:rollback': [EMAIL PROTECTED]


http8080-Processor2, 21-Apr-2004 17:40:43, root, PUT, 500 "Internal Server Error", 422 ms, /files/projects/project-1/largeFile60M




Our Domain.xml:


<?xml version="1.0"?>
<slide>
<namespace name="slide">
<definition>
<store name="jdbc">
<nodestore classname="org.apache.slide.store.impl.rdbms.JDBCStore">
<parameter name="adapter">org.apache.slide.store.impl.rdbms.MySqlRDBMSAdapter</parameter>


<parameter name="driver">com.mysql.jdbc.Driver</parameter>
<parameter name="url">jdbc:mysql://localhost/slide</parameter>
<parameter name="user">slide</parameter>
<parameter name="dbcpPooling">true</parameter>
<parameter name="maxPooledConnections">10</parameter>
<parameter name="isolation">SERIALIZABLE</parameter>
<parameter name="compress">false</parameter>
</nodestore>
<contentstore>
<reference store="nodestore" />
</contentstore>
<securitystore>
<reference store="nodestore" />
</securitystore>
<lockstore>
<reference store="nodestore" />
</lockstore>
<revisiondescriptorsstore>
<reference store="nodestore" />
</revisiondescriptorsstore>
<revisiondescriptorstore>
<reference store="nodestore" />
</revisiondescriptorstore>
</store>
<scope match="/" store="jdbc"/>
</definition>
<configuration>
<!-- Actions mapping -->
<read-object>/actions/read</read-object>
<create-object>/actions/write</create-object>
<remove-object>/actions/write</remove-object>
<grant-permission>/actions/write-acl</grant-permission>
<revoke-permission>/actions/write-acl</revoke-permission>
<read-permissions>/actions/read-acl</read-permissions>
<read-own-permissions>/actions/read-current-user-privilege-set</read-own-permissions>


<lock-object>/actions/write</lock-object>
<kill-lock>/actions/unlock</kill-lock>
<read-locks>/actions/read</read-locks>
<read-revision-metadata>/actions/read</read-revision-metadata>
<create-revision-metadata>/actions/write-properties</create-revision-metadata>


<modify-revision-metadata>/actions/write-properties</modify-revision-metadata>

<remove-revision-metadata>/actions/write-properties</remove-revision-metadata>

<read-revision-content>/actions/read</read-revision-content>
<create-revision-content>/actions/write-content</create-revision-content>
<modify-revision-content>/actions/write-content</modify-revision-content>
<remove-revision-content>/actions/write-content</remove-revision-content>
<bind-member>/actions/bind</bind-member>
<unbind-member>/actions/unbind</unbind-member>
<!-- Paths configuration -->
<userspath>/users</userspath>
<rolespath>/roles</rolespath>
<actionspath>/actions</actionspath>
<filespath>/files</filespath>
<parameter name="dav">true</parameter>
<parameter name="standalone">true</parameter>
<parameter name="acl_inheritance_type">path</parameter>
<!-- Nested roles: 0 means no nesting (default), 1 means one sublevel, etc. -->
<parameter name="nested_roles_maxdepth">0</parameter>
</configuration>
<data>
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/">
<!-- Subject can be:
any user "all"
authenticated user "authenticated"
unauthenticated user "unauthenticated"
self "self"
owner of resource "owner"
a user "/users/john"
a role "/roles/admin"
-->
<permission action="all" subject="/roles/root" inheritable="true"/>
<permission action="/actions/read-acl" subject="all" inheritable="true" negative="true"/>
<permission action="/actions/write-acl" subject="all" inheritable="true" negative="true"/>
<permission action="/actions/unlock" subject="all" inheritable="true" negative="true"/>
<!-- /users -->
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users">
<permission action="all" subject="self" inheritable="true"/>
<permission action="all" subject="unauthenticated" inheritable="true" negative="true"/>
<!-- /users/root represents the administrator -->
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users/root">
<revision>
<property namespace="http://jakarta.apache.org/slide/"; name="password"/>
</revision>
</objectnode>


<!-- /users/john and /users/john2 represent authenticated users
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users/john">
<revision>
<property namespace="http://jakarta.apache.org/slide/"; name="password"/>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users/john2">
<revision>
<property namespace="http://jakarta.apache.org/slide/"; name="password"/>
</revision>
</objectnode>
-->


<!-- /users/guest represents an authenticated or unauthenticated guest user -->
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/users/guest">
<revision>
<property namespace="http://jakarta.apache.org/slide/"; name="password"/>
</revision>
</objectnode>
</objectnode>
<!-- /roles -->
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/roles">
<permission action="all" subject="self" inheritable="true"/>
<permission action="all" subject="unauthenticated" inheritable="true" negative="true"/>
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/roles/root">
<revision>
<property name="group-member-set"><![CDATA[<D:href xmlns:D='DAV:'>/users/root</D:href>]]></property>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/roles/user">
<revision>
<property name="group-member-set"><![CDATA[<D:href xmlns:D='DAV:'>/users/john</D:href><D:href xmlns:D='DAV:'>/users/john2</D:href><D:href xmlns:D='DAV:'>/users/root</D:href>]]></property>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/roles/guest">
<revision>
<property name="group-member-set"><![CDATA[<D:href xmlns:D='DAV:'>/users/guest</D:href>]]></property>
</revision>
</objectnode>
</objectnode>
<!-- action -->
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions">
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/read">
<revision>
<property name="privilege-member-set"><![CDATA[<D:href xmlns:D='DAV:'>/actions/read-acl</D:href> <D:href xmlns:D='DAV:'>/actions/read-current-user-privilege-set</D:href>]]></property>


</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/read-acl">
<revision>
<property name="privilege-member-set"/>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/read-current-user-privilege-set">
<revision>
<property name="privilege-member-set"/>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/write">
<revision>
<property name="privilege-member-set"><![CDATA[<D:href xmlns:D='DAV:'>/actions/write-acl</D:href> <D:href xmlns:D='DAV:'>/actions/write-properties</D:href> <D:href xmlns:D='DAV:'>/actions/write-content</D:href>]]></property>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/write-acl">
<revision>
<property name="privilege-member-set"/>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/write-properties">
<revision>
<property name="privilege-member-set"/>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/write-content">
<revision>
<property name="privilege-member-set"><![CDATA[<D:href xmlns:D='DAV:'>/actions/bind</D:href> <D:href xmlns:D='DAV:'>/actions/unbind</D:href>]]></property>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/bind">
<revision>
<property name="privilege-member-set"/>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/unbind">
<revision>
<property name="privilege-member-set"/>
</revision>
</objectnode>
<objectnode classname="org.apache.slide.structure.ActionNode" uri="/actions/unlock">
<revision>
<property name="privilege-member-set"/>
</revision>
</objectnode>
</objectnode>
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/files">
<permission action="all" subject="unauthenticated" inheritable="true"/>
<permission action="/actions/write" subject="/roles/user" inheritable="true"/>
<permission action="/actions/read-acl" subject="owner" inheritable="true"/>
</objectnode>
<!-- DeltaV: default history and workspace paths -->
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/history">
<permission action="all" subject="unauthenticated" inheritable="true"/>
<permission action="/actions/write" subject="/roles/user" inheritable="true"/>
<permission action="/actions/read-acl" subject="owner" inheritable="true"/>
</objectnode>
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/workspace">
<permission action="all" subject="unauthenticated" inheritable="true"/>
<permission action="/actions/write" subject="/roles/user" inheritable="true"/>
<permission action="/actions/read-acl" subject="owner" inheritable="true"/>
</objectnode>
<objectnode classname="org.apache.slide.structure.SubjectNode" uri="/workingresource">
<permission action="all" subject="unauthenticated" inheritable="true"/>
<permission action="/actions/write" subject="/roles/user" inheritable="true"/>
<permission action="/actions/read-acl" subject="owner" inheritable="true"/>
</objectnode>
</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.

* versioncontrol-exclude (mandatory=no, default=""):
Specifies a Slide path which determines resources which are excluded from version-control.
The default value "" makes no path being excluded.


   * 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="versioncontrol-exclude"/>
   <parameter name="checkout-fork">forbidden</parameter>
   <parameter name="checkin-fork">forbidden</parameter>


<!-- Event configuration -->
<extractors>
<extractor classname="org.apache.slide.extractor.SimpleXmlExtractor" uri="/files/articles/test.xml">
<configuration>
<instruction property="title" xpath="/article/title/text()" />
<instruction property="summary" xpath="/article/summary/text()" />
</configuration>
</extractor>
</extractors>


<!-- Event configuration -->
<events>
<event classname="org.apache.slide.webdav.event.WebdavEvent" enable="true" />
<event classname="org.apache.slide.event.ContentEvent" enable="true" />
<event classname="org.apache.slide.event.ContentEvent" method="retrieve" enable="false" />
<event classname="org.apache.slide.event.EventCollection" enable="true" />
<event classname="org.apache.slide.event.TransactionEvent" enable="true" />


<listener classname="org.apache.slide.util.event.EventLogger" />
<listener classname="org.apache.slide.event.VetoableEventCollector" />
<listener classname="org.apache.slide.event.TransientEventCollector" />
<listener classname="org.apache.slide.webdav.event.NotificationTrigger">
<configuration>
<notification protocol="tcp" include-events="false" />
</configuration>
</listener>
<listener classname="org.apache.slide.extractor.PropertyExtractorTrigger" />
<listener classname="org.apache.slide.search.IndexTrigger">
<configuration>
<indexer classname="org.apache.slide.search.LoggingIndexer" synchronous="false" uri="/files/articles" />
</configuration>
</listener>
</events>
</slide>


_________________________________________________________________
Watch LIVE baseball games on your computer with MLB.TV, included with MSN Premium! http://join.msn.com/?page=features/mlb&pgmarket=en-us/go/onm00200439ave/direct/01/




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





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


_________________________________________________________________
Lose those love handles! MSN Fitness shows you two moves to slim your waist. http://fitness.msn.com/articles/feeds/article.aspx?dept=exercise&article=et_pv_030104_lovehandles



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



Reply via email to