Index Changes

Configuring GlassFish ESB for Clustering


Contents



Configuring Components for Standalone High Availability and Failover

All GlassFish ESB components provide high availability and failover features without using GlassFish clustering. Implementing the BPEL SE and IEP SE in this type of environment requires special configuration. The service engines are installed across multiple standalone GlassFish domains installed on multiple machines. In this implementation, if one engine fails, any running BPEL or IEP processes failover to the running engines.

Note - You can install the GlassFish domains on the same or different machines, but installing on different machines provides high availability and failover.

Both the BPEL SE and IEP SE use persistence databases to manage the state of each instance. They depend on the database server for high availability and failover features, so the persistence database needs to be configured for high availability and failover.

Because of the new support for GlassFish clustering for GlassFish ESB components, the standalone feature is provided primarily for compatibility with previous versions.

Configuring the BPEL Service Engine for Multiple Standalone Instances

You can deploy the same application across multiple BPEL SEs that connect to the same database. For both clustering and failover, BPEL SE persistence must be enabled.

To Configure the BPEL Service Engine for Multiple Standalone Instances

Before You Begin
If you are using a Derby database, start the database independent of GlassFish. If you are using Oracle, create the database instance for the persistence database.

  1. Install two or more GlassFish v2.1 domains.
  2. Configure the first GlassFish domain by doing the following:
    1. Launch the Admin Console.
    2. Create the database connection pools and JDBC resources as described in To Set Up the BPEL Database.
    3. In the left navigation bar, select Application Server.
    4. Click the JVM Settings tab, and then click the JVM Options tab.
    5. Click Add JVM Option, and enter the following in the blank row that appears:
      -Dcom.sun.jbi.bpelse.isClustered=true
    6. Click Add JVM Option, and enter the following in the blank row that appears:
      -Dcom.sun.jbi.bpelse.engineId=Name
      Where Name is a unique name for the BPEL SE instance.
    7. Restart the application server.
    8. Repeat these steps on the subsequent GlassFish domains. Use a unique name for the instance, and point all domains to the same persistence database.
  3. When all domains are configured, start the BPEL SE (sun-bpel-engine) on all domains.
  4. Configure the following runtime properties for each IEP SE instance, and then stop and restart the BPEL SE:
    • Persistence Enabled – Set this to true.
    • Non XA Data Source Name – The non-XA JDBC resource you created earlier.
    • XA Data Source Name – The XA JDBC resource you created earlier.
  5. Check the BPEL SE database table named ENGINE. It should list each engine ID you defined.
  6. When you deploy the Service Assembly, deploy it to all standalone GlassFish domains.

Configuring the IEP Service Engine for Multiple Standalone Instances

You can deploy the same application across multiple IEP SEs that connect to the same database. In a standalone environment, an event processor is owned by the IEP instance on which it is deployed first. The rest of the processing is similar to that in a clustered environment. All instances can receive the incoming messages, and once a message is received it is inserted into the IEP database. The instance that owns the event processor picks up the event to complete processing and writes the output. If an IEP instance fails, any in-process transactions are taken over by one of the remaining IEP instances and the process is completed. When the failed engine recovers, it continues to process new requests.

To Configure the IEP Service Engine for Multiple Standalone Instances

Before You Begin
If you are using a Derby database, start the database independent of GlassFish. If you are using Oracle, create the database instance for the persistence database.

  1. Install two or more GlassFish v2.1 domains.
  2. Configure the first GlassFish domain by doing the following:
  3. Launch the Admin Console.
    1. Create the database connection pools and JDBC resources as described in To Set Up the IEP Database.
    2. In the left navigation bar, select Application Server.
    3. Click the JVM Settings tab, and then click the JVM Options tab.
    4. Click Add JVM Option, and enter the following in the blank row that appears:
      -Dcom.sun.jbi.iepse.isClustered=true
    5. Click Add JVM Option, and enter the following in the blank row that appears:
      -Dcom.sun.jbi.iepse.instanceName=Name
      Where Name is a unique name for the IEP SE instance.
    6. Restart the application server.
    7. Repeat these steps on the subsequent GlassFish domains. Use a unique name for the instance, and point all domains to the same persistence database.
  4. When all domains are configured, start the IEP SE (sun-iep-engine) on all domains.
  5. Configure the following runtime properties for each IEP SE instance, and then stop and restart the IEP SE:
    • Non XA Data Source Name – The non-XA JDBC resource you created earlier.
    • XA Data Source Name – The XA JDBC resource you created earlier.
    • Database Schema Name – This matches the username specified in the connection pools.
  6. Check the IEP SE database table named EMS_ENGINE. The ID column should list each instance name you defined.
  7. When you deploy the Service Assembly, deploy it to all standalone GlassFish domains.

Previous


Return to GlassFish ESB Documentation Home

JSPWiki v2.4.100
[RSS]
« Home Index Changes Prefs
This page (revision-13) was last changed on 09-Jun-09 11:57 AM, -0700 by CarolT