6 Replies Latest reply: Aug 4, 2008 4:58 PM by Ron Sigal RSS

Has anyone actually tried using the CompressingMarshaller?

Tim McCune Novice

I'm reading the section on "Compression marshalling" at http://labs.jboss.com/portal/jbossremoting/docs/guide/ch05.html and thought I'd give that configuration a try. I set up my InvokerLocator to look like the following:

socket://${jboss.bind.address}:3873/?serializationtype=jboss&marshaller=org.jboss.remoting.marshal.compress.CompressingMarshaller&unmarshaller=org.jboss.remoting.marshal.compress.CompressingUnMarshaller

When I do this, I get intermittent exceptions that look like this:

java.rmi.MarshalException: Failed to communicate. Problem during marshalling/unmarshalling; nested exception is:
java.io.IOException: Not in GZIP format
at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:306)
at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143)
at org.jboss.remoting.Client.invoke(Client.java:525)
at org.jboss.remoting.Client.invoke(Client.java:488)
at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.remoting.ClusterChooserInterceptor.invoke(ClusterChooserInterceptor.java:74)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:55)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessClusteredProxy.invoke(StatelessClusteredProxy.java:100)
... 33 more
Caused by: java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:132)
at java.util.zip.GZIPInputStream.(GZIPInputStream.java:58)
at java.util.zip.GZIPInputStream.(GZIPInputStream.java:68)
at org.jboss.remoting.marshal.compress.CompressingUnMarshaller.read(CompressingUnMarshaller.java:93)
at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:279)
... 47 more

It looks like an odd, intermittent problem. I have a test that tries to make 125 subsequent remote EJB calls. The first time, the first 23 work, and it fails on the 24th. If I immediately rerun the test, the first 48 work, and it fails on the 49th. If I try again, the first 71 work, and it fails on the 72, and so on. Eventually, all 125 calls succeed, but they produce 6 of the exceptions pasted above along the way.

Any ideas what the problem might be? Has anyone used the CompressingMarshaller successfully?