Using ExecutorType.Batch as buil inserts not supported by DB


our db does not support bulk insert statements, so we disabled this feature in the ProcessEngineConfiguration. As alternative we tried to use ExecutorType.Batch offered by MyBatis.

So we customized the DBSqlSession to always use the ExecturotType.Batch. Is there a risk of performance overhead where scenarios ar not dlealing with multi inserts/updates?
Does it makes sense to introduce two MyBatis SqlSessions in flowables DBSQLSession: one with ExecutorType.SIMPLE and one with ExecutorType.BATCH, depending on the number of rows to be inserted/updated?
We tried it out and we have issues we foreing key releations. it is not visible for the other until the transaction is comitted. Any proposal how to avoid that?



I’m not sure what the implications of using BATCH are, but the DBSqlSession is written in such a way that Flowable has all control of what goes over the wire to the database. So changing that could have unforeseen consequences that are hard to debug.

That indicates it’s probably not a good idea. The only way to solve that would be committing intermediary - but that would break existing Flowable logic - which has been written with ‘flush-at-end’ in mind.

Hi Joram,

the implication is to improve the performance, as as I wrote, the db does not support bulk inserts and we have low performance with just simply disabling the bulk insert in the process engine configuration. That works without erros.

So thanks for response.