[JBoss Messaging Development] - JGroups/JBoss Cache backed PersistenceManager?
by scotto
Is it feasible to write a org.jboss.messaging.core.contract.PersistenceManager implementation that is backed by JGroups or JBoss Cache?
I ask because I need a JMS solution that ensures failover of persistent messages when a cluster member dies, with the acceptable restriction that these messages do NOT need to be persisted should ALL members of the cluster die.
(The standard solution of using the JDBCPersistenceManager with a clustered database IMHO is overkill and proving to have unacceptable performance issues for our application, hence I am looking for alternatives!)
It would seem to me that something like this would be possible, perhaps using the JGroups DistributedHashMap or MessageDispatcher blocks to distribute the "persisted" messages? Can anyone foresee any problems pursuing this approach? My initial concerns would be regarding the correct handling of XA transactions etc (Alternatively, would using JBoss Cache instead of JGroups take care of XA issues?).
Any insight on this idea would be greatly appreciated!
Thanks
Scott
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4260208#4260208
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4260208
16 years, 5 months
[JBoss ESB Development] - Re: Supporting entry-point
by jeffdelong
Two other items we should discuss. The first is related to a discussion earlier in this topic on multiple services using the same StatefulKnowledgeSession, and that is the use of fireUntilHalt. We want an ESB Service to be able to create the KnowledgeBase, StatefulKnowledgeSession, etc, and then execute fireUntilHalt. This will cause the thread to block, and the rules engine will continue to process (in a separate thread). Either the same ESB Service, or different services (this is the relationship to the discussion earlier in the topic) can then receive messages / events and insert them into the working memory. However the absence of incoming event may still cause rules to fire.
Second item is that the BusinessRulesProcessor should allow for configuration of a log file for audit logging. This audit log can then be read by the JBTools Drools Audit viewer. Which is very convenient for debugging.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4260174#4260174
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4260174
16 years, 5 months
[jBPM Development] - Problem inserting in JBPM_JOB
by Iecisa
Hi all,
we are developing a system, using jbpm. This developemt is under aix, oracle 10g and glassfish 2.1. Connection pool is configured in glassfish using oracleXADatasource because we are using several schemas in the same transaction.
We have developed workflows with tasks insert jobs in jbpm_job, however this insert using jbpm hibernate. if a task insert 2 jobs, the first one takes too much time (over 10 seconds) but the second one takes only 3 miliseconds. And the call method is the same for both, as you can see below:
public void AlarmCreate(ExecutionContext executionContext,Date date,String className,String actionName,String timerName){
Delegation delegation = new Delegation();
delegation.setClassName(className);
delegation.setProcessDefinition(executionContext.getProcessDefinition());
Action moveAction = new Action();
moveAction.setName(actionName);
moveAction.setActionDelegation(delegation);
executionContext.getProcessDefinition().addAction(moveAction);
Timer timer = new Timer(executionContext.getToken());
timer.setName(timerName+"_"+executionContext.getProcessInstance().getId());
timer.setDueDate(date);
timer.setGraphElement(executionContext.getEventSource());
timer.setTaskInstance(executionContext.getTaskInstance());
timer.setAction(moveAction);
timer.setLockOwner(executionContext.getProcessDefinition().getName());
DbSchedulerService schservice = new DbSchedulerService();
schservice.createTimer(timer);
}
any help would be really appreciated.
regards
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4260156#4260156
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4260156
16 years, 5 months
[JBoss ESB Development] - Database already closed - jbpm persistence error on shutdown
by h.wolffenbuttel
When I shut down the JBoss 4.2.3 GA ESB 4.6 I get an error which should have been repaired in JIRA: http://jira.jboss.com/jira/browse/JBESB-1712?page=all
| 10:03:13,167 WARN [AbstractBatcher] exception clearing maxRows/queryTimeout
| org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-68]
| at org.h2.message.Message.getSQLException(Message.java:91)
| at org.h2.message.Message.getSQLException(Message.java:95)
| at org.h2.message.Message.getSQLException(Message.java:73)
| at org.h2.message.Message.getSQLException(Message.java:116)
| at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1226)
| at org.h2.jdbc.JdbcStatement.checkClosed(JdbcStatement.java:826)
| at org.h2.jdbc.JdbcStatement.getMaxRows(JdbcStatement.java:342)
| at org.jboss.resource.adapter.jdbc.CachedPreparedStatement.getMaxRows(CachedPreparedStatement.java:367)
| at org.jboss.resource.adapter.jdbc.WrappedStatement.getMaxRows(WrappedStatement.java:378)
| at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:276)
| at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:212)
| at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1583)
| at org.hibernate.loader.Loader.doQuery(Loader.java:673)
| at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
| at org.hibernate.loader.Loader.doList(Loader.java:2220)
| at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
| at org.hibernate.loader.Loader.list(Loader.java:2099)
| at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
| at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
| at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
| at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
| at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
| at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)
| at org.jbpm.db.JobSession.getFirstAcquirableJob(JobSession.java:52)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:109)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| 10:03:13,172 WARN [JDBCExceptionReporter] SQL Error: 90121, SQLState: 90121
| 10:03:13,172 ERROR [JDBCExceptionReporter] Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-68]
| 10:03:13,178 ERROR [Services] problem closing service 'persistence'
| org.jbpm.persistence.JbpmPersistenceException: couldn't commit user transaction
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:96)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:63)
| at org.jbpm.svc.Services.close(Services.java:294)
| at org.jbpm.JbpmContext.close(JbpmContext.java:136)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:140)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:94)
| ... 5 more
| 10:03:13,178 ERROR [JobExecutorThread] exception in job executor thread. waiting 5000 milliseconds
| org.jbpm.persistence.JbpmPersistenceException: couldn't commit user transaction
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:96)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:63)
| at org.jbpm.svc.Services.close(Services.java:294)
| at org.jbpm.JbpmContext.close(JbpmContext.java:136)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:140)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:94)
| ... 5 more
| 10:03:18,182 WARN [JDBCExceptionReporter] SQL Error: 90121, SQLState: 90121
| 10:03:18,182 ERROR [JDBCExceptionReporter] Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-68]
| 10:03:18,186 ERROR [Services] problem closing service 'persistence'
| org.jbpm.persistence.JbpmPersistenceException: couldn't commit user transaction
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:96)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:63)
| at org.jbpm.svc.Services.close(Services.java:294)
| at org.jbpm.JbpmContext.close(JbpmContext.java:136)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:140)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:94)
| ... 5 more
| 10:03:18,186 ERROR [JobExecutorThread] exception in job executor thread. waiting 10000 milliseconds
| org.jbpm.persistence.JbpmPersistenceException: couldn't commit user transaction
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:96)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:63)
| at org.jbpm.svc.Services.close(Services.java:294)
| at org.jbpm.JbpmContext.close(JbpmContext.java:136)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:140)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:94)
| ... 5 more
| 10:03:28,190 WARN [JDBCExceptionReporter] SQL Error: 90121, SQLState: 90121
| 10:03:28,190 ERROR [JDBCExceptionReporter] Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-68]
| 10:03:28,193 ERROR [Services] problem closing service 'persistence'
| org.jbpm.persistence.JbpmPersistenceException: couldn't commit user transaction
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:96)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:63)
| at org.jbpm.svc.Services.close(Services.java:294)
| at org.jbpm.JbpmContext.close(JbpmContext.java:136)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:140)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:94)
| ... 5 more
| 10:03:28,193 ERROR [JobExecutorThread] exception in job executor thread. waiting 20000 milliseconds
| org.jbpm.persistence.JbpmPersistenceException: couldn't commit user transaction
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:96)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:63)
| at org.jbpm.svc.Services.close(Services.java:294)
| at org.jbpm.JbpmContext.close(JbpmContext.java:136)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:140)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:94)
| ... 5 more
| 10:03:48,196 WARN [JDBCExceptionReporter] SQL Error: 90121, SQLState: 90121
| 10:03:48,196 ERROR [JDBCExceptionReporter] Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-68]
| 10:03:48,199 ERROR [Services] problem closing service 'persistence'
| org.jbpm.persistence.JbpmPersistenceException: couldn't commit user transaction
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:96)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:63)
| at org.jbpm.svc.Services.close(Services.java:294)
| at org.jbpm.JbpmContext.close(JbpmContext.java:136)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:140)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:94)
| ... 5 more
| 10:03:48,199 ERROR [JobExecutorThread] exception in job executor thread. waiting 40000 milliseconds
| org.jbpm.persistence.JbpmPersistenceException: couldn't commit user transaction
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:96)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:63)
| at org.jbpm.svc.Services.close(Services.java:294)
| at org.jbpm.JbpmContext.close(JbpmContext.java:136)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:140)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
| Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state
| at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at org.jbpm.persistence.jta.JtaDbPersistenceService.endUserTransaction(JtaDbPersistenceService.java:94)
| ... 5 more
|
Regards,
Hans
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4260007#4260007
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4260007
16 years, 5 months