[jboss-user] [Remoting] - Re: forceRemote timeout Problems

ron.sigal@jboss.com do-not-reply at jboss.com
Thu Mar 19 17:22:30 EDT 2009


Hi Markus,

When a Remoting client and server are in the same JVM, the client will, by default, make a method call directly on the server instead of marshalling and unmarshalling invocations over a pair of sockets.  For example, 


  |   at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:853)
  |   at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:101)
  |   at org.jboss.remoting.Client.invoke(Client.java:1640)
  | 

shows Client.invoke() calling LocalClientInvoker.invoke(), which calls ServerInvoker.invoke().  If the server were in a different JVM, you would see Client.invoke() calling BisocketClientInvoker.invoke(), followed by a sequence of calls ending with a socket write.  

By setting the "force_remote" parameter to true, you are telling Remoting to avoid the network bypass and call BisocketClientInvoker.  That's OK, but when you add


  | <attribute name="force_remote">true</attribute>
  | 

to the MBean configuration, you're setting "force_remote" on the server but not the client.  You want to add 'isParam="true"':


  | <attribute name="force_remote" isParam="true">true</attribute>
  | 

which adds "force_remote=true" to the InvokerLocator.  The client then gets the "force_remote" parameter from the InvokerLocator.  I think that should solve your timeout problem.

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4219627#4219627

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4219627



More information about the jboss-user mailing list