IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Services and service-related functions > Access external services with adapters > Configure and using adapters > IBM WebSphere Adapters > JDBC > Plan for adapter implementation

WebSphere Adapters in clustered environments

You can improve adapter performance and availability by deploying a module on a clustered server environment. Clusters are groups of servers that are managed together to balance workloads and to provide high availability and scalability.

The module you deployed is replicated across all servers in a cluster, regardless of whether you deploy the module using a stand-alone or an embedded adapter. The following IBM products support WebSphere Adapters in a clustered environment:

To deploy and configure WebSphere Adapter for JDBC in a clustered environment, see: Deploying the module in a clustered environment. When you set up a server cluster, you create a Deployment Manager profile. The HAManager, a subcomponent of the Deployment Manager, notifies the Java™ Platform, Enterprise Edition (JEE) Connector Architecture (JCA) container to activate an adapter instance. For information about creating clustered environments, see the following link: http://publib.boulder.ibm.com/infocenter/dmndhelp/v7r5mx/index.jsp?topic=/com.ibm.wbpm.imuc.z.doc/topics/tins_zos_create_cluster.html.

Using WebSphere Extended Deployment, you can optionally enhance the performance of adapter instances in your clustered environment. WebSphere Extended Deployment extends the WebSphere Application Server ND capabilities by using a dynamic Workload Manager instance instead of a static Workload Manager. The dynamic Workload Manager instance can optimize the performance of adapter instances in the cluster by dynamically balancing the load of the requests. It means that application server instances can be automatically stopped and started based on the load variations, allowing systems with different capacities and configurations to handle load variations evenly. For information about the benefits of WebSphere Extended Deployment, see http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1m1/index.jsp.

In clustered environments, adapter instances can handle both inbound and outbound processes.


High availability for inbound processes

Inbound processes are based on events triggered as a result of updates to data in the database. WebSphere Adapter for JDBC is configured to detect updates by polling an event table. The adapter then publishes the event to its endpoint.

When you deploy a module to a cluster, the Java Platform, Enterprise Edition (JEE) Connector Architecture (JCA) container checks the enableHASupport resource adapter property. If the value for the enableHASupport property is true, which is the default setting, all of the adapter instances are registered with the HAManager with a policy 1 of N. This policy means that only one of the adapter instances starts polling for events. Although other adapter instances in the cluster are started, they remain dormant with respect to the active event until the active adapter instance finishes processing the event. If the server on which the polling thread was started shuts down for some reason, an adapter instance that is running on one of the backup servers is activated.

In the active-passive configuration mode of the adapters, the endpoint application of the passive adapter instance also listens to the events/messages even if the enableHASupport property is set to True. This is because the alwaysactivateAllMDBs property in the JMS activation specification is set to True. To stop the endpoint application of the passive adapter instance from listening to the events, you must set the alwaysactivateAllMDBs property value to False. See Endpoint application of the passive adapter instance listens to the events when enableHASupport is set to True.

For more information about using WebSphere Adapter in WebSphere High Availability in WebSphere High Availability Environment.

When High Availability Active-Active is enabled, that is, the value of the enableHASupport property is set to false, all adapter instances poll for events in the inbound cluster and the adapter works in an Active-Active configuration. Multiple instances of WebSphere Adapter for JDBC can be made active in a High Availability cluster in the active configuration mode. Different adapter instances process different events, in parallel.When more than one adapter instance actively polls in a cluster setup, it serves as a load balancer. If one of the adapter instances in the cluster fails, the other active instances in the cluster handle the events.

When High Availability Active-Active is enabled, the JDBC adapter depends on the new table structure to handle events. If the event table structure is incorrect, the adapter throws an exception during start. As the adapter supports High Availability Active-Active for inbound processing only, the inbound configured adapter throws an exception during run time. For more information about modifying or creating a table structure, see Create the event store.

In clustered environments, when the adapter works in a High Availability Active-Active configuration, it provides both high availability and load balancing support. This functionality is useful in production environments where high performance is needed.

In the High Availability Active-Active configuration, WebSphere Adapter for JDBC ensures that an event is not processed by more than one adapter instance. This results in each adapter instance polling for a unique event, and delivering the event without any duplication to the endpoint. However, event sequencing is not ensured when High Availability Active-Active is enabled. If an adapter instance fails, the fetched events is cleaned within the specified time period and all unprocessed events is processed as new events.


Database support in a High Availability Active-Active configuration

The adapter currently supports the following databases when running in a High Availability Active-Active configuration:


High availability for outbound processes

In clustered environments, multiple adapter instances are available to perform outbound process requests. So, if your environment has multiple applications that interact with WebSphere Adapter for JDBC for outbound requests, then you might improve performance by deploying the module to a clustered environment. In a clustered environment, multiple outbound requests can be processed simultaneously, so that they are not attempting to process the same record.

If multiple outbound requests are attempting to process the same record, such as a Customer address, the workload management capability in WebSphere Application Server ND distributes the requests among the available adapter instances in the sequence they were received. As a result, these types of outbound requests in a clustered environment are processed in the same manner as in a single server environment: one adapter instance processes only one outbound request at a time. For more information about workload management, see the following link: http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/trun_wlm.html.

Plan for adapter implementation


Related tasks:

Setting deployment properties and generating the service


Related reference:

Resource adapter properties

Activation specification properties