not sure, but it seems that the RMI implementation of a binary value reads the data into memory.

snippet from org.apache.jackrabbit.rmi.value.BinaryValue:

// read the input into a byte array - limited by memory available !!
        ByteArrayOutputStream bos =
            new ByteArrayOutputStream(stream.available());
        byte[] buf = new byte[2048];
        int rd = 0;
        while ((rd = stream.read(buf)) >= 0) {
            bos.write(buf, 0, rd);
        }

maybe Jukka can shed some light on this.

regards
 marcel

Andries Demont wrote:
I'm running jack-rabbit as a stand-alone server on tomcat5.5
The client communicates remotely with jcr.
I didn't change the heap size, so I think 8 Meg, how can I check this value?

The file I tried to send was 35 meg.

In the attachment I placed the repository.xml file

Thanks for helping me out!

Greetings!
Andries




------------------------------------------------------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Repository//EN" 
"file://config.dtd"> -->
<!DOCTYPE Repository [
    <!--
    the Repository element configures a repository instance;
    individual workspaces of the repository are configured through
    separate configuration files called workspace.xml which are
    located in a subfolder of the workspaces root directory
    (see Workspaces element).

    it consists of

    a FileSystem element (the virtual file system
    used by the repository to persist global state such as
    registered namespaces, custom node types, etc..

    a Workspaces element that specifies to the location of
    workspaces root directory and the name of default workspace

    a Workspace element that is used as a workspace configuration
    template; it is used to create the initial workspace if there's
    no workspace yet and for creating additional workspaces through
    the api

    a SearchIndex element that is used for configuring per workspace
    Indexing-related settings

    a Versioning element that is used for configuring
    versioning-related settings
    -->
    <!ELEMENT Repository (FileSystem,Security,Workspaces,Workspace,Versioning)>

    <!--
    a virtual file system
    -->
    <!ELEMENT FileSystem (param*)>
    <!ATTLIST FileSystem
      class CDATA #REQUIRED>

    <!--
        the Security element specifies the name (appName attribute)
of the JAAS configuration app-entry for this repository.
        it also specifies the access manager to be used (AccessManager element).
    -->
    <!ELEMENT Security (AccessManager)>
    <!ATTLIST Security
      appName CDATA #REQUIRED>


    <!--
    generic parameter (name/value pair)
    -->
    <!ELEMENT param EMPTY>
    <!ATTLIST param
      name CDATA #REQUIRED
      value CDATA #REQUIRED>

    <!--
    the Workspaces element specifies the workspaces root directory
    (rootPath attribute) and the name of the default workspace
    (defaultWorkspace attribute).

    individual workspaces are configured through individual workspace.xml
    files located in a subfolder each of the workspaces root directory.
    -->
    <!ELEMENT Workspaces EMPTY>
    <!ATTLIST Workspaces
      rootPath CDATA #REQUIRED
      defaultWorkspace CDATA #REQUIRED>

    <!--
    the Workspace element serves as a workspace configuration template;
    it is used to create the initial workspace if there's no workspace yet
    and for creating additional workspaces through the api
    -->
    <!ELEMENT Workspace (FileSystem,PersistenceManager,SearchIndex?)>
    <!ATTLIST Workspace
      name CDATA #REQUIRED>

    <!--
    the PersistenceManager element configures the persistence manager
    to be used for the workspace; the class attribute specifies the
    FQN of the class implementing PersistenceManager interface
    -->
    <!ELEMENT PersistenceManager (param*)>
    <!ATTLIST PersistenceManager
      class CDATA #REQUIRED>

    <!--
    the SearchIndex element specifies the locaction of the search index
    (used by the QueryHandler); the class attribute specifies the
    FQN of the class implementing the QueryHandler interface.
    -->
    <!ELEMENT SearchIndex (param*,FileSystem)>
    <!ATTLIST SearchIndex
      class CDATA #REQUIRED>

    <!--
    the Versioning element configures the persistence manager
    to be used for persisting version state
    -->
    <!ELEMENT Versioning (FileSystem, PersistenceManager)>
    <!ATTLIST Versioning
      rootPath CDATA #REQUIRED
    >
]>
<Repository>
    <!--
    virtual file system where the repository stores global state
    (e.g. registered namespaces, custom node types, etc.)
    -->
    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
        <param name="path" value="${rep.home}/repository"/>
    </FileSystem>

    <!--
        security configuration
    -->
    <Security appName="Jackrabbit">
        <!--
            access manager:
            class: FQN of class implementing the AccessManager interface
        -->
        <AccessManager 
class="org.apache.jackrabbit.core.security.SimpleAccessManager">
            <!-- <param name="config" value="${rep.home}/access.xml"/> -->
        </AccessManager>
<LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule"> <!-- anonymous user name ('anonymous' is the default value) --> <param name="anonymousId" value="anonymous" /> </LoginModule>

    </Security>

    <!--
    location of workspaces root directory and name of default workspace
    -->
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
    <!--
    workspace configuration template:
    used to create the initial workspace if there's no workspace yet
    -->
    <Workspace name="${wsp.name}">
        <!--
        virtual file system of the workspace:
        class: FQN of class implementing FileSystem interface
        -->
        <FileSystem class="com.day.jackrabbit.fs.cq.CQFileSystem">
            <param name="path" value="${wsp.home}/wspStore.dat"/>
            <param name="autoRepair" value="false"/>
            <param name="blockSize" value="128"/>
            <param name="autoSync" value="false"/>
        </FileSystem>
        <!--
        persistence of the workspace:
        class: FQN of class implementing PersistenceManager interface
        -->
        <PersistenceManager 
class="org.apache.jackrabbit.core.state.obj.ObjectPersistenceManager"/>
        <!--
        Search index and the file system it uses.
        -->
        <SearchIndex 
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="useCompoundFile" value="true"/>
            <param name="minMergeDocs" value="1000"/>
            <param name="maxMergeDocs" value="10000"/>
            <param name="mergeFactor" value="10"/>

            <FileSystem 
class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
                <param name="path" value="${wsp.home}/index"/>
            </FileSystem>
        </SearchIndex>
    </Workspace>

    <!--
    Configures the versioning
    -->
    <Versioning rootPath="${rep.home}/version">
        <!--
        Configures the filesystem to use for versioning for the respective
        persistence manager
        -->
        <FileSystem class="com.day.jackrabbit.fs.cq.CQFileSystem">
            <param name="path" value="${rep.home}/version/version.dat"/>
            <param name="autoRepair" value="false"/>
            <param name="blockSize" value="128"/>
            <param name="autoSync" value="false"/>
        </FileSystem>

        <!--
        Configures the persistence manager to be used for persisting version 
state.
        Please note that the current versioning implementation is based on
        a 'normal' persistence manager, but this could change in future
        implementations.
        -->
        <PersistenceManager 
class="org.apache.jackrabbit.core.state.obj.ObjectPersistenceManager"/>

    </Versioning>

</Repository>

Reply via email to