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:
- IBM Business Process Manager or WebSphere Enterprise Service Bus
- WebSphere Application
Server Network Deployment
- WebSphere Extended
Deployment
To deploy and configure WebSphere Adapter for FTP 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/v8r0mx/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 Network Deployment 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. This 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.
Restriction: During inbound communication WebSphere Adapter for FTP is
not able to switch polling between a IBM Business Process Manager or WebSphere Enterprise Service Bus cluster
backup node and the cluster's primary node when each node is installed
on a different operating system. For example, if the adapter starts
polling on a primary Windows node,
it cannot switch to a backup UNIX node
because it cannot process the Windows path
used for the directory storing in progress events.
High availability for inbound
processes
Inbound processes are based on
events triggered as a result of updates to data in the FTP server. WebSphere Adapter for FTP is
configured to detect updates by polling an event table. The adapter
then publishes the event to its endpoint.
Important: In a clustered environment,
the event directory must be on a shared file system and not local
to any of the cluster machines.
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.
Note: 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. For more information, see
Disabling end point applications of the passive adapter .
If the value for 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 FTP can
be made active in a HA cluster in the active configuration
mode. 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.
Note: In clustered
environments, when the adapter works in a HA 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
HA Active-Active configuration,
WebSphere Adapter for FTP 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.
Note: - You must configure all the event persistence properties, if the
adapter uses the HA Active-Active configuration.
- The com.ibm.j2ca.ftp.FTPFileInboundListener message
listener type and the com.ibm.j2ca.ftp.FTPFileActivationSpecWithHA activation
specification class is added for the HA Active-Active configuration.
- The local event directory must be present in a mapped drive that
can be accessed by all the adapter instances in the clustered environment.
- Sorting of event files being polled is
not supported.
- Supports only unordered delivery type
of events to the export.
- In the Windows operating systems, such as, Windows 7, Windows Vista, and Windows Server 2008, there are issues faced
in the mapped drive connection. Due to this issue, in a clustered
environment, where the nodes are running on different machines, the
files in the mapped local event directory might
not be processed completely or correctly. This may occur during both
inbound and outbound operations. For more information about working
with mapped drives, refer to articles on mapped drive connection to
network sharing, for your operating system.
Database support in
clustered environments
The adapter
currently supports only the following databases:
- IBM DB2®
- Oracle
- Microsoft SQL Server
- Apache Derby
Note: If a different database is used, you must manually create
the event persistence table and the file table. For more information
about the event table and the file table, see
Event store structure and
File store structure .
In addition, the databases must
support the following features to enable the adapter to run in the
Active-Active configuration:
- Batch Processing to allow efficient bulk database updates and
automated transaction processing
- Transaction to ensure data integrity
- FOR UPDATE clause in the SELECT statement
with queries that select a range of data that uses LIMIT, TOP,
or the database equivalent.
High availability for outbound processes
In
clustered environments, multiple adapter instances are available to
perform outbound process requests. Accordingly, if your environment
has multiple applications that interact with WebSphere Adapter for FTP 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, as long
as 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
Network Deployment 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 those 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.