Oracle Service Bus, transporting large files fails
October 14, 2009 6 Comments
Error
weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '20000160' bytes exceeds the configured maximum of: '20000000' bytes for protocol: 't3'.
weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '20000160' bytes exceeds the configured maximum of: '20000000' bytes for protocol: 't3'
at weblogic.socket.AbstractMuxableSocket.incrementBufferOffset(AbstractMuxableSocket.java:262)
at weblogic.rjvm.t3.MuxableSocketT3.incrementBufferOffset(MuxableSocketT3.java:343)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:910)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:859)
at weblogic.socket.EPollSocketMuxer.dataReceived(EPollSocketMuxer.java:215)
at weblogic.socket.EPollSocketMuxer.processSockets(EPollSocketMuxer.java:177)
at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:11
Solution
Goto the Weblogic Console > Servers > AdminServer (or Managed Servers) > Protocols
Change the value of ‘Maximum Message Size’ to something which will succeed in your case.
I think maximum size of JMS Queue is 10mb in-line (non-attachment) as the limit. But for bigger sizes the garbage collection due to serialization/deserialization activity cause serious probelms.
Pingback: Oracle Service Bus, transporting large files fails | Oracle .. Java .. OpenSource .. SOA
Hello
In a client szenario we have a requirement to send JMS messages with a message size in the region of 250 MB. We’ve set the Maximum Message size on the protocol to unlimited.
Then we ran tests with various connection factory settings to determine the WLS JMS behaviour. However, we could not overcome a limit at around 220 MB size:
http://thomasrischbeck.blogspot.com/2012/03/jms-maxmessage-size-persistent-messages.html
Cheers, Thomas.
IMHO if you are asking your ESB to transport such a big payload, you shold reconsider the approach, either by use Batches (split large messages into smaller messages, maybe with a sequence number in a Unit Of Order for orderly processing) – or use ETL tools…
I agree. But you don’t always have the option to extend the process with other tools
Hi Eric and Pierluigi
I agree with you on the technical & conceptual side: 200MB certainly is not the OSB sweet-spot. And it’s also a SOA antipattern to shuffle around such large messages (and here I think about the SOA principles of business-oriented services, reuse, granularity…). However, customers frequently use OSB/ESB as an entry point for building up a more fully-fledged SOA stack. And ideally they want to replace their existing ETL/EAI tools with just one new component of the SOA stack – in order to save on operating costs. Splitting up of large messages is an option. But then you must adapt the connected systems.
Best, Thomas