cancel
Showing results for 
Search instead for 
Did you mean: 

Activiti Engine Sybase database support

ssandeep
Champ in-the-making
Champ in-the-making
Hi,

We are evaluating Activiti Engine (version 5.20) to be used in our project for BPM processes. We see that there is no support for Sybase database, which is essential for us.
Is there any plans to support Sybase database as well or any suggestions that we can customize the source code to support it.

Thanks,
Sandeep
3 REPLIES 3

jbarrez
Star Contributor
Star Contributor
No, we don't have support for Sybase (we dont hear that demand a lot to be honest).

Generally, you would need to add sql specific to sybase to the DbSqlSessionFactory, most of the mybatis should work for it.

ssandeep
Champ in-the-making
Champ in-the-making
Hi,

With some help from the forums on the same question for Sybase support, we are trying our hands on the implementation. As suggested, we have modified DbSqlSessionFactory to add Sybase specific mappings.
But now we have stuck at the below point,
databaseSpecificLimitBeforeStatements.put("sybase", "SELECT SUB.* FROM (");
databaseSpecificLimitAfterStatements.put("sybase", ")RES ) SUB WHERE SUB.rnk >= #{firstRow} AND SUB.rnk < #{lastRow}");
databaseSpecificLimitBetweenStatements.put("sybase", ", row_number() over (ORDER BY ${orderByColumns}) rnk FROM ( select distinct RES.* ");
  databaseOuterJoinLimitBetweenStatements.put("sybase", ", row_number() over (ORDER BY ${mssqlOrDB2OrderBy}) rnk FROM ( select distinct ");
databaseSpecificOrderByStatements.put("sybase", "");
databaseSpecificLimitBeforeNativeQueryStatements.put("sybase", "SELECT SUB.* FROM ( select RES.* , row_number() over (ORDER BY ${orderByColumns}) rnk FROM (");


The above won't work for Sybase, since it doesn't support row_number unlike Sybase IQ/SQL Anywhere etc.
How do we go about fixing this or can we simply ignore these mappings for Sybase. If yes, whats the performance impact, as it seems to limit the number of rows?

Any suggestions or help appreciated!

Thanks.

ssandeep
Champ in-the-making
Champ in-the-making
We got passed the limit hurdle by putting empty string values, but now we are facing issues with bulkInsertProcessDefinition.
As Sybase doesn't support bulkinsert in a way its defined in ProcessDefinition mapping, is there a way to ignore this mapping?
Or do we need to define our own mapping?