Jboss 4.0.3Sp1 + Jdk 1.5 + Spring Framework 2.0.8 - Cluster restart problem
cdsanchez Mar 10, 2010 7:50 AMHello,
- I know I am talking about old versions but I don't have more options atm; I have a known problem about remote calling a EJB after restarting a Cluster.
- My architecture is:
- 1 Jboss partition with 2 nodes with a war application.
- 1 Jboss partition in Cluster with 2 nodes with a stateless EJB.
- No problem if i call to the remote EJB from the war application, it is working; when I restart the Jboss partition in Cluster, after that, the EJB client is unable to call the Remote EJB, it shows 1 error:
- The original exception seeing in Debug:
org.jboss.invocation.ServiceUnavailableException: Service unavailable
- The Object cachedHome which includes a org.jboss.proxy.ClientContainer has invalid reference (this proxy is not valid anymore)
The final stacktrace in log:
org.springframework.remoting.RemoteAccessException: Could not access remote service [ejb/EJBService]; nested exception is org.jboss.invocation.ServiceUnavailableException: Service unavailable.
Caused by:
org.jboss.invocation.ServiceUnavailableException: Service unavailable.
at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxyHA.invoke(JRMPInvokerProxyHA.java:292)
at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:227)
at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:37)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:169)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy63.create(Unknown Source)
at sun.reflect.GeneratedMethodAccessor285.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.ejb.access.AbstractSlsbInvokerInterceptor.create(AbstractSlsbInvokerInterceptor.java:177)
at org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor.newSessionBeanInstance(AbstractRemoteSlsbInvokerInterceptor.java:205)
at org.springframework.ejb.access.SimpleRemoteSlsbInvokerInterceptor.getSessionBeanInstance(SimpleRemoteSlsbInvokerInterceptor.java:108)
at org.springframework.ejb.access.SimpleRemoteSlsbInvokerInterceptor.doInvoke(SimpleRemoteSlsbInvokerInterceptor.java:74)
at org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor.invoke(AbstractRemoteSlsbInvokerInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy52.doAvailabilitySearch(Unknown Source)
Of course I have the "jndi lookup during restart" problem too.
The question is if you know how to fix it; I don't know how to use the RetryInterceptor using Spring, I don't know how to use it.
Any ideas?
Thank you very much in advance