This page walks you through the process of upgrading to WSO2 Enterprise Integrator (WSO2 EI) 6.5.0 from WSO2 Enterprise Service Bus (WSO2 ESB) 5.0.0.
Before you begin, note the following:
- If you are upgrading from a version older than ESB 5.0.0, you should first upgrade to ESB 5.0.0 and then upgrade to WSO2 EI 6.5.0.
- For information on what is new in this release and why you should upgrade, see About this Release.
For more information on ports, see Default ports of WSO2 Products. The default ports in WSO2 EI are listed under Enterprise Integrator.
The distribution folder structure has changed from ESB 5.0.0 to WSO2 EI 6.5.0:
See the following topics for instructions:
Preparing to upgrade
The following prerequisites must be completed before upgrading:
- Create a backup of the databases in your WSO2 ESB 5.0.0 instance.
- Copy the
<ESB_HOME>
directory to back up the product configurations. - Download the product installer from here, and install WSO2 EI 6.5.0.
Let's call the installation location of your product the <EI_HOME> directory.If you installed the product using the installer, this is located in a place specific to your OS as shown below:
OS Home directory Mac OS /Library/WSO2/EnterpriseIntegrator/6.5.0
Windows C:\Program Files\WSO2\EnterpriseIntegrator\6.5.0\
Ubuntu /usr/lib/wso2/EnterpriseIntegrator/6.5.0
CentOS /usr/lib64/EnterpriseIntegrator/6.5.0
The downtime is limited to the time taken for switching databases in the production environment.
Upgrading the databases
You can use the same databases that you used for WSO2 ESB 5.0.0 with WSO2 EI 6.5.0. However, you need to apply the changes discussed below. Once these changes are done, you can connect your WSO2 EI 6.5.0 instances to the old databases.
As per the Security Advisory (WSO2-2017-0345), WSO2 EI 6.5.0 uses OAEP for data encryption in addition to the RSA algorithm (which is used in WSO2 ESB 5.0.0). Therefore, the internally-encrypted data in your current databases (such as datasource configurations, syslog passwords, user store configurations, keystore registry entries, service security policies, event publisher configurations, event receiver configurations, and event sink configurations), as well as data encrypted using secure vault (such as plain text passwords in configuration files and synapse configurations) should be re-encrypted using OAEP.
To re-encrypt all internally-encrypted data using OAEP:
Get the latest WUM updates (later than the update level released on 18/04/2018) for your WSO2 ESB 5.0.0. This will give you a new WSO2 ESB 5.0.0 distribution with the latest updates.
Connect the WUM-updated ESB distribution to your existing databases (which are used for registry data, and user management data):
Be sure that the
carbon.properties
file is included in the<WUM_UPDATED_ESB_HOME>/repository/conf/
directory with the following parameter:org.wso2.CipherTransformation=RSA/ECB/OAEPwithSHA1andMGF1Padding
- Start the WUM-updated ESB server. This will re-encrypt the data in the databases.
- To re-encrypt plain text strings using OAEP:
Connect the ESB profile of WSO2 EI to your existing databases (which are used for registry data, and user management data):
- The keystores for WSO2 EI 6.5.0 need to be setup and configured in order to perform this data re-encryption.
- Migrate the keystores and truststores from WSO2 ESB 5.0.0 to WSO2 EI 6.5.0 by copying the files from the
<ESB_HOME>/repository/resources/security
directory to the same directory in WSO2 EI 6.5.0. Open the
carbon.xml
file (stored in the<EI_HOME>/conf/
directory), and update the details of the keystore used for data encryption.See Configuring Keystores in WSO2 Products for more information.
- Migrate the keystores and truststores from WSO2 ESB 5.0.0 to WSO2 EI 6.5.0 by copying the files from the
Create the
<EI_HOME>/migration/
directory, copy themigration-conf.properties
file, and update the following values:keystore.identity.location The location of the keystore that is used for data encryption in WSO2 EI 6.5.0. By default, this is <EI_HOME>/repository/resources/security/wso2carbon.jks
.keystore.identity.key.password The key password of the keystore. By default, this is wso2carbon. admin.user.name The user name of the system administrator. - Copy the migration JAR file to the
<EI_HOME>/dropins/
directory. Start the ESB profile of WSO2 EI:
Open a terminal and navigate to the
<EI_HOME>/bin/
directory.Execute the product start up script with the '-Dmigrate' command as shown below.
Open a terminal and execute the following command:
sh integrator.sh -Dmigrate
Open a terminal and execute the following command:
integrator.bat -Dmigrate
The relevant data is now re-encrypted.
- Once the migration is successful, stop the server and delete the migration JAR (
org.wso2.carbon.ei.migration-6.5.0.jar)
from the<EI_HOME>/dropins/
directory.
Migrating the ESB
Follow the instructions given below to upgrade from WSO2 ESB 5.0.0 to WSO2 EI 6.5.0.
Migrating ESB configurations
Do not copy configuration files directly between servers. Instead, update the files manually.
To migrate all the required folders, files, libraries, etc. from WSO2 ESB 5.0.0 to the ESB profile of WSO2 EI 6.5.0:
- Copy the database connector JAR files stored in the
<ESB_HOME>/repository/components/lib
directory to the<EI_HOME>/lib
directory. You need to migrate the keystores and truststores used in the WSO2 ESB 5.0.0 from the
<ESB_HOME>/repository/resources/security
directory to the same directory in WSO2 EI 6.5.0.Note that you have already completed this keystore migration before upgrading the ESB databases.
- If you have secondary user stores created for WSO2 ESB 5.0.0, you need to copy the 'userstore' folder in the
<ESB_HOME>/repository/deployment/server/
directory to the same directory in WSO2 EI 6.5.0. - If there are any third-party libraries used with WSO2 ESB 5.0.0 that you want to migrate, copy the relevant libraries to WSO2 EI 6.5.0:
- If you have used JMS libraries, JDBC libraries, etc., copy the files from the
<ESB_HOME>/repository/components/lib
directory to the<EI_HOME>/lib
directory. - If you have used OSGi bundles such as SVN kit etc., copy the contents of the
<ESB_HOME>/repository/components/dropins
directory to the<EI_HOME>/dropins
directory.
- If you have used JMS libraries, JDBC libraries, etc., copy the files from the
To migrate the configurations from WSO2 ESB 5.0.0 to the ESB profile of WSO2 EI 6.5.0:
Before you begin, note the following changes that affect your configuration files:
HTTP content negotiation is enabled in the ESB profile since WSO2 EI 6.0.0. This setting transforms the message (at the time of building the message) according to the content type specified using the 'Accept' header of the request message. You can disable this behavior by setting the following parameter to 'false' in the
axis2.xml
file (stored in the<EI_HOME>/conf/axis2/
directory). Read more about Working with Message Builders and Formatters.<parameter name="httpContentNegotiation">false</parameter>
- When an XML payload converts to JSON in WSO2 EI 6.5.0, null and empty values are handled as explained in Working with JSON Message Payloads.
The following configuration files have changed from WSO2 ESB 5.0.0 to WSO2 EI 6.5.0.
- Update the configuration files with information of the migrated keystores and truststores. See Configuring Keystores in WSO2 products for more information. Note that some keystore configurations were already updated before upgrading the ESB databases.
- Go to the
<EI_HOME>/conf/datasources
directory and update the Carbon datasource configuration in themaster-
datasources.
xml file. Note that some configurations in this file were already updated before upgrading the ESB databases. For instructions, see Changing the Carbon Database and select your database type. Go to the
<EI_HOME>/conf
directory and update the datasource references in theuser-mgt.xml
andregistry.xml
files to match the updated configurations in themaster-datasources.xml
file. Note that some configurations in these files were already updated before upgrading the ESB databases. The instructions are available in Changing the Carbon Database.Check for any other configurations that were done for WSO2 ESB 5.0.0 based on your solution, and update the configurations in WSO2 EI 6.5.0 accordingly. For example, check the configurations related to external user stores, caching, mounting, transports, etc.
Migrating ESB artifacts
You should manually deploy the Composite Application Archive (CAR) files that you have in WSO2 ESB 5.0.0 to WSO2 EI 6.5.0.
- To migrate deployment artifacts including message flow configurations, copy the required Synapse artifacts from the
<ESB_HOME>/repository/deployment/server/synapse-configs/default
directory to the same directory in WSO2 EI 6.5.0. - To migrate connector artifacts:
- Create a folder named
synapse-libs
in the<EI_HOME>/repository/deployment/server/synapse-configs/default/
directory, and copy the JARs from the directory by the same name in WSO2 ESB 5.0.0. Note that this directory will not exist in your WSO2 ESB 5.0.0 distribution if no connectors are used. - Copy the JARs from the
<ESB_HOME>/repository/deployment/server/synapse-configs/default/imports
directory to the same directory in WSO2 EI 6.5.0.
- Create a folder named
- If you have custom artifacts created in the
<ESB_HOME>/repository/deployment/server/
directory, copy them to the same directory in WSO2 EI 6.5.0.
Migrating tenant artifacts (ESB)
If multitenancy is used, copy the tenant artifacts of the ESB from the <ESB_HOME>/repository/tenants
directory to the same directory in WSO2 EI 6.5.0.
You may not be able to access the tenant domain after migrating to EI 6.5.0. To fix this issue, change the tenant’s main sequence located in <EI_HOME>/repository/tenants/1/synapse-configs/default/sequences/main.xml
as below:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="main"> <in> <log/> </in> <out> <send/> </out> </sequence>
Migrating the ESB Analytics
Follow the instructions given below to upgrade ESB Analytics to the Analytics profile of WSO2 EI 6.5.0. This migration is necessary only if Analytics was used with your ESB 5.0.0 installation.
Migrating Analytics configurations
Do not copy configuration files directly between servers. Instead, update the files manually.
To migrate all the required folders, files, libraries, etc.:
- Copy the database connector JAR files stored in the
<ESB_5.0.0_ANALYTICS_HOME>/repository/components/lib
directory to the<EI_HOME>/wso2/analytics/repository/components/lib
directory in WSO2 EI 6.5.0. - Copy the keystores and truststores from the
<ESB_5.0.0_ANALYTICS_HOME>/repository/resources/security
directory to the<EI_HOME>/wso2/analytics/repository/resources/security
directory in WSO2 EI 6.5.0. - If you have secondary user stores created for WSO2 ESB Analytics 5.0.0, you need to copy the 'userstore' folder in the
<ESB_5.0.0_ANALYTICS_HOME>/repository/deployment/server/
directory to the<EI_HOME>/wso2/analytics/repository/deployment/server/
directory in WSO2 EI 6.5.0.
To migrate the configurations:
- Update the configuration files with information of the migrated keystores and truststores. See Configuring Keystores in WSO2 products for more information.
- Go to the
<EI_HOME>/wso2/analytics/conf/datasources
directory and update the Carbon datasource configuration in themaster-
datasources.
xml file with the details of the Carbon database. For instructions, see Changing the Carbon Database and select your database type. - Go to the
<EI_HOME>/wso2/analytics/conf/datasources
directory and update the datasource configuration in theanalytics-
datasources.
xml file with the details of the Analytics-specific databases. - Go to the
<EI_HOME>/wso2/analytics/conf
directory and update the datasource references in theuser-mgt.xml
andregistry.xml
files to match the updated configurations in themaster-datasources.xml
file. The instructions are available in Changing the Carbon Database. - Go to the
<EI_HOME>/wso2/analytics/conf/analytics/
directory and update therdbms-config.xml
file according to the configurations in the same file of your previous Analytics installation. - Go to the <
EI_HOME>/wso2/analytics/conf/data-bridge
directory in WSO2 EI 6.5.0 and update the configuration files according to the configurations in the previous installation. Go to the
<EI_HOME>/wso2/analytics/conf
directory and update theevent-processor.xml
file according to the configurations in the previous installation.If you enable the HA mode for ESB Analytics by setting the
<mode name="HA" enable="true">
property in theevent-processor.xml
file, state persistence is enabled by default. If there is no real-time use case that requires any state information after starting the cluster, you should disable event persistence by setting thepersistence
attribute tofalse
in the same file as shown below.<persistence enable="false"> <persistenceIntervalInMinutes>15</persistenceIntervalInMinutes> <persisterSchedulerPoolSize>10</persisterSchedulerPoolSize> <persister class="org.wso2.carbon.event.processor.core.internal.persistence.FileSystemPersistenceStore"> <property key="persistenceLocation">cep_persistence</property> </persister> </persistence>
Enable WSO2 EI 6.5.0 to publish ESB statistics to the Analytics profile by following the instructions in Publishing ESB Analytics Data.
Note that in EI 6.5.0, you need to configure the
<EI_HOME>/conf/carbon.xml file
to enable the ESB server to publish statistics, whereas in WSO2 ESB, you need to configure the<ESB_HOME>/repository/deployment/server/eventpublishers/MessageFlowConfigurationPublisher.xml
and<ESB_HOME>/repository/deployment/server/eventpublishers/MessageFlowStatisticsPublisher.xml
file instead.- Check for any other configurations that were done for WSO2 ESB 5.0.0 Analytics based on your solution and update the configurations in WSO2 EI 6.5.0 accordingly. For example, check the configurations related to external user stores, caching, mounting, transports etc.
Migrating tenant artifacts (Analytics)
If you are using multitenancy, copy the <ESB_5.0.0_ANALYTICS_HOME>/repository/tenants
directory to the <EI_HOME>/wso2/analytics/repository/tenants
directory of WSO2 EI 6.5.0.