Updating OSGi services for eXtreme Scale plug-ins with xscmd
WebSphere® eXtreme Scale supports upgrading container server plug-in bundles while the grid is active. This support allows administrators to complete application updates and additions without needing to restart grid processes.
Before you begin
- Start eXtreme Scale servers in a supported OSGi framework.
- Separate all eXtreme Scale plug-ins into bundles, and they must use service rankings to identify each version of the plug-ins.
- Specify cache objects as either Java™ primitive types such
as
byte[]
, Integer or String, or they must be stored using a MapSerializerPlugin plug-in The data objects are stored in the eXtreme Scale bundle and are not upgraded. Only the plug-ins that interact with the data are updated. - Design cache object data to be version compatible. New plug-ins must be able to interact with data created by older plug-ins.
- Design plug-ins to listen for ObjectGridLifecycle and BackingMapLifecycle events to refresh any references to other plug-ins or the metadata that the plug-ins might have so that they can be refreshed when it is updated.
- The eXtreme Scale OSGi update process only affects servers. You must independently update any clients that are using plug-ins.
About this task
Without OSGi enablement, if an administrator needs to update the application plug-ins or cache objects, each grid node must be upgraded one-by-one, causing stress on the network, memory and cpu utilization. This is required since plug-ins and cache Java objects are directly stored in the grid. When classes are updated without restarting the processes, the grid plug-ins have conflicts because each class has a different ClassLoader.
The eXtreme Scale product includes the xscmd utility and MBeans that allows administrators to view all the plug-in bundles installed in each grid container's hosting OSGi framework and choose which revision to use. When the xscmd is used to update the plug-ins to a new ranking, the grid is quiesced and all transactions are drained, the plug-ins are updated, and the grid is activated again. If an error occurs during the update process, the process is rolled-back and the old ranking is restored.