Unknown macro: {next_previous_links}
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

This page takes you through the general steps for upgrading product versions based on Carbon 4.3.0 to Carbon 4.4.0.

Preparing to Upgrade

The following are the specific prerequisites you must complete before an upgrade:

  • Before you upgrade to the latest version of a product, you create a staging database, which is essentially an empty database. Note that you should NOT connect a new product version to an older database that has not been upgraded. 

  • Make a backup of the database and the <PRODUCT_HOME> directory prior to upgrading. The <PRODUCT_HOME> directory can simply be copied to the new directory.

  • Stop all the Carbon servers connected to the database before running the migration scripts.

    Note that the upgrade should be done during a period when there is low traffic on the system.

Limitations

  • This upgrade can only be done if the database type is the same. For example, if you are using MySQL currently and you need to migrate to Oracle in the new version, these scripts will not work.
  • You cannot roll back an upgrade. It is impossible to restore a backup of the previous server and retry the upgrade process.

Downtime

The downtime is limited to the time taken for switching databases when the staging database is promoted to the actual production status.

Upgrading the configurations

There are no database changes between Carbon 4.3.0 to Carbon 4.4.0. Therefore, only the new configuration options in Carbon 4.4.0 should be updated for the new environment as explained below.

  1. Copy the data from the old database to the staging database you created. This becomes the new database for your new version of Carbon.
  2. Download Carbon 4.4.0 and connect it to your staging database. 

  3. Update the configuration files in Carbon 4.4.0 according to the requirements.

    Given below is a list of configurations that were new from Carbon 4.3.0 onwards. Therefore, if you are in the process of upgrading to Carbon 4.4.0 from Carbon 4.2.0, be mindful of these configuration changes:

    Configuration File 
    axis2.xml file stored in the <PRODUCT_HOME>/repository/conf/axis2/ directory.The following new parameter is added: <parameter name="httpContentNegotiation">true</parameter>. When this is set to 'true' , the server will determine the contentType of responses to requests, by using the 'Accept header' of the request.
    tenant-axis2.xml stored in the <PRODUCT_HOME>/repository/conf/tomcat/ directory.The default value for the "httpContentNegotiation" parameter is set to 'true': <parameter name="httpContentNegotiation">true</parameter>.
    catalina-server.xml file stored in the <PRODUCT_HOME>/repository/conf/tomcat/ directory.

    Keystore parameters are added under the <Connector> element as shown below. This setting allows you to use separate keystore and security certificates to certify SSL connections. Note that the location and password of the default "wso2carbon.jks" keystore is given for these parameters by default.

    keystoreFile=location of the keystore file
    keystorePass=password for the keystore 
    master-datasources.xml file stored in the <PRODUCT_HOME>/repository/conf/datasources/ directory.Default auto-commit setting for a data source is set to false: <defaultAutoCommit>false</defaultAutoCommit>.
    carbon.xml file stored in the <PRODUCT_HOME>/repository/conf/ directory. 
    1. New parameters to define proxy context path as shown below;

      <MgtProxyContextPath></MgtProxyContextPath>
      <ProxyContextPath></ProxyContextPath>

      Proxy context path is a useful parameter to add a proxy path when a Carbon server is fronted by reverse proxy. In addition to the proxy host and proxy port this parameter allows you add a path component to external URLs. See Adding a Custom Proxy Path for details.

    2. The following port configurations have been removed:

      <!-- Embedded Qpid broker ports →
      <EmbeddedQpid>
      <!-- Broker TCP Port →
      <BrokerPort>5672</BrokerPort>
      <!-- SSL Port →
      <BrokerSSLPort>8672</BrokerSSLPort>
      </EmbeddedQpid>
    3. In Carbon 4.2.0, the following registry keystore configuration was required for configuring the keystore keys that certify encrypting/decrypting meta data to the registry. From Carbon 4.3.0 onwards the primary keystore configuration shown below will be used for this purpose as well. Therefore, it is not necessary to use a separate registry keystore configuration for encrypting/decrypting meta data to the registry. Read more about keystore configurations in Carbon 4.3.0.

      <RegistryKeyStore>
                  <!-- Keystore file location-->
                  <Location>${carbon.home}/repository/resources/security/wso2carbon.jks</Location>
                  <!-- Keystore type (JKS/PKCS12 etc.)-->
                  <Type>JKS</Type>
                  <!-- Keystore password-->
                  <Password>wso2carbon</Password>
                  <!-- Private Key alias-->
                  <KeyAlias>wso2carbon</KeyAlias>
                  <!-- Private Key password-->
                  <KeyPassword>wso2carbon</KeyPassword>
      </RegistryKeyStore>
    registry.xml file stored in the <PRODUCT_HOME>/repository/conf/ directory.The default value changed to 'false' for the following setting: <versionResourcesOnChange>false</versionResourcesOnChange>.
  4. Copy the following directories from the old database to the staging database.
    1. To migrate the super tenant settings, copy the <PRODUCT_HOME>/repository/deployment/server directory.
    2. If multitenancy is used, copy the <PRODUCT_HOME>/repository/tenants directory.

    Note that configurations should not be copied directly between servers. 

  5. Start the server.

Going into production

The following are recommended tests to run on the staging system. 

  • Create multiple user stores and try adding users to different user stores.

  • Create multiple tenants and add different user stores to the different tenants. Thereafter, add users to the various user stores. 

Once the above tests are run successfully, it is safe to consider that the upgrade is ready for production. However, it is advised to test any features that are being used in production.

  • No labels