I'm trying to force an EJB call to be remote on the same machine, even though the EJB is deployed locally (i.e. open an actual socket connection to localhost and go through the exact same steps as a remote client would). The reason for this is to set up a monitoring MBean that we can use to isolate application and app server-level failures from network-level failures (i.e. if the machine can open up a socket to itself, but the client can't, it's much more likely to be a network-level failure.) This is turning out to be more challenging than I expected.
My first attempt was to set up a custom stack in ejb3-interceptors-aop.xml that removes the IsLocalInterceptor. But then I ran into what looks like another optimization in JBoss Remoting where it's using the LocalClientInvoker instead of the actual configured invoker.
Has anyone else attempted this? Any suggestions of a simple way to force the call to be truly remote?