Sharing libraries at runtime

Thanks to my colleague Dave Screen for highlighting a useful technote relating to sharing library modules in WebSphere ESB and Process Server. The WebSphere Integration Developer concept of a library is typically only used for development time sharing of artifacts i.e. when you deploy a module that depends on that library, a copy of the JAR file is included in the enterprise application that is deployed. The technote describes how to deploy the library as a WebSphere shared library and have multiple modules depend on the same instance at runtime. This has the potential to reduce memory usage (the library is on a shared classloader) and ease managability. It does, however, mean that you need to be more careful about versioning of the library and breaking other dependent modules. If you’re not on 6.2 then note the list of APARs at the bottom of the document.

2 Responses to “Sharing libraries at runtime”

  1. Armin says:

    I read the technote, but the problem is for every deployment, the shared library should be set for the module. is it possible to change this in WID? I do not want to change the application.xml, since it is regeenrated each time building the module. I’d like to be able to do it inside the mediation module deployment descriptor.

  2. Mahesh says:

    Hi David,

    The approach to use shared libraries in business processes seems to reduce the memory footprint of process modules considerably. This makes the process deployment and running extremely nimble in work environments.

    However, we need to stop and restart the dmgr–cluster–node in actual process server set-up, in order to successfully deploy a module using shared libraries. This is a time-consuming activity (upto an hour is spent in stop-restart using RAFW deploy job steps). Have you come across solution to this problem? I am curious to know.