Camunda BPM on DB2 AS400


we try to work with DB2 AS/400, but there are some problems still.

SEVERE: Error while closing command context


	Error updating database.  Cause: [SQL0104] Token UPDATE was not valid. Valid tokens: EXCLUSIVE.SQL: SELECT * FROM ACT_GE_PROPERTY WHERE NAME_ = 'deployment.lock' for read only with rs use and keep update locksCause: [SQL0104] Token UPDATE was not valid. Valid tokens: EXCLUSIVE.

Is there posibility to make camunda BPM working on DB2 AS400?

Hi Marcus,

as written in the ticket you created (, you may submit pull requests to fix these queries with certain restrictions. Let us know if you have any questions on this. Perhaps there are also other users who work with Camunda and DB2 AS400 who can share their experience.


Hi Thorben.
Thanks for your fast answer. Hope that someone can share his experience with me.
I’m stuck on this point:-(

What you mean with pull requests?

Best regards

Is it possible to explain in german?

Hi Marcus,

Pull requests means code contributions to our open-source github project, see This requires that you have a good understanding how the engine and its querying works internally. We can assist you in case of questions but we cannot walk you through step by step. We prefer English for communication so that all users can follow the discussion.

Pull Requests bedeutet Code-Beiträge zu unserem Open-Source-Github-Projekt, siehe Dies erfordert ein gutes Verständnis der Engine und ihrer Queryausführung. Wir können bei Fragen behilflich sein, aber wir können keine Schritt-für-Schritt-Anweisungen geben. Wir bevorzugen Englisch für die Kommunikation, damit alle Benutzer der Diskussion folgen können.

Best regards,

Ok…I will try with the Pull requests.

Hi Thorben,

Marcus and I have already investigated, that camunda is using a DB2 instead of DB2400 dialect (which we have already forced in bpm-platform.xml db2)
Is there a possibility to change the hibernate dialect externally without changing the source code ?


Hi @sallbach,

Camunda does not use Hibernate but MyBatis. With MyBatis, object-relational mappings and SQL statements are written by hand, so just changing the database type name won’t solve the problem as there is no concept of dialects.

Using a custom database type name could be a clean way of extending Camunda with mappings for DB2400, though. I.e. setting a custom database type name, extending Camunda that it uses the default DB2 statements by default and then replacing certain statements with DB2400-specific variants.

Try to become familiar with query execution in Camunda and how Camunda selects the statement that are executed. Starting points could be unit tests. A central class will be DbSqlSessionFactory.


Hi thorben,

I’ve added a pull request, but it was rejected :

improve(engine): add IBM i aka AS/400 Support #261

Your colleague told me to think about a community extensions.


Hi Sebastian,

Thanks for making this effort. As the changes are bigger than I thought they would be (DLL scripts, dependencies, builds), I agree with my colleague’s assessment. If it was just a change in the mybatis mappings and if that change was compatible with the supported databases, then I would have voted for merging. A community extension sounds fine. Let us know if you have any questions on that.