service unavailable
tom.baeyens Apr 2, 2004 2:34 PMHi,
I'm experiencing a problem with a clustered JBoss and maybe you would give me a hint in the right direction :-)
This is the problem
java.rmi.RemoteException: Service unavailable. at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxyHA.invoke(JRMPInvokerProxyHA.java:301) at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:96) at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45) at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:100) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85) at $Proxy1.startProcessInstance(Unknown Source) at org.jbpm.ejb.ExecutionServiceRemoteTest.testGet(ExecutionServiceRemoteTest.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:397) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:281) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:173)
The problem occurs after the first method that updates in the database : startProcessInstance in my test case ...
public void testGet() throws Exception { Properties properties = new Properties(); properties.put( Context.INITIAL_CONTEXT_FACTORY ,"org.jnp.interfaces.NamingContextFactory"); properties.put( Context.PROVIDER_URL,"localhost:1100"); properties.put( Context.URL_PKG_PREFIXES,"jboss.naming:org.jnp.interfaces"); for ( int i = 0; i < 50; i++ ) { JbpmEjbServiceLocator jbpmEjbServiceLocator = new JbpmEjbServiceLocator( properties ); ExecutionServiceRemote executionServiceRemote = null; executionServiceRemote = jbpmEjbServiceLocator.getExecutionServiceRemote(); Definition definition = executionServiceRemote.getLatestProcessDefinition( "the state process" ); // THIS IS THE LINE InvocationLog invocationLog = executionServiceRemote.startProcessInstance( "remote app-client test runner", definition.getId(), null, null ); // THIS IS THE LINE ProcessInstance instance = invocationLog.getProcessInstance(); executionServiceRemote.endOfState( "testrunner", instance.getRoot().getId(), null, null ); jbpmEjbServiceLocator.release( executionServiceRemote ); } }
I think I configured my environment properties in the InitialContext correct, no ? I got them from the clustering documentation.
The implementation of method startProcessInstance finishes without problems.... at least the log from the last line in the method shows up on the screen without problems...
I looked at the jboss sourcecode and the exception originates where it says something like tried all nodes of the cluster and can't get any decent response from any of them....
FYI : There is only one node in the cluster (localhost)
Possibly this is not enough to pinpoint the problem. But maybe I could already get a little further if someone could tell me how I turn on the debug logging in my application client (= eclipse test runner)
Thanks for your attention. Any hint is appreciated.
Regards, Tom.