Excuse me for the post, but have done enough searches and dont find info 
regarding this. Help needed!!

I am hitting some issues related to using EJB Timer service for deployment, i 
have used Out of the box config recommended for enterprise deployment.

First the details of Deployment
1. 3 jboss 5.1.0 servers hitting the same database
2. Using JBPM 3.2.6SP1
3. Oracle is database.
4. Using Database persisted timers(ejb2 timers), in the same database table 
TIMERS on all servers, below is the jbpm.cfg.xml

  | <jbpm-configuration>
  | 
  |   <jbpm-context>
  |     <service name="persistence" 
factory="org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory" />
  |     <service name="message" 
factory="org.jbpm.msg.jms.JmsMessageServiceFactory" />
  |     <service name="scheduler" 
factory="org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory" />
  |     <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
  |     <!-- <service name="logging" 
factory="org.jbpm.logging.db.DbLoggingServiceFactory" />-->
  |     <service name="authentication" 
factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" 
/>
  |   </jbpm-context>
  | 
  |   <!-- use the context class loader 
  |   <string name="jbpm.classLoader" value="context" />-->
  |   
  |   <!-- 
  |     Note, that the default job executor needs to be overwritten with a null 
value. 
  |     In the enterprise configuration there should be no job executor. 
  |     Async messaging is there bound to jms and scheduling to ejb timers.  
  |   -->  
  |   <null name="jbpm.job.executor" />
  | 
  | </jbpm-configuration>
  | 
  | 
 
EJB timer configuration is standard with database persistence JNDI name changed 
to Oracle database.


Issues/Observations
1. I see no issues with async continuations(have 2-3 such async exclusive nodes 
in my process definition)
2. But for timers, 
a) Every once in a while these errors show up in server console,I see that this 
stack is present in more than one servers (which shows the timer fired on more 
than one server). 
b) On server startup StaleObject Exception related to timer save are seen in 
plenty.Note only one server is started and stopped at a time. 

I definitely feel that something is wrong with the way it is deployed, as when 
i looked into EJBTimerService code and i see that on server startup all timers 
persisted are deleted and reinserted. At this point if some other server 
already had a timer assigned(it is a thread based implementation), that timer 
would continue to run and another one would be started on server just restarted 
as well. And when time comes to fire, both servers would fire the timer. This 
would result in staleobject exception and hence certainly cause a problem. 


Sorry if my post was not clear, as i have avoided lot of details so that the 
post is readable. I can provide more info as required. But please recommend if 
something can be done for this.  Also it can be treated as more of a problem 
with EJBTimerService, but again i am looking at ways in which i can make JBPM 
timers work in multi server environment. I can not use local database hsql, as 
that is not allowed in production enviroment.

Worst case i am thinking of implementing a SingleServerPersistencePlugin for 
timers, and add an additional column with the server owner name, so that 
restoreTimers is clearly separated from all other servers. There is a definite 
problem with failover in such implementation but better get something working 
then nothing.






View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4262109#4262109

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4262109
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to