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.
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.
- Copy the data from the old database to the staging database you created. This becomes the new database for your new version of Carbon.
Download Carbon 4.4.0 and connect it to your staging database.
Update the configuration files in Carbon 4.4.0 according to the requirements.
Note these configurations that were introduced in Carbon 4.3.0:
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. | 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. The following port configurations have been removed:
<!-- Embedded Qpid broker ports →
<EmbeddedQpid>
<!-- Broker TCP Port →
<BrokerPort>5672</BrokerPort>
<!-- SSL Port →
<BrokerSSLPort>8672</BrokerSSLPort>
</EmbeddedQpid>
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.4.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> . |
- Copy the following directories from the old database to the staging database.
- To migrate the super tenant settings, copy the
<PRODUCT_HOME>/repository/
deployment/server
directory. - If multitenancy is used, copy the
<PRODUCT_HOME>/repository/tenants
directory.
- 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.