This document informs you in detail how to migrate the data and projects of an existing Xpert.ivy Server 4.3 installation to a new 5.0 installation.

Xpert.ivy Server 5.0 is able to work with projects that are developed with Xpert.ivy Designer 4.2 (Project version 41917) and newer. However, because of the stricter generic java.util.List support we suggest that you check your deployed projects in the Designer before migrating a server to 5.0 to ensure that the projects will run without problems.

Older projects need to be converted in the Xpert.ivy Designer first and then need to be redeployed to the upgraded server.

Updated JGroups version for Clustering

Since 5.0.4 the ivy server contains an updated library for cluster communication. This library called JGroups, has been updated to the latest stable version 3.3.4. Therefore the configuration under configurations/jgroups.xml is no longer compatible with older cluster configurations which have been created before 5.0.3. So please do not copy this configuration file from an older version.

New Server licence required

The Xpert.ivy Server 5.0 requires a new licence. Please contact your sales agent to upgrade your license.

Consult the article "Installing a Licence" in the Installation chapter of the Server Guide to learn how to install the new license.

Configuration in web.xml

If you have modified the web.xml under webapps/ivy/WEB-INF, please do not copy the whole content of your current web.xml to the new Server. Only copy parts you have modified, otherwise the Server will not start.

Generic java.util.List

The support for generic instances of java.util.List has been enhanced. IvyScript now evaluates the member type of a java.util.List<?> implementation (see NewAndNoteworthyDesigner).

Java instances of java.util.List which had generic type information lost their membertype when they were used with IvyScript before 5.0 and were treated as instances of List<Object>. Therefore IvyScript allowed to add objects to a list, which did not have the required member type.

For example, the parked work tasks of a session have the type List<ITask> . Using the session API, the following assignment was possible: ivy.session.findParkedWorkTasks(0,1).add("iAmNotATask");

With Xpert.ivy 5.0 this bug has been fixed and untyped assignments of this kind are no longer tolerated. If your code contains assignments as shown above, Validation will now show an error marker for it at design time and exceptions will be thrown at runtime.

If you have used java.util.List instances in IvyScript you should check your project for error markers before you execute it on a Xpert.ivy 5.0 server.

BIGINT (64 Bits) Database Keys

All primary and foreign keys in the system database have been changed from 32 bit to 64 bit numbers. Therefore, the system database will need a bit more storage space after converting it to the latest version. The conversion of the system database may need several minutes up to hours depending on the amount of data.

Therefore, all API's which uses Integer (32 bit) identifers are deprecated. For more details see the Designer Migration Notes. Everytime a deprecated API is called a warning will be logged. To suppress this warning you can enable the following configuration in the configuration/log4jconfig.xml file by removing the comment tags around it:

<category name="ch.ivyteam.ivy.persistence.restricted.TableKeyCompatibilityConvertor"
    class="ch.ivyteam.log.Logger">
  <priority value="ERROR"/>
</category>

For system databases that are stored in IBM Db2 System i (AS400, iSeries) a special setting is necessary before converting the system database. See system database conversion document for more information.

Active Directory Synchronisation Filter

The advanced configuration of the Active Directory has been enhanced.

When a administrator changes the 'User Filter' to a more restrictive one, then users who are no longer part of the user filter should be deleted. This was not the case and is fixed now. Therefore:

AD User Filter
To view the advanced configuration, press 'show advanced settings' on the bottom of the panel.