Deploying DB2 Scripts on z/OS

Hello, I’m new to liquibase and I have little experience on z/OS system features( My experience is mainly as develepor on z/OS working in Cobol, DB2, JCL, etc) Recently I was integrated in a CD/CI team where we are trying to automate delivery of DB2 scripts ( DDL’s ) on z/OS using Liquibase. My understanding is that is necessary to install Liquibase on z/OS USS and some how connect to z/OS DB2. In my company we are using IBM’s Rational Team Concert to manage source deliverys and we also have to code something here to delivery the DDL’s and pass them to Liquibase. If anyone as worked with this type of solution please could give some guidelines on how to install Liquibase ( open source version ) on z/OS USS and what is necessary to connect do DB2 on z/OS and execute the DB2 Scripts ? Thanks

Here is the documentation on installing and configuring DB2 on z/OS and on deploying SQL scripts for DB2 on z/OS.

Please share feedback (feedback button or pull request) on the above documentation pages if you find anything else we need to add to the documentation. Thanks!

Thank you Kevin for your help.
Last week we manage to install Liquibase v4.13 in zOS USS and started testing.

So far we’ve only had success running a script for the first time. Liquibase created the DATABASECHANGELOG and DATABASECHANGELOGLOCK tables and insert the record of the script execution in the first one. When we try to run it a second time we get a generic error that doesn’t give us many clues…

[2023-12-07 09:17:19] SEVERE [liquibase.integration] java.lang.NullPointerException
liquibase.exception.CommandExecutionException: liquibase.exception.LiquibaseException: Unexpected error running Liquibase: Unknown reason

Anyway, I would like to leave another question. Is it possible for liquibase to create the DATABASECHANGELOG and DATABASECHANGELOGLOCK tables in an existing database in the zOS DB ? Our DB2 installation on zOS is configured with a database for each application. Each application has its own database where they reside all tables. Each table has its own tablespace. We have two db2 schemas, one for development and one for quality and production that is applied to any table.

So I should configure liquibase to create the DATABASECHANGELOG and DATABASECHANGELOGLOCK tables in each database for each application, but I didn’t find any option in the documentation that would do this.

Thanks