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?