[
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.