The legacy detached invoker framework org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxyHA is throwing a java.rmi.RemoteException when all cluster targets have been exhausted. I updated the proxy factories to expose the raw invoker so that one can add a retry interceptor to the client proxy stack to transparently recover from a transient loss of all cluster services as in the case of a complete cluster restart.
The problem with the use of the java.rmi.RemoteException is that this is an exception that can be thrown as part of the normal application behavior and so is not a reliable indication of services exhaustion. We should be throwing a custom subclass of RemoteException like org.jboss.invocation.ServiceUnavailableException to clearly distinguish this failure scenario.
I'm going to make this change in head so I can check in a prototype RetryInterceptor that requires this.
Ok. I have added CannotConnectExceptions to remoting for when I can not make a remote call. Bill is using this exception for clustering interceptor (in the new stuff). Don't know if would want to use the same for the legacy stuff?