[Top] [Prev] [Next] [Bottom]

Chapter 2 . Improved BRIDGE Processing

Introduction

The BEA TUXEDO v6.4 BRIDGE now enables you to use multiple network addresses. This means that you can use multiple communication channels simultaneously and/or use multiple communication channels for failover and failback. As a result, BRIDGE processing is network fault tolerant.

This release also supports asynchronous connection of network links.

New Terms

asynchronous connections
Virtual circuits set up to execute independently of each other or asynchronously. Asynchronous connection does not block the processing of working circuits while attempts are being made to reconnect failed circuits. The v6.4 BRIDGE allows the use of nonfailing network paths by listening and transferring data using multiple network address endpoints.
failover and failback
Network failover occurs when a redundant unit seamlessly takes over the network load for the primary unit. Some OS and hardware bundles transparently detect a problem on one network card and have a spare automatically replace it. When done quickly enough, application level TCP virtual circuits have no indication a fault happened - this is failover.
Data flows over the highest available priority circuit. If network groups have the same priority, data travels over all networks simultaneously. If all circuits at the current priority fail, then data is sent over the next lower priority circuit. This is called failover. When a higher priority circuit becomes available, data flows over this higher priority circuit. This is called failback. All unavailable higher priority circuits are retried periodically. After connections to all network addresses have been tried and failed, connections are retried again the next time data needs to be sent between machines.

multiple listening addresses
Having addresses available on separate networks means that even if one virtual circuit is disrupted, the other circuit can continue undisturbed. Only a failure on all configured networks makes reconnection of the BRIDGES impossible. For example, when a high priority network fails, its load can be switched to an alternate network that has a lower priority. When the higher priority network returns to service, the network load returns to it.

parallel data circuits
Parallel data circuits enable data to flow on circuits simultaneously. When you configure parallel data circuits, network traffic is scheduled over the circuit with the largest network group number (NETGRPNO). When this circuit is busy, the traffic is scheduled automatically over the circuit with the next lower network group number. When all circuits are busy, data is queued until a circuit is available.

Note: Alternate scheduling algorithms may be introduced in future releases.

How the BRIDGE Works

The BRIDGE manages multiple listening addresses and virtual circuits among network groups. Each network group represents one network (real or virtual). Each machine may have one NADDR per network group. The highest priority circuits flow data in parallel. In the event of network virtual circuit failure, the next available lower priority virtual circuit is used. When circuits fail, the BRIDGE attempts to reconnect the higher priority circuit periodically, while data flows over the lower priority circuit.

Each BEA TUXEDO BRIDGE can access additional network resources. Proper use of the BRIDGE can lead to fewer connectivity outages. Once you have specified network group addresses in the configuration, the application automatically benefits from them. Figure 2-1 summarizes these improvements by comparing BRIDGE processing in Releases 6.3 and 6.4.

Figure 2-1 Differences Between the v6.3 and v6.4 BRIDGES

BEA TUXEDO v6.3 BRIDGE BEA TUXEDO v6.4 BRIDGE

Has a single network address and uses only one virtual circuit. As a result, a pair of BRIDGES can be disconnected easily. A disconnect may result, for example, from an error in no more than one card, one cable, one hub, one router, one modem, or one patch cord.

Can have several network addresses. Having addresses available on separate networks means that even if one virtual circuit is disrupted, the other circuit can continue undisturbed. Only a failure on all configured networks makes reconnection of the BRIDGES impossible. Thus, for example, when a high priority network fails, its load can be switched to an alternate network that has a lower priority. When the higher priority network returns to service, the network load returns to it.

Uses blocking network circuit establishment calls. When data from a remote node experiences network problems, the BRIDGE temporarily stops processing working networks and message queues. Every five minutes, it tries to reestablish a circuit to an address with a known recent error.

Establishes virtual circuits asynchronously. Asynchronous connection does not block the processing of working circuits while attempts are being made to reconnect failed circuits. The v6.4 BRIDGE allows the use of nonfailing network paths by listening and transferring data using multiple network address endpoints.

Has one networking address per node.

Network groups in which connectivity is customized for subsets of the machines in the configuration can be defined.

Has no tunable parameter.

The amount of memory space to allocate for messages waiting to be transmitted by the BRIDGE process can be defined with the MAXPENDINGBYTES parameter.

How the v6.4 Netgroups Work

In v6.4, Netgroups perform the following functions:

Accepting Data on All Addresses

The BRIDGE listens to all network group addresses (that is, all addresses specified as a value of NADDR in the NETGROUP section of the UBBCONFIG) and accepts connections and data on all circuits. The semantics for failover, failback, and parallel data circuits, are determined only when data is being sent.

Scheduling Network Data Over Parallel Data Circuits

Scheduling Network Data in Failover and Failback

Data flows over the highest available priority circuit. If network groups have the same priority, data travels over all networks simultaneously. If all circuits at the current priority fail, then data is sent over the next lower priority circuit. This is called failover. When a higher priority circuit becomes available, data flows over this higher priority circuit. This is called failback. All unavailable higher priority circuits are retried periodically. After connections to all network addresses have been tried and failed, connections are retried again the next time data needs to be sent between machines.

Walk-through: An Example of a v6.4 Netgroups Configuration

In v6.4, NADDR BRIDGE network addresses may be associated with a network group. The following example illustrates how this capability may be useful.

The Configuration

First State Bank has a network of five machines (A-E). Each machine belongs to two or three of four netgroups that have been defined by the system administrator:

Every machine belongs to DEFAULTNET (the corporate WAN). In addition, each one is associated with either the MAGENTA_GROUP or BLUE_GROUP. Finally, some machines in the MAGENTA_GROUP LAN also belong to the private GREEN_GROUP. Figure 2-2 shows machines A through E in the networks for which they have network addresses.

Figure 2-2 Example of a Network Grouping

In this example, Machines A and B have addresses for:

Machine C has addresses for:

Machines D and E have addresses for:

Because the local area networks are not routed among the locations, machine D (in the BLUE_GROUP LAN) may contact machine A (in the GREEN_GROUP LAN) only by using the single address they have in common: the corporate WAN network address.

The UBBCONFIG File with Netgroups

To set up the configuration we just described, the First State Bank administrator defined each group in the NETGROUPS section of the UBBCONFIG file as follows.

*NETGROUPS

DEFAULTNET NETGRPNO = 0 NETPRIO = 100 #default
BLUE_GROUP NETGRPNO = 9 NETPRIO = 100
MAGENTA_GROUP NETGRPNO = 125 NETPRIO = 200
GREEN_GROUP NETGRPNO = 13 NETPRIO = 200

*NETWORK

A NETGROUP=DEFAULTNET NADDR="//A_CORPORATE:5723"
A NETGROUP=MAGENTA_GROUP NADDR="//A_MAGENTA:5724"
A NETGROUP=GREEN_GROUP NADDR="//A_GREEN:5725"
B	NETGROUP=DEFAULTNET				NADDR="//B_CORPORATE:5723"
B NETGROUP=MAGENTA_GROUP NADDR="//B_MAGENTA:5724"
B NETGROUP=GREEN_GROUP NADDR="//B_GREEN:5725"
C	NETGROUP=DEFAULTNET				NADDR="//C_CORPORATE:5723"
C NETGROUP=MAGENTA_GROUP NADDR="//C_MAGENTA:5724"

D NETGROUP=DEFAULTNET NADDR="//D_CORPORATE:5723"
D NETGROUP=BLUE_GROUP NADDR="//D_BLUE:5726"
E	NETGROUP=DEFAULTNET				NADDR="//E_CORPORATE:5723"
E NETGROUP=BLUE_GROUP NADDR="//E_BLUE:5726"

Assigning Priorities for Each Network Group

Appropriately assigning priorities for each netgroup enables you to maximize the capability of network BRIDGES. When determining your netgroup priorities, keep in mind the following considerations:

Figure 2-3 illustrates how the First State Bank administrator can assign priorities to the network groups.

Figure 2-3 Assigning Priorities to Network Groups

The UBBCONFIG Example Considerations

You can specify the value of NETPRIO for DEFAULTNET just as you do for any other netgroup. If you do not specify a NETPRIO for DEFAULTNET, a default of 100 is used, as in the following example.

*NETGROUP
DEFAULTNET NETGRPNO = 0 NETPRIO = 100

For DEFAULTNET, the value of the network group number must be "0"; any other number is invalid. If the BLUE_GROUP's network priority is commented out, the priority defaults to 100. Network group number entries are unique. Some of the network priority values are equal as in the case of the MAGENTA_GROUP and GREEN_GROUP (200).

Each network address is associated by default with the network group, DEFAULTNET. It may be specified explicitly for uniformity or to associate the network address with another netgroup.

*NETWORK
D NETGROUP=BLUE_GROUP NADDR="//D_BLUE:5726"

In this case, the MAGENTA GROUP and GREEN GROUP have the same network priority of 200. Note that a lower priority network, such as DEFAULTNET, could be a charge-per-minute satellite link.

Example of a call using multiple network addresses

  1. The BRIDGE on machine A calls the BRIDGE on machine B.

  2. The BRIDGE on B establishes a connection to the MAGENTA address (e.g., NADDR ="//B_MAGENTA:5724") and to the GREEN address (e.g., NADDR= "//B_GREEN:5725").

  3. The BRIDGE sends application data over both connections simultaneously. If both circuits are available, they are called parallel data circuits. If only one is available, both BRIDGES try to reconnect the missing circuit.

  4. The BRIDGE process on each machine looks up the network addresses for the GREEN Netgroups to reestablish the connection. If both circuits stop flowing data, the BRIDGES try to reconnect periodically, but they also attempt to connect to the lower priority DEFAULTNET (called failover). Thus, in this example, "//B_MAGENTA:5724" and "//B_GREEN:5725" are tried first; the lower priority "//B_CORPORATE:5723" is tried later.

How the BRIDGE Processes Data by Priority

Figure 2-4 Flow of Data over the BRIDGE

Figure 2-4 illustrates the flow of data when machine A attempts to contact machine B. First, the BRIDGE determines which network groups are common to both machine A and machine B. They are the MAGENTA GROUP, the GREEN GROUP, and the DEFAULTNET. The highest priority network addresses originate from the network groups with the highest network priority. Network groups with the same NETPRIO value flow network data in parallel. All network groups with a higher priority than that of the network groups flowing data are retried periodically. Once network connections have been established with different NETPRIO values, no further data is scheduled for the lower priority connection. The lower priority connection is disconnected in an orderly fashion (called failback).

The BRIDGE'S Relationship to Other Components

Features of Asynchronous BRIDGE Connections (BridgeAsyncConnect)

Administrative Functions Performed by the BRIDGE

  1. The BRIDGE logs and generates system events on the state changes of the circuits.

  2. The BRIDGE does not support MIB operations on individual circuits between machines.

  3. The tmadmin (rco) command allows you to manually disconnect links between two machines. It then initiates asynchronous connect processing in v6.4.


Configuring the v6.4 BRIDGE (BRIDGE NADDR)

To configure a v6.4 BRIDGE, edit your UBBCONFIG file as follows.

Updates to the UBBCONFIG(5) Manual Page

Description of the New NETGROUPS Section

The NETGROUPS section describes the network groups available to the application in the LAN environment. There is no limit to the number of network groups to which a pair of machines may be assigned. The method of communication to be used by members of different networks in a network group is determined by the priority mechanism (NETPRIO).

Every LMID must be a member of the default network group (DEFAULTNET). The network group number for this group (that is, the value of NETGRPNO) must be zero. However, you can modify the default priority of DEFAULTNET. Networks defined in releases prior to Release 6.4 are assigned to the DEFAULTNET network group.

Formatting Entries

NETGROUP required parameters [optional parameters]
where NETGROUP is the network group name. If NETGROUP is equal to DEFAULTNET, the entry describes the default network group.

Specifying Parameters

Parameter Required/Optional

Description

NETGRPNO = numeric_value

Required

A unique network group number that you must assign to use in failover and failback situations. If this entry describes DEFAULTNET, the numeric value must be zero. Communication with pre-v6.4 releases only use DEFAULTNET.

NETPRIO = numeric_value

Optional

The priority of this network group. A pair of machines in multiple network groups of the same priority communicates simultaneously over the circuits with the highest priority. If all network circuits of a certain priority are torn down by the administrator or by network conditions, the next lowest priority circuit is used. Retries of the higher priority circuits are attempted. This value must be greater than zero and less than 8,192. If not specified, the default is 100.

Note: In v6.4, parallel data circuits are prioritized by the network group number (NETGRPNO) parameter within priority group number. In future releases, a different algorithm/mechanism may be used to prioritize parallel data circuits.

NETGROUP = string_value

Required

The network group associated with this network entry. All network entries with a NETGROUP parameter of DEFAULTNET are represented in the T_MACHINE class, while NETWORK entries associated with any other NETGROUP are represented in the T_NETMAP class to interoperate with previous releases.

MAXNETGROUPS

Optional

Allows more netgroups to be defined than the default (8).

MAXPENDINGBYTES

Optional

MAXPENDINGBYTES enables you to configure the maximum size of data waiting for the network to become available. There are two situations when MAXPENDINGBYTES will be significant: (1) when the BRIDGE requests an asynchronous connection, and (2) when all circuits are busy. You can configure larger computers that have more memory and disk space, with larger MAXPENDINGBYTES, and smaller computers with smaller MAXPENDINGBYTES.
Because connections were always synchronous in v6.3, situation (1) above did not apply.

Updates to the TM_MIB(5) Manual Page

Refer to the TM_MIB Manual Page for a detailed view of all the changes. Following is a list of changes to the TM_MIB(5) Manual Page:

T_NETGROUP CLASS DEFINITION

Overview

The T_NETGROUP class represents application attributes of network groups. Network groups are groups of LMIDs for machines that can communicate over the network addresses defined (as values of TA_NADDR) in the T_NETMAP class.

Attribute Table

TM_MIB(5): T_NETGROUP Class Definition Attribute Table
Attribute Permissions Values Default

TA_NETGROUP( r )( * )

rU-------

string[1. . . 30]

DEFAULTNET

TA_NETGRPNO( r )( * )

rU-------

1 <= num < 8,192

N/A

TA_STATE

rw-r--r--

GET:"{VAL}"

SET:"{NEW|INV}"

N/A

N/A

TA_NETPRIO( * )

rw-rw----

1 <= num < 8,192

100

( r ) - Required field for object creation (SET TA_STATE NEW)

( * ) - GET/SET key, one or more required for SET operations

Attribute Semantics

Attribute Description

TA_NETGROUP: string[1 . . . 30]

Logical name of the network group. A group name is a string of printable characters. It cannot contain a pound sign, comma, colon, or new line character.

TA_NETGRPNO: 1 <= num < 8,192

Group identifier associated with this network group.

TA_STATE: (in response to GET)

If a GET request has been issued, the value of TA_NETGROUP may be any of the following. States not listed will not be returned:

VALid
T_NETGROUP object is defined. Note that this is the only valid state for this class. Network groups are never active.

TA_STATE: (in response to SET)

The following states indicate the meaning of a TA_STATE set in a SET request. States not listed may not be set:

NEW
Create a new T_NETGROUP object with the given attributes. State change allowed only when in the INValid state. Successful return leaves the object in the VALid state.

unset
Modify an existing T_NETGROUP object. Only allowed in the VALid state. Successful return leaves the object state unchanged.

INValid
Delete the T_NETGROUP object from the application. State change allowed only when in the VALid state and only if there are no objects in the T_NETMAP class which have this network group object as a key. Successful return leaves the object in the INValid state.

TA_NETPRIO: 1 <= num < 8,192

The priority of this network group. All circuits at the highest priority are used simultaneously.

Note: In v6.4, parallel data circuits are prioritized by network group number (NETGRPNO) within priority group number. In future releases, a different algorithm/mechanism may be used to prioritize parallel data circuits.

T_NETMAP CLASS DEFINITION

Overview

The T_NETMAP class associates TA_LMIDs from the T_MACHINE class to a TA_NETGROUP object from the T_NETGROUP class. This class identifies which logical machines belong to which network group. A TA_LMID may be in many TA_NETGROUP groups.

When one LMID connects to another LMID, the BRIDGE process determines the subset of network groups to which the two LMIDS belong. When the pair of LMIDs are in several common groups, they are sorted in descending TA_NETPRIO order (TA_NETGRPNO is the secondary key). The highest TA_ NETPRIO network group(s) TA_NADDR are the primary network addresses.

Network groups with the same TA_NETPRIO flow network data in parallel. Should a networking error prevent data from flowing through all the highest priority group(s), only then will the next lower priority network group(s) be used for networking traffic (failover). All network groups with a higher priority than the ones flowing data are re- tried periodically. Once a network connection is established with a higher TA_ NET- PRIO value, no further data is scheduled for the lower priority one. Once the lower priority connection is closed, it is disconnected in an orderly fashion (called failback).

Attribute Table

TM_MIB(5): T_NETMAP Class Definition: Attribute Table
Attribute Type Permissions Values Default

TA_NETGROUP( r )( * )

string

ru-------

string[1. . . 30]

N/A

TA_LMID( r )( * )

string

ru-------

string[1. . . 30]

N/A

TA_STATE

string

rw-r--r--

GET:"{VAL}"

SET:"{NEW|INV}"

N/A

N/A

TA_NADDR ( r )

string

rw-r--r--

string[1. . . 78]

""

TA_MINENCRYPTBITS

string

rwxrwx---

{ 0 | 40 | 128 }

0

TA_MAXENCRYPTBITS

string

rwxrwx---

{ 0 | 40 | 128 }

128

( r ) - Required field for object creation (SET TA_STATE NEW)

( * ) - GET/SET key, one or more required for SET operations

Attribute Semantics

Attribute Description

TA_NETGROUP: string

This attribute is the name of the associated network group found in the T_NETGROUP class.

TA_LMID: string

The logical machine name from the T_MACHINE class for this network mapping.

TA_STATE:

The following states indicate the meaning of a TA_STATE returned in response to a GET request. States not listed will not be returned:

VALid T_NETMAP object is defined. Note that this is the only valid state for this class. Network mappings are never active.

GET: {VALid}
A GET operation will retrieve configuration information for the selected T_NETMAP object(s).

TA_STATE:

The following states indicate the meaning of a TA_STATE set in a SET request. States not listed may not be set:

unset
Modify an existing T_NETMAP object. Successful return leaves the object state unchanged.

INValid
Deletes the given network mapping.

SET: {NEW|INValid}
A SET INValid operation is permitted only when the netgroup is idle.

TA_NADDR: string

Specifies the complete network address to be used by the BRIDGE process placed on the logical machine as its listening address.

The listening address for a BRIDGE is how other BRIDGE processes participating in the application contact the BRIDGE. You must set this attribute if this BEA TUXEDO application is set to use LAN mode. If string has the form 0xhex-digits or \\xhex-digits, it must contain an even number of valid hex digits. These forms are translated internally into a character array containing the hexadecimal representations of the string specified. For TCP/IP addresses, either the "//hostname:port" or "//#.#.#.#:port" format is used.

TA_MINENCYRPTBITS: {0|40|128}

When establishing a network link to this machine, require at least this minimum level of encryption. 0=no encryption; 40 and 128= the encryption key length (in bits). If this minimum level of encryption cannot be met, link establishment fails. The default is 0. (Modifications to this attribute do not effect established network links.)

TA_MAXENCYRPTBITS: {0|40|128}

When establishing a network link, negotiate encryption up to this level. 0=no encryption; 40 and 128=the encryption length (in bits). The default is 128. (Modifications to this attribute do not effect established network links.)

Files

${TUXDIR}/include/tpadm.h
${TUXDIR}/udataobj/tpadm

References

Fintro(3fml), Fadd32(3fml), Fchg32(3fml), Ffind32(3fml), tpalloc(3c), tprealloc(3c), tpcall(3c), tpacall(3c), tpgetrply(3c), tpenqueue(3c), tpdequeue(3c), MIB(5), TM_MIB(5)
BEA TUXEDO Administrator's Guide
BEA TUXEDO Programmer's Guide



[Top] [Prev] [Next] [Bottom]