When you make changes to the CICS® bundles for the components of an application, update the versions of the CICS bundles, the application bundle, and the application binding, and deploy the new versions on the platform.
When you update an application that is deployed on a platform, the application is unavailable to users from the time when you disable and discard the installed APPLCTN resource in the CICSplex for the previous version of the application, to the time when you install the new APPLDEF resource definition and enable the new version of the application. Plan a suitable time when this can safely occur, or plan an alternative solution for users of the application during that time.
To update an application, you need to edit the application project and the application binding project. If you do not have a versioned backup system that enables you to revert to a previous version of the projects, instead of editing the existing projects directly as described in these instructions, you might prefer to copy them to another project and then edit the new copies.
You manage changes to applications by using version control. Each CICS bundle, application bundle, and application binding has an ID and version information to uniquely identify it. The version uses major, minor, and micro identifiers, so you can indicate the significance of a change and manage the dependencies between bundles. This concept is called semantic versioning and is taken from the OSGi Alliance. Although it focuses on Java™ packages, you can use the same principles to apply to bundles in general.
Semantic versioning provides a way to increment the major, minor, or micro parts of a version to indicate the compatibility or incompatibility with previous versions of a bundle. For example, bug fixes might increment the micro part of the version, compatible changes increment the minor part of the version, and incompatible changes increment the major part of the version. For more information about semantic versioning, see Semantic Versioning Technical Whitepaper.
You must apply a versioning policy to your CICS bundles and management bundles to deploy and manage updates in the CICS environment. You cannot use an existing version of an application bundle to install new versions of the CICS bundles for the application, and you cannot use an existing version of an application binding with a new version of an application bundle. You must update the application bundle and application binding whenever you update the CICS bundles for the application.
When you change the version of a management bundle, according to the principles of semantic versioning, the new version should reflect the largest change in a CICS bundle that is included in the management bundle. For example, you might change one CICS bundle for an application from Version 1.0.1 to Version 1.0.2, which is a micro version change, and change another CICS bundle for the application from Version 1.2.0 to Version 1.3.0, which is a minor version change. The application bundle that includes these two CICS bundles should therefore have a minor version change, so if the application bundle was previously at Version 2.5.1, it should change to Version 2.6.0.