[ 
https://issues.apache.org/jira/browse/JCRRMI-23?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12709602#action_12709602
 ] 

Sven M. Resch commented on JCRRMI-23:
-------------------------------------

Hi Jukka,

Yes I think the use case and importXML call can be done on the server. I am 
currently setting things up to try this out.

I have, up to now, seen some success with chunking the 88 MB XML down in size 
with the largest chuck being about 21 MB. The importXML call completes quickly 
but a subsequent session.save() takes quite some time. More concerning though 
is the amount of JVM heap that is allocated upon import/save.

My development machine has a modest 2.4 GHz Core 2 Duo CPU with 2GB of RAM and 
I can start the server with a max of -Xms1024m to set the max heap size. The 
larger 21MB file I think fits just under the availble heap size limit. Any 
larger of an XML generally results in a "java.lang.outofmemory exception jvm 
heap size insufficient" error.

Even with moving the import to the server... my guess is that the 88 MB file 
import will still run into a Out Of Memory error but I won't know for another 
day or so when I have tried it out.

> SocketException / MarshalException with importXML on large file
> ---------------------------------------------------------------
>
>                 Key: JCRRMI-23
>                 URL: https://issues.apache.org/jira/browse/JCRRMI-23
>             Project: Jackrabbit JCR-RMI
>          Issue Type: Bug
>         Environment: Windows XP, Java 1.5, JackRabbit Standalone 1.5.5, 
> Eclipse 3.2.1
>            Reporter: Sven M. Resch
>
> I am just starting to learn JackRabbit so forgive my ignorance. How does the 
> JCR-API jar in JackRabbit 1.5.5 related to the 1.6.0 and 2.0.0 versions 
> listed in this Issues portal BTW?
> I have started JackRabbit Standalone 1.5.5 from a command line as follows:
>    >java -jar jackrabbit-standalone-1.5.5.jar -p 8282 -f 
> D:/programs/jackrabbit_1.5.5/jackrabbit-standalone-1.5.5.jar
> And from Eclipse I have setup basically the same as described in "First Hops" 
> #3 to import an XML file. To connect to the repository however I do this as I 
> am not running a rmiregistry:
>    Repository repository = new 
> URLRemoteRepository("http://localhost:8282/rmi";);
> Note that First Hops #1 & 2 run fine as do #3 with a small (6 MB) XML file as 
> long as from Eclipse I run the applications with an additional JVM Argument 
> of:
>    -Xmx512m
> When I try to run First Hop #3 with a pretty big XML file that is 
> approximately 88 MB in size I get the following dump on the client (no errors 
> in any server logs that I could see). Any ideas?
> Importing xml...
> Exception: error marshalling arguments; nested exception is: 
>       java.net.SocketException: Software caused connection abort: socket 
> write error
> org.apache.jackrabbit.rmi.client.RemoteRepositoryException: error marshalling 
> arguments; nested exception is: 
>       java.net.SocketException: Software caused connection abort: socket 
> write error: error marshalling arguments; nested exception is: 
>       java.net.SocketException: Software caused connection abort: socket 
> write error
>       at 
> org.apache.jackrabbit.rmi.client.ClientSession.importXML(ClientSession.java:262)
>       at com.cadence.jr.ImportTest.main(ImportTest.java:95)
> Caused by: java.rmi.MarshalException: error marshalling arguments; nested 
> exception is: 
>       java.net.SocketException: Software caused connection abort: socket 
> write error
>       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
>       at 
> org.apache.jackrabbit.rmi.server.ServerXASession_Stub.importXML(Unknown 
> Source)
>       at 
> org.apache.jackrabbit.rmi.client.ClientSession.importXML(ClientSession.java:260)
>       ... 1 more
> Caused by: java.net.SocketException: Software caused connection abort: socket 
> write error
>       at java.net.SocketOutputStream.socketWrite0(Native Method)
>       at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
>       at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>       at 
> java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
>       at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
>       at 
> java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1685)
>       at 
> java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(ObjectOutputStream.java:1723)
>       at 
> java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1397)
>       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:305)
>       at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:258)
>       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:117)
>       ... 3 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to