ESB Migration from 5.6.x to 6.0.x: bundle refresh issues

Overview

This article explains you how to avoid bundle refresh issues after migrating from 5.6.x to 6.0.x.

Environment

This procedure only applies when migrating from 5.6.x to 6.0.x. For all other versions of Talend Runtime, please refer to the Installation and Upgrade Guide.

Symptoms/Description

After migrating from 5.6.x to 6.0.x, in some cases, when you are installing features, your Talend Runtime container, based on Karaf 4.0.x, may seem to refresh dozens of bundles, or may install or uninstall unexpected bundles.

If the container seems to refresh a lot more bundles than expected, this is because the refreshes can easily cascade.

As an example, a bundle that embeds an API package and also has an optional dependency to another package. If this optional dependency is fulfilled by a newly installed feature then the bundle is rewired and will cause all bundles that are wired to the API package to also be refreshed.

Diagnosis

The Feature Service can be turned to verbose mode (-v) to show more details of what it does. The output will show which bundles are installed, uninstalled, refreshed, stopped and started.

For example:

feature:install -v activemq

In the above logged messages you will find lines like this:

org.ops4j.pax.web.pax-web-jsp/4.2.0 (Wired to org.ops4j.pax.web.pax-web-spi/4.2.0 which is being refreshed)

This means that pax-web-jsp is being refreshed because pax-web-spi is refreshed. So all lines containing "which is" are not the root cause. So it helps to use:

feature:install -t -v activemq | grep -v "which is"

The option -t (similate) makes sure you are only looking what would be changed but do not install anything. The grep part filters out all non root causes.

Resolution

There are some ways to avoid such cascading refreshes:

  • Avoid embedding API packages into bundles with optional dependencies. Ideally deploy separate bundles for the API
  • Do many feature installations in one step. Instead of feature:install cxf; feature:install activemq, do feature:install cxf activemq. The more information the Feature Service has the better it can choose the right bundles.
Version History
Revision #:
3 of 3
Last update:
‎05-01-2017 09:02 PM
Updated by:
 
Labels (1)
Contributors