executing process with timer
boxwala Nov 12, 2008 10:12 AMI am encountering an error trying to execute a process that has a timer. I am running jbpm 3.2.1 in its app-server form, using the ear file, on jboss AS 4.2.1.GA.
The only change we made in the ear was to modify the hibernate config file since we switched the DBMS to MSSQL 2005. That seems to work okay when we execute processes without timer.
However, in trying to execute a process with timer, there is an issue with the TimerServiceBean not being found. I understand from the documentation that the jbpm-enterprise.jar includes the deployment descriptors for JBoss AS. Did I miss a configuration step in setting up ejb/LocalTimerEntityBean?
13:09:16,632 ERROR [EjbSchedulerService] javax.naming.NameNotFoundException: ejb not bound 13:09:16,633 ERROR [GraphElement] action threw exception: ejb local timer lookup problem org.jbpm.JbpmException: ejb local timer lookup problem at org.jbpm.scheduler.ejbtimer.EjbSchedulerService.<init>(EjbSchedulerService.java:34) at org.jbpm.scheduler.ejbtimer.EjbSchedulerServiceFactory.openService(EjbSchedulerServiceFactory.java:11) at org.jbpm.svc.Services.getService(Services.java:141) at org.jbpm.svc.Services.getCurrentService(Services.java:88) at org.jbpm.svc.Services.getCurrentService(Services.java:81) at org.jbpm.scheduler.def.CreateTimerAction.execute(CreateTimerAction.java:66) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:255) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:220) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:190) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:174) at org.jbpm.graph.def.Node.enter(Node.java:302) 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:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173) at org.jbpm.graph.def.Node_$$_javassist_119.enter(Node_$$_javassist_119.java) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:393) at org.jbpm.graph.node.StartState.leave(StartState.java:70) 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:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173) at org.jbpm.graph.def.Node_$$_javassist_119.leave(Node_$$_javassist_119.java) at org.jbpm.graph.exe.Token.signal(Token.java:194) at org.jbpm.graph.exe.Token.signal(Token.java:139) at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:270) at com.example.processexecutor.ProcessManager.spawnProcessInstance(ProcessManager.java:75) 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:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:278) at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106) at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:560) at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:369) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:165) Caused by: javax.naming.NameNotFoundException: ejb not bound at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) at org.jnp.server.NamingServer.getObject(NamingServer.java:543) at org.jnp.server.NamingServer.lookup(NamingServer.java:267) at org.jnp.server.NamingServer.lookup(NamingServer.java:270) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) at org.jboss.ejb3.naming.MultiplexerContext.lookup(MultiplexerContext.java:200) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:718) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:589) at javax.naming.InitialContext.lookup(InitialContext.java:351) at org.jbpm.scheduler.ejbtimer.EjbSchedulerService.<init>EjbSchedulerService.java:31) ... 62 more
This is the output on the console when the ear is initialized:
10:07:07,668 INFO [EjbModule] Deploying CommandServiceBean 10:07:07,735 INFO [EjbModule] Deploying TimerServiceBean 10:07:07,742 INFO [EjbModule] Deploying CommandListenerBean 10:07:07,767 INFO [EjbModule] Deploying JobListenerBean 10:07:07,876 INFO [BaseLocalProxyFactory] Bound EJB LocalHome 'CommandServiceBean' to jndi 'CommandServiceBean' 10:07:07,925 INFO [ProxyFactory] Bound EJB Home 'CommandServiceBean' to jndi 'ejb/CommandServiceBean' 10:07:07,937 INFO [BaseLocalProxyFactory] Bound EJB LocalHome 'TimerServiceBean' to jndi 'local/TimerServiceBean@22952850' 10:07:07,997 WARN [JMSContainerInvoker] Could not find the queue destination-jndi-name=queue/JbpmCommandQueue 10:07:07,998 WARN [JMSContainerInvoker] destination not found: queue/JbpmCommandQueue reason: javax.naming.NameNotFoundException: JbpmCommandQueue not bound 10:07:07,999 WARN [JMSContainerInvoker] creating a new temporary destination: queue/JbpmCommandQueue 10:07:08,007 INFO [JbpmCommandQueue] Bound to JNDI name: queue/JbpmCommandQueue 10:07:08,078 WARN [JMSContainerInvoker] Could not find the queue destination-jndi-name=queue/JbpmJobQueue 10:07:08,079 WARN [JMSContainerInvoker] destination not found: queue/JbpmJobQueue reason: javax.naming.NameNotFoundException: JbpmJobQueue not bound 10:07:08,080 WARN [JMSContainerInvoker] creating a new temporary destination: queue/JbpmJobQueue 10:07:08,088 INFO [JbpmJobQueue] Bound to JNDI name: queue/JbpmJobQueue