SOAP over JMS fails with AMQ 5.8.0 and AMQ-4312 patch

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

SOAP over JMS fails with AMQ 5.8.0 and AMQ-4312 patch

matteor
Once upon a time when we were using AMQ 5.6.0, we run into the https://issues.apache.org/jira/browse/AMQ-4076. For us, the effects of this bug were a failure in CXF over JMS when the envelopes size exceeded a 20KB size (more or less).

To solve the problem we upgraded to 5.8.0 and the problem disappeared.

Two weeks ago, in one of our production deployments we got the effects of https://issues.apache.org/jira/browse/AMQ-4312. To solve this blocking issue we applied the suggested patch and we got it solved as hoped.

Unfortunately, as soon as we applied the AMQ-4312 patch, the effects AMQ-4076 re-appeared: the SOAP over JMS transport fail whenever the SOAP envelope is greater than 20KB, more or less.

I'm quite sure this has been introduced by the patch: I doubled check the problem arises as soon as the patch of AMQ-4312 is applied.

Do you have any suggestion to address this issue?

Some env. details:
AMQ 5.8.0 with 1 patch: patch for AMQ-4312
CXF 2.7.3
jms transports used: 
	server side: nio+ssl
Java version: 1.6
Client side stacktrace:

Encountered a JMSException - resetting the underlying JMS Connection
javax.jms.JMSException: bad record MAC
	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
	at org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1969)
	at org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1988)
	at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:101)
	at org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:126)
	at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:101)
	at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:101)
	at org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:160)
	at org.apache.activemq.transport.AbstractInactivityMonitor.onException(AbstractInactivityMonitor.java:332)
	at org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:96)
	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:200)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.net.ssl.SSLException: bad record MAC
	at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
	at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
	at org.apache.activemq.transport.tcp.TcpBufferedInputStream.readStream(TcpBufferedInputStream.java:70)
	at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:92)
	at org.apache.activemq.transport.tcp.TcpTransport$2.read(TcpTransport.java:594)
	at java.io.DataInputStream.readFully(Unknown Source)
	at java.io.DataInputStream.readFully(Unknown Source)
	at org.apache.activemq.openwire.v9.BaseDataStreamMarshaller.tightUnmarshalByteSequence(BaseDataStreamMarshaller.java:440)
	at org.apache.activemq.openwire.v9.MessageMarshaller.tightUnmarshal(MessageMarshaller.java:72)
	at org.apache.activemq.openwire.v9.ActiveMQMessageMarshaller.tightUnmarshal(ActiveMQMessageMarshaller.java:66)
	at org.apache.activemq.openwire.v9.ActiveMQTextMessageMarshaller.tightUnmarshal(ActiveMQTextMessageMarshaller.java:66)
	at org.apache.activemq.openwire.OpenWireFormat.tightUnmarshalNestedObject(OpenWireFormat.java:462)
	at org.apache.activemq.openwire.v9.BaseDataStreamMarshaller.tightUnmarsalNestedObject(BaseDataStreamMarshaller.java:125)
	at org.apache.activemq.openwire.v9.MessageDispatchMarshaller.tightUnmarshal(MessageDispatchMarshaller.java:71)
	at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:371)
	at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:285)
	at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:221)
	at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:213)
	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
	... 1 more

Thank you very much,
matteo
Reply | Threaded
Open this post in threaded view
|

Re: SOAP over JMS fails with AMQ 5.8.0 and AMQ-4312 patch

matteor
I tried with the latest snapshot (apache-activemq-5.9-20130919.101342) and everything worked fine. So I think something is missing in the uploaded patch for AMQ-4312.

Does anyone have a clue about what it could be missing from the patch? What AMQ packages could be involved? Maybe I could try a diff between those packages in 5.8 and 5.9...

Thanks.
matteo