Activiti
  1. Activiti
  2. ACT-1170

'selectExclusiveJobsToExecute' does not work for DB2 and MSSQL

    Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.9
    • Fix Version/s: 5.10
    • Component/s: Engine
    • Labels:
      None
    • Number of attachments :
      1

      Description

      For DB2 and MSSQL, we had to change EXCLUSIVE_ = TRUE to EXCLUSIVE_ = 1 (it then becomes the similar statement as 'selectExclusiveJobsToExecute_oracle').

      Not working for DB2 and MSSQL:

      <select id="selectExclusiveJobsToExecute" parameterType="map" resultMap="jobResultMap">
          select * 
          from ACT_RU_JOB     
          where (RETRIES_ &gt; 0)
            and (DUEDATE_ is null or DUEDATE_ &lt; #{now, jdbcType=TIMESTAMP})
            and (LOCK_OWNER_ is null or LOCK_EXP_TIME_ &lt; #{now, jdbcType=TIMESTAMP})
            and (RETRIES_ &gt; 0)
            and (EXCLUSIVE_ = TRUE)
            and (PROCESS_INSTANCE_ID_ = #{pid})  
        </select>
      

      Working for DB2 and MSSQL:

      <select id="selectExclusiveJobsToExecute_custom" parameterType="map" resultMap="jobResultMap">
      	  select *
      	  from ACT_RU_JOB
      	  where (RETRIES_ &gt; 0)
      	  and (DUEDATE_ is null or DUEDATE_ &lt; #{now, jdbcType=TIMESTAMP})
      	  and (LOCK_OWNER_ is null or LOCK_EXP_TIME_ &lt; #{now, jdbcType=TIMESTAMP})
      	  and (RETRIES_ &gt; 0)
      	  and (EXCLUSIVE_ = 1)
      	  and (PROCESS_INSTANCE_ID_ = #{pid})
        </select>
      

        Issue Links

          Activity

          Hide
          Etienne Studer added a comment -

          2012-03-26 18:12:01,625 ERROR | Thread-821 - () | [AcquireJobsRunnable:86] exception during job acquisition:

              1. Error querying database. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82
              2. The error may involve org.activiti.engine.impl.persistence.entity.JobEntity.selectExclusiveJobsToExecute-Inline
              3. The error occurred while setting parameters
              4. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82
                org.apache.ibatis.exceptions.PersistenceException:
              5. Error querying database. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82
              6. The error may involve org.activiti.engine.impl.persistence.entity.JobEntity.selectExclusiveJobsToExecute-Inline
              7. The error occurred while setting parameters
              8. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82
                at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
                at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:81)
                at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:73)
                at org.activiti.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:182)
                at org.activiti.engine.impl.persistence.entity.JobManager.findExclusiveJobsToExecute(JobManager.java:123)
                at org.activiti.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:62)
                at org.activiti.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:33)
                at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
                at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
                at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
                at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
                at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
                at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
                at org.activiti.engine.impl.jobexecutor.AcquireJobsRunnable.run(AcquireJobsRunnable.java:57)
                at java.lang.Thread.run(Thread.java:619)
                Caused by: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82
                at com.ibm.db2.jcc.am.bd.a(bd.java:676)
                at com.ibm.db2.jcc.am.bd.a(bd.java:60)
                at com.ibm.db2.jcc.am.bd.a(bd.java:127)
                at com.ibm.db2.jcc.am.km.c(km.java:2506)
                at com.ibm.db2.jcc.am.km.d(km.java:2483)
                at com.ibm.db2.jcc.am.km.a(km.java:1963)
                at com.ibm.db2.jcc.t4.db.g(db.java:139)
                at com.ibm.db2.jcc.t4.db.a(db.java:39)
                at com.ibm.db2.jcc.t4.t.a(t.java:32)
                at com.ibm.db2.jcc.t4.sb.h(sb.java:135)
                at com.ibm.db2.jcc.am.km.eb(km.java:1934)
                at com.ibm.db2.jcc.am.lm.ic(lm.java:2798)
                at com.ibm.db2.jcc.am.lm.b(lm.java:3517)
                at com.ibm.db2.jcc.am.lm.Yb(lm.java:2130)
                at com.ibm.db2.jcc.am.lm.execute(lm.java:2114)
                at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
                at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
                at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:39)
                at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55)
                at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41)
                at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:243)
                at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:117)
                at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:72)
                at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:79)
                ... 13 more
                2012-03-26 18:12:01,671 ERROR | Thread-821 - () | [CommandContext:121] Error while closing command context
                org.apache.ibatis.exceptions.PersistenceException:
              9. Error querying database. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82
              10. The error may involve org.activiti.engine.impl.persistence.entity.JobEntity.selectExclusiveJobsToExecute-Inline
              11. The error occurred while setting parameters
              12. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82
                at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
                at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:81)
                at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:73)
                at org.activiti.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:182)
                at org.activiti.engine.impl.persistence.entity.JobManager.findExclusiveJobsToExecute(JobManager.java:123)
                at org.activiti.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:62)
                at org.activiti.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:33)
                at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
                at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
                at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
                at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
                at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40)
                at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
                at org.activiti.engine.impl.jobexecutor.AcquireJobsRunnable.run(AcquireJobsRunnable.java:57)
                at java.lang.Thread.run(Thread.java:619)
                Caused by: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82
                at com.ibm.db2.jcc.am.bd.a(bd.java:676)
                at com.ibm.db2.jcc.am.bd.a(bd.java:60)
                at com.ibm.db2.jcc.am.bd.a(bd.java:127)
                at com.ibm.db2.jcc.am.km.c(km.java:2506)
                at com.ibm.db2.jcc.am.km.d(km.java:2483)
                at com.ibm.db2.jcc.am.km.a(km.java:1963)
                at com.ibm.db2.jcc.t4.db.g(db.java:139)
                at com.ibm.db2.jcc.t4.db.a(db.java:39)
                at com.ibm.db2.jcc.t4.t.a(t.java:32)
                at com.ibm.db2.jcc.t4.sb.h(sb.java:135)
                at com.ibm.db2.jcc.am.km.eb(km.java:1934)
                at com.ibm.db2.jcc.am.lm.ic(lm.java:2798)
                at com.ibm.db2.jcc.am.lm.b(lm.java:3517)
                at com.ibm.db2.jcc.am.lm.Yb(lm.java:2130)
                at com.ibm.db2.jcc.am.lm.execute(lm.java:2114)
                at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
                at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
                at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:39)
                at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55)
                at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41)
                at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:243)
                at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:117)
                at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:72)
                at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:79)
                ... 13 more
          Show
          Etienne Studer added a comment - 2012-03-26 18:12:01,625 ERROR | Thread-821 - () | [AcquireJobsRunnable:86] exception during job acquisition: Error querying database. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82 The error may involve org.activiti.engine.impl.persistence.entity.JobEntity.selectExclusiveJobsToExecute-Inline The error occurred while setting parameters Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82 org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82 The error may involve org.activiti.engine.impl.persistence.entity.JobEntity.selectExclusiveJobsToExecute-Inline The error occurred while setting parameters Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82 at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:81) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:73) at org.activiti.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:182) at org.activiti.engine.impl.persistence.entity.JobManager.findExclusiveJobsToExecute(JobManager.java:123) at org.activiti.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:62) at org.activiti.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:33) at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24) at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42) at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40) at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) at org.activiti.engine.impl.jobexecutor.AcquireJobsRunnable.run(AcquireJobsRunnable.java:57) at java.lang.Thread.run(Thread.java:619) Caused by: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82 at com.ibm.db2.jcc.am.bd.a(bd.java:676) at com.ibm.db2.jcc.am.bd.a(bd.java:60) at com.ibm.db2.jcc.am.bd.a(bd.java:127) at com.ibm.db2.jcc.am.km.c(km.java:2506) at com.ibm.db2.jcc.am.km.d(km.java:2483) at com.ibm.db2.jcc.am.km.a(km.java:1963) at com.ibm.db2.jcc.t4.db.g(db.java:139) at com.ibm.db2.jcc.t4.db.a(db.java:39) at com.ibm.db2.jcc.t4.t.a(t.java:32) at com.ibm.db2.jcc.t4.sb.h(sb.java:135) at com.ibm.db2.jcc.am.km.eb(km.java:1934) at com.ibm.db2.jcc.am.lm.ic(lm.java:2798) at com.ibm.db2.jcc.am.lm.b(lm.java:3517) at com.ibm.db2.jcc.am.lm.Yb(lm.java:2130) at com.ibm.db2.jcc.am.lm.execute(lm.java:2114) at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:39) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:243) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:117) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:72) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:79) ... 13 more 2012-03-26 18:12:01,671 ERROR | Thread-821 - () | [CommandContext:121] Error while closing command context org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82 The error may involve org.activiti.engine.impl.persistence.entity.JobEntity.selectExclusiveJobsToExecute-Inline The error occurred while setting parameters Cause: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82 at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:81) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:73) at org.activiti.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:182) at org.activiti.engine.impl.persistence.entity.JobManager.findExclusiveJobsToExecute(JobManager.java:123) at org.activiti.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:62) at org.activiti.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:33) at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24) at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42) at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:40) at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) at org.activiti.engine.impl.jobexecutor.AcquireJobsRunnable.run(AcquireJobsRunnable.java:57) at java.lang.Thread.run(Thread.java:619) Caused by: com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-401, SQLSTATE=42818, SQLERRMC==, DRIVER=3.57.82 at com.ibm.db2.jcc.am.bd.a(bd.java:676) at com.ibm.db2.jcc.am.bd.a(bd.java:60) at com.ibm.db2.jcc.am.bd.a(bd.java:127) at com.ibm.db2.jcc.am.km.c(km.java:2506) at com.ibm.db2.jcc.am.km.d(km.java:2483) at com.ibm.db2.jcc.am.km.a(km.java:1963) at com.ibm.db2.jcc.t4.db.g(db.java:139) at com.ibm.db2.jcc.t4.db.a(db.java:39) at com.ibm.db2.jcc.t4.t.a(t.java:32) at com.ibm.db2.jcc.t4.sb.h(sb.java:135) at com.ibm.db2.jcc.am.km.eb(km.java:1934) at com.ibm.db2.jcc.am.lm.ic(lm.java:2798) at com.ibm.db2.jcc.am.lm.b(lm.java:3517) at com.ibm.db2.jcc.am.lm.Yb(lm.java:2130) at com.ibm.db2.jcc.am.lm.execute(lm.java:2114) at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:39) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:243) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:117) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:72) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:79) ... 13 more
          Hide
          Rene Gielen added a comment -

          Most databases with "native" boolean types will support string literals as well: 'true' or 'false' instead of TRUE / FALSE. This will e.g. work both for Postgres, H2 and MSSQL (DB2 not checked so far, but I doubt it would work ...).

          Changing point of view, it seems to be extremely rare for usual database systems to support true native boolean literals, while literal string representation seem to work for most databases with native bit / boolean type support.

          Therefore I'd suggest to change the default statement from

          and (EXCLUSIVE_ = TRUE)

          to

          and (EXCLUSIVE_ = 'true')

          And BTW, this bug is a show stopper on systems like MS-SQL, so a timely fix would be highly appreciated ...

          Show
          Rene Gielen added a comment - Most databases with "native" boolean types will support string literals as well: 'true' or 'false' instead of TRUE / FALSE. This will e.g. work both for Postgres, H2 and MSSQL (DB2 not checked so far, but I doubt it would work ...). Changing point of view, it seems to be extremely rare for usual database systems to support true native boolean literals, while literal string representation seem to work for most databases with native bit / boolean type support. Therefore I'd suggest to change the default statement from and (EXCLUSIVE_ = TRUE) to and (EXCLUSIVE_ = 'true') And BTW, this bug is a show stopper on systems like MS-SQL, so a timely fix would be highly appreciated ...
          Hide
          Rene Gielen added a comment -

          Most databases with "native" boolean types will support string literals as well: 'true' or 'false' instead of TRUE / FALSE. This will e.g. work both for Postgres, H2 and MSSQL (DB2 not checked so far, but I doubt it would work ...).

          Changing point of view, it seems to be extremely rare for usual database systems to support true native boolean literals, while literal string representation seem to work for most databases with native bit / boolean type support.

          Therefore I'd suggest to change the default statement from

          and (EXCLUSIVE_ = TRUE)

          to

          and (EXCLUSIVE_ = 'true')

          And BTW, this bug is a show stopper on systems like MS-SQL, so a timely fix would be highly appreciated ...

          Show
          Rene Gielen added a comment - Most databases with "native" boolean types will support string literals as well: 'true' or 'false' instead of TRUE / FALSE. This will e.g. work both for Postgres, H2 and MSSQL (DB2 not checked so far, but I doubt it would work ...). Changing point of view, it seems to be extremely rare for usual database systems to support true native boolean literals, while literal string representation seem to work for most databases with native bit / boolean type support. Therefore I'd suggest to change the default statement from and (EXCLUSIVE_ = TRUE) to and (EXCLUSIVE_ = 'true') And BTW, this bug is a show stopper on systems like MS-SQL, so a timely fix would be highly appreciated ...
          Hide
          Rene Gielen added a comment -

          The problem was introduced with ACT-989 fix.

          Show
          Rene Gielen added a comment - The problem was introduced with ACT-989 fix.
          Hide
          Rene Gielen added a comment -

          Proposed patch to fix issue

          Show
          Rene Gielen added a comment - Proposed patch to fix issue
          Rene Gielen made changes -
          Field Original Value New Value
          Attachment ACT-1170_trunk.patch [ 59528 ]
          Hide
          Al Robertson added a comment -

          FYI - as a work around, I've created a class extending DbSqlSessionFactory that statically adds a "mssql" override to use the existing oracle query -

          addDatabaseSpecificStatement("mssql", "selectExclusiveJobsToExecute", "selectExclusiveJobsToExecute_oracle");

          Configure the dbSqlSessionFactory property on the processEngineConfiguration to use the new class.
          It's working fine - but obviously will remove when native fix is issued.

          On a related issue, is there a plan for any bug fix releases, e.g. 5.9.1? It doesn't appear to be something the activiti team have done in the past - I assume this was due to the monthly release policy. Now release frequency has reduced a bug fix release would seem sensible. It seems wrong to wait until 5.10 for something like this. Probably should raise in forum rather than jira (apologies for that)!

          Show
          Al Robertson added a comment - FYI - as a work around, I've created a class extending DbSqlSessionFactory that statically adds a "mssql" override to use the existing oracle query - addDatabaseSpecificStatement("mssql", "selectExclusiveJobsToExecute", "selectExclusiveJobsToExecute_oracle"); Configure the dbSqlSessionFactory property on the processEngineConfiguration to use the new class. It's working fine - but obviously will remove when native fix is issued. On a related issue, is there a plan for any bug fix releases, e.g. 5.9.1? It doesn't appear to be something the activiti team have done in the past - I assume this was due to the monthly release policy. Now release frequency has reduced a bug fix release would seem sensible. It seems wrong to wait until 5.10 for something like this. Probably should raise in forum rather than jira (apologies for that)!
          Hide
          Etienne Studer added a comment -

          Yes, Al, we are doing the same thing: overriding DbSqlSessionFactory and hooking in the custom sql statements.

          I also agree that a bug fix release before 5.10 would be very sensible.

          Show
          Etienne Studer added a comment - Yes, Al, we are doing the same thing: overriding DbSqlSessionFactory and hooking in the custom sql statements. I also agree that a bug fix release before 5.10 would be very sensible.
          Daniel Meyer (camunda) made changes -
          Assignee Daniel Meyer [ meyerd ]
          Daniel Meyer (camunda) made changes -
          Link This issue is duplicated by ACT-1131 [ ACT-1131 ]
          Hide
          Daniel Meyer (camunda) added a comment -

          ACT-1131 seems to be the same issue.

          Show
          Daniel Meyer (camunda) added a comment - ACT-1131 seems to be the same issue.
          Hide
          Daniel Meyer (camunda) added a comment -

          Thanks for reporting this issue.

          A fix is commited here: http://fisheye.codehaus.org/changelog/activiti/?cs=3367

          Can you confirm that this solves the issue?

          Show
          Daniel Meyer (camunda) added a comment - Thanks for reporting this issue. A fix is commited here: http://fisheye.codehaus.org/changelog/activiti/?cs=3367 Can you confirm that this solves the issue?
          Hide
          Etienne Studer added a comment -

          Daniel, your patch does what we did locally to patch Activiti 5.9. So, it is looking good. But... I cannot try it out right now until I get back from my vacation.

          Show
          Etienne Studer added a comment - Daniel, your patch does what we did locally to patch Activiti 5.9. So, it is looking good. But... I cannot try it out right now until I get back from my vacation.
          Hide
          Rene Gielen added a comment -

          Can confirm that it runs in our environment as well.
          Any news on a fix release like 5.9.1? This is definitely a blocker for MSSQL users.

          Show
          Rene Gielen added a comment - Can confirm that it runs in our environment as well. Any news on a fix release like 5.9.1? This is definitely a blocker for MSSQL users.
          Hide
          Michallis Pashidis added a comment - - edited

          Does somebody know how to fix this temporary?
          We use the activiti engine in a project, importing it in our pom.

          Should i check the activiti engine out, make the changes proposed in this issue and rebuild with an intermediate version?

          Any help should be great, i had discovered already the problem in ACT_RU_JOB EXCLUSIVE_ but don't know the impact of that.

          How should i use the patch? Should i just modify the job.xml?

          my sincere thanks,

          Michallis

          Show
          Michallis Pashidis added a comment - - edited Does somebody know how to fix this temporary? We use the activiti engine in a project, importing it in our pom. Should i check the activiti engine out, make the changes proposed in this issue and rebuild with an intermediate version? Any help should be great, i had discovered already the problem in ACT_RU_JOB EXCLUSIVE_ but don't know the impact of that. How should i use the patch? Should i just modify the job.xml? my sincere thanks, Michallis
          Hide
          Etienne Studer added a comment -

          Some of the comments above explain what Activiti methods to override to make this work without having to build a custom Activiti.

          Show
          Etienne Studer added a comment - Some of the comments above explain what Activiti methods to override to make this work without having to build a custom Activiti.
          Hide
          Daniel Meyer (camunda) added a comment -

          Fixed on trunk. Thanks Etienne for the patch.

          Show
          Daniel Meyer (camunda) added a comment - Fixed on trunk. Thanks Etienne for the patch.
          Daniel Meyer (camunda) made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Daniel Meyer (camunda) made changes -
          Fix Version/s 5.10 [ 18341 ]
          Component/s Engine [ 14460 ]
          Hide
          Michallis Pashidis added a comment -

          Thank you Etienne and Daniel!

          Show
          Michallis Pashidis added a comment - Thank you Etienne and Daniel!

            People

            • Assignee:
              Daniel Meyer (camunda)
              Reporter:
              Etienne Studer
            • Votes:
              5 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: