Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem sending large Xml document (about 10M)

83 views
Skip to first unread message

Trung

unread,
Feb 24, 2003, 6:33:10 PM2/24/03
to
Hi,
I have a simple Java client to post Xml message to a JMS destination. The
client works fine for smaller size Xml message (up to around 5Meg).
However, when I try to send a 10Meg Xml document, I got the following
exception:

Exception in thread "main" weblogic.jms.common.JMSException: ; nested
exception is:
java.io.EOFException
at
weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSyncTran(DispatcherWr
apperState.java:316)
at weblogic.jms.client.JMSProducer.sendMessage(JMSProducer.java:263)
at weblogic.jms.client.JMSProducer.send(JMSProducer.java:164)
at JMSSend.send(JMSSend.java:55)
at JMSSend.sendFile(JMSSend.java:94)
at JMSSend.main(JMSSend.java:80)
----------- Linked Exception -----------
weblogic.rjvm.PeerGoneException: ; nested exception is:
java.io.EOFException
java.io.EOFException
at
weblogic.rjvm.t3.T3JVMConnection.endOfStream(T3JVMConnection.java:618)
at
weblogic.socket.JavaSocketMuxer.processSockets2(JavaSocketMuxer.java:311)
at
weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:233)
at
weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

Has anyone seen similar problem? Resolution!
Thanks!

Trung Tran
trun...@yahoo.com


Tom Barnes

unread,
Feb 25, 2003, 10:33:52 AM2/25/03
to Trung
Hi Trung,

(1) You may wish to consider compressing the XML message and passing it
in binary form through JMS. Java has built-in compression libraries,
XML compresses hugely.

(2) You may wish to send the message as an "Object" message instead, so
that the JMS server treats it as blob rather than burning CPU time
deserializing it.

(3) Your connection is timing out as JMS layers on top of RMI, and the
"heartbeat" mechanism in RMI fails to get its heartbeats accross while
the large request is being sent accross - this causes RMI to think the
connection is down. To get around this, increase
"IdlePeriodsUntilTimeout", which defaults to 4, on the server. I'm not
sure if, or where, this can be set on the console -- but you can simply
add the line
IdlePeriodsUntilTimeout="8"
to the server's entry in your config.xml file.

(4) Your message is getting close to exceeding WebLogic transport
maximums, which default to 10,000,000 bytes. These can be increased on
the console's server pages: MaxT3MessageSize for t3:, and
MaxHTTPMessageSize for http:.

Hope this helps,

Tom

0 new messages