What is the correct way of deploying SOA Composites in Production environment?

The first time you deploy a SOA Composite to SOA Server, a default version label of 1.0 is automatically created. A version identifies a specific deployed instance of a SOA Composite. The version label is appended to the end of the JAR file name created when you deploy the SOA Composite.

If this label version is already deployed and the server mode is production, you are prompted to overwrite the existing version or enter a different version label. If you overwrite the version, the old process definition on the server is replaced by the new definition. You cannot revert to the old definition. In addition, any process instances that ran under the old definition are marked as stale. The stale instances cannot be examined, and all flow and audit information is lost.

If you enter a different version label for the new process definition (for example, 2.0), it is deployed to SOA Server, while the older, deployed process definition (1.0) also continues to run simultaneously on SOA Server. The instances that ran under the old definition are retained, and not marked as stale. You can still examine the flow and audit information for these instances. If the server mode is development, you are not prompted and the version is automatically overwritten.

In a development environment, it is recommended that you always deploy processes to the same version on SOA Server. This way, you avoid marking processes explicitly as the default. The steps to follow for development environment is as follows:

  • Design your process.
  • Deploy the process to SOA Server (version is 1.0). This becomes the default process for any new instances.
  • Redesign the process as needed.
  • Redeploy the process as version 1.0 (this is a newer version that overwrites the older version, but version 1.0 remains the default process).

In a production environment, it is recommended that you increment version numbers as you deploy newer versions. For example, if Composite version 1.0 is running in a production environment, then deploy the newer version of Composite to version 2.0. When you have adequately tested and verified your process, mark it as the default. New instances are started using this definition. All version 1.0 instances switch seamlessly to version 2.0. This enables you to decide when a process is ready for production mode. The steps to follow for production environment is as follows:

  • Design your process.
  • Deploy the process to SOA Server with a different version number (for example, use version 2.0 if the older default version is 1.0).
  • Test version 2.0 of the process.
  • Activate version 2.0 by marking it as the default process.

Note: Do not overwrite existing versions of a process with newer versions in a production environment. This marks all existing instances of the overwritten process as stale. Stale instances cannot be examined, and all flow and audit information is lost. Instead, create a separate version as described and mark the newer version as the default.

This entry was posted in BPEL, Service Oriented Architecture (SOA 11g) and tagged , , , . Bookmark the permalink.

3 Responses to What is the correct way of deploying SOA Composites in Production environment?

  1. Hari says:

    Hi Udaya,
    Your statement “All version 1.0 instances switch seamlessly to version 2.0.” is little bit confusing. Are you talking about all running instances of 1.0 switch to 2.0? I deployed version 2.0 of a composite but still see instances in 1.0 which are running and they do not move to 2.0
    Please explain?
    Hari

    • udayarocks says:

      Hi Hari,

      This means as you will make the Version 2.0 as the DEFAULT Version, the new instances will be created with 2.0.
      The existing version 1.0 instances will not be moved to 2.0. By this you will not loss the existing running production instances in version 1.0.

      Please let me know if you are not clear.

      Thanks,
      Udaya

      • Hari says:

        Hi Udaya,
        Thanks for the reply. Currently we are doing many changes for composites and releasing different versions and each version has got some instances running and the whole application behaves differently for each version. Is there any way to get the instances to sync with the latest version?
        Thanks
        Hari

Leave a comment