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

Preparing to Install the WLE (C++) Software


The WLE (C++) product is a sophisticated software product; it should not be installed without proper planning.

This chapter discusses the following topics:


Checking Your Package

When you open your WLE software box, you will find the following:

If you also have a license for the BEA Administration Console, that package is enabled automatically when the license file is installed.

For a list of the platforms supported for this release of the WLE software, see Appendix A, "WLE (C++) Platform Data Sheets," and Appendix B, "WLE (Java) Platform Data Sheets."


WLE (C++) Software Components

The WLE (C++) software CD contains the following components:

The installation program offers the following options:

This option installs the complete client and server WLE (C++) software (including the C++ Wrapper Classes) and the BEA TUXEDO 6.5 for WLE V4.2 software. This option must be installed on any machine on which you plan to develop or deploy WLE client or server applications.

This component contains the client components listed above and the C++ Wrapper Classes. This option should be installed on machines on which you plan only to deploy, but not develop, WLE (C++) client applications.

The BEA Administration Console is a graphical user interface that enables you to perform most administrative tasks for WLE and BEA TUXEDO applications. This option can be installed only with the WLE (C++) Full System software or on machines that already have the full system software installed.

Note: For information about how to start up this console after it is installed, refer to Chapter 4, "BEA Administration Console Startup." For information about how to use this console, refer to the online help that is accessible through the console's Help button.


Hardware and Software Prerequisites for the WLE (C++) Software

The WLE (C++) software must be installed on each machine that will run a WLE client or server application.

Note: Do not try to share the WLE (C++) executables across remote file systems; this practice has proven to be unreliable.

The BEA Administration Console must be installed in a file system that supports long file names (that is, those containing more than 14 characters).

For details about the hardware and software prerequisites for all platforms on which the WLE (C++) software is supported, see Appendix A, "WLE (C++) Platform Data Sheets." Check the data sheet for each platform on which you plan to install the WLE (C++) software.

For UNIX Systems

You need the following information and resources before installing the WLE (C++) software on a UNIX system:

For Microsoft Windows NT, 95, and 98 Systems

You need the following resources before installing the WLE (C++) software on a Microsoft Windows system:


Managing Files and Databases

This section explains how to assign ownership of the WLE system files to the system administrator, and how to set up your disk to accommodate those files.

Assigning File Ownership on UNIX Systems

If you are installing the WLE (C++) software on a UNIX system, we strongly recommend that you create a separate user account for the WLE system administrator and give ownership of the WLE system files to that account.

Allocating Disk Space

A running WLE client or server application needs disk space for system files and for the application's database(s). You do not use this space until you begin to develop or run your WLE client or server application, but it is important to plan for this space before installing the software. To help explain what is involved, the following sections describe how the WLE system handles files.

The WLE System Disk Management Interface

The WLE system has a facility, the Disk Management Interface (DMI), that manages logical files within a single disk device or set of devices. Among other things, the DMI stores binary configuration tables and the transaction log.

The WLE disk management software supports the notion of a WLE file system distinct from any operating system file system. (For the remainder of this discussion, the term OS file system is used to refer to any operating system file system.)

Administrative access to the DMI to create, initialize, or destroy entries in the WLE file system is through tmadmin administrative commands.

There are two ways to physically store the logical files managed by the DMI: physical storage can be on an OS file system, and alternatively, disk space outside the control of all OS file systems can be set aside for the WLE system.

Files reside on special device files in that disk space and the DMI manages the files directly. Space outside the OS file system is usually referred to as raw disk space. Not only is I/O faster when done by system calls reading directly from and writing directly to device special files on raw disks, raw disk space is preferred when it is important to know for certain that a physical write() has been done.

With the OS file system, the precise moment at which a write() is done cannot be relied upon. In the WLE system, accurate control of the write operation is particularly important for entries in the transaction log. With multiple users, control of the write operation is also an important element in assuring database consistency.

Arranging for Raw Disk Space

If you decide to use raw disk space for your WLE client or server application, you may find that the hard disk devices on your machine are fully allocated to file systems such as /(root), /usr, and other UNIX file systems. If that is the case, it is necessary to repartition your hard disk device to set aside some partitions that are not to be used for an OS file system. Information on how to do this can be found in the system administration documentation for your particular platform.

Note: On Microsoft Windows NT platforms, the default behavior is unbuffered I/O; no special arrangements are needed.

How the WLE File System Is Organized

A WLE file system has a Volume Table of Contents (VTOC) that lists files on a set of devices named in the Universal Device List (UDL). The UDL contains information about the location of the physical storage space for the WLE tables.

All System Tables on the Same Device?

In a WLE system, all the system files might be stored together on the same raw disk slice or OS file system file. While it is possible to use regular OS file system files for the configuration tables, it is strongly recommended that the transaction log (TLOG) be stored on a raw disk device. Because the TLOG seldom needs to be larger than 100 blocks and because disk partitions are always substantially larger than 100 blocks, it may make sense to use the same device for everything. The pathname of the device needs to be contained in both the TUXCONFIG and the FSCONFIG environment variables.

Listing 1-1 shows approximately how the content might appear.

Listing 1-1 VTOC and UDL Diagram
Output based on setting FSCONFIG=$TUXCONFIG, and invoking tmadmin:

No bulletin board exists. Entering boot mode.

> livtoc
Volume Table of Contents on /usr2/bank/tuxconfig:
0: VTOC: Device 0 Offset 0 Pages 7
1: UDL: Device 0 Offset 7 Pages 28
2: _RESOURCE_SECT: Device 0 Offset 35 Pages 3
3: _MACHINES_SECT: Device 0 Offset 38 Pages 40
4: _GROUPS_SECT: Device 0 Offset 78 Pages 40
5: _SERVERS_SECT: Device 0 Offset 118 Pages 40
6: _SERVICES_SECT: Device 0 Offset 158 Pages 20
7: _ROUTING_SECT: Device 0 Offset 178 Pages 100
8: _NETWORK_SECT: Device 0 Offset 278 Pages 20
9: _MIBPERMS_SECT: Device 0 Offset 298 Pages 2

# If the TLOG is stored on the same device, there will be an
# entry something like:

9: TLOG1: Device 0 Offset 236 Pages 100
> q

The WLE system administrator must ensure that raw disk slices are available, as needed, on each machine participating in a WLE domain. The size of entities in the WLE file system are shown in Table 1-1.
Table 1-1 Size of System Tables

Entity 512-byte Pages

VTOC

1

TUXCONFIG

270

TLOG

100 (default)

UDL

28

TOTAL

399

The size of the TUXCONFIG file is larger if there are more entries in the configuration file (UBBCONFIG). The administrator is encouraged to allocate additional space for dynamic reconfiguration and for growth of the application. The default size assumed by the crdl subcommand of tmadmin is 1000 blocks, which should be adequate for the initial installation.

Space for Application Databases (If You Are Using /D)

If your WLE server application is using the BEA TUXEDO system/D as a resource manager, your database tables can be listed in the same UDL and can be managed by the WLE VTOC. If another resource manager is used, you should check the installation instructions for that product to see how its space requirements affect your WLE system planning.

Space for Queue Spaces (If You Are Using /Q)

If your WLE application is using the BEA TUXEDO system/Q for store-and-forward queue management, your queue space can be listed in the same UDL and can be managed by the WLE VTOC.

Space for Application Servers

As you are calculating the space requirements for the WLE system, also consider the requirements of the server machines that perform the work of the server application. These requirements are specified by the application, and they are in addition to the requirements for the WLE system itself (unless otherwise specified).


Selecting Directories for the WLE Files

During the installation process, you are prompted to make decisions about where, in your file system, a number of your WLE directories and files are installed. To help you plan for this part of the process, this section describes the directories and files about which you are prompted to make a decision, as follows:

For All Platforms

You are prompted for a pathname for the base directory of your WLE software. There is no restriction on the location of this directory, as long as it meets the following requirements:

Throughout the WLE documentation this directory is referred to as WLEDIR.

For All Server Platforms Supporting the BEA Administration Console

If you are installing the WLE (C++) software on a server machine, and you elect to install the BEA Administration Console for system administration, you are prompted, during the installation process, to accept or replace the default pathnames and file names used for the BEA Administration Console components. These default pathnames and file names are based on the value of WLEDIR that you specify.

If you are running a commercial Web server, you may find the default settings inappropriate, especially if your server is handling requests from both the BEA Administration Console and other Web programs on the same port. To accommodate this situation, the WLE software enables you to choose between accepting the defaults and assigning your own pathnames and file names. The remainder of this section describes the choices you are given, as follows:

  1. A pathname for the HTML files-By default, the following HTML files are installed in the directory WLEDIR\udataobj\webgui on Microsoft Windows NT systems and WLEDIR/udataobj/webgui on UNIX systems. You are prompted to supply your own paths for these files if you prefer to have them installed elsewhere.

  2. A pathname for the Java and image files-By default, the class files for the Java applet are installed in one of the following directories. You are prompted to supply your own paths for these files if you prefer to have them installed elsewhere.

  3. A directory pathname for the CGI program (tuxadm)-Specify one of the following (unless the following exception applies):

Exception: If the installation program detects the Microsoft Internet Information Server (IIS) in a standard directory, tuxadm is installed in a subdirectory called scripts in the directory you specified in step 1 as the pathname for the HTML files.

Note: Do not specify WLEDIR/bin (for UNIX systems) or WLEDIR\bin (for Microsoft Windows NT systems) as your CGI directory. If you do, you risk having other WLE client or server applications executed accidentally by an uninformed user of the BEA Administration Console. You may also introduce a security risk.

  1. An alias for the directory pathname for tuxadm. This is the path for the directory in which Web clients expect to find tuxadm. The default is either /cgi-bin or /scripts (for UNIX systems) or \cgi-bin or \scripts (for Microsoft Windows NT systems).


Selecting an Administrative Password

The WLE system uses an administrative password to protect the machine on which it is installed from unauthorized administrative requests and operations (such as tmboot). Whenever administrative communications arrive on this machine through the tlisten and wlisten processes, the WLE system authenticates the communications by means of the password.

You assign an administrative password during the installation process (to the machine on which the WLE software is being installed) by entering the password of your choice after the appropriate prompt. The password must be a string of alphanumeric characters in clear-text format. It may contain no more than 80 characters.

A common password is required for two machines in a WLE domain to communicate successfully. For this reason, you must use the same password whenever you install the WLE software on multiple machines for a single domain. As described previously, you are prompted to provide the password during the WLE installation process. If, however, you use a different password for one machine, you must add that password to the tlisten.pw file on each existing machine with which you want that machine to communicate.

For these reasons, you may have more than one administrative password in your tlisten.pw file. A single password file may contain no more than 20 passwords, with one password per line.

The administrative password that you enter during installation is collected by the installation script and is stored in:

WLEDIR/udataobj/tlisten.pw (UNIX systems)
WLEDIR\udataobj\tlisten.pw (Microsoft Windows NT systems)

Make sure the permissions on your tlisten.pw file are set such that only the WLE system administrator can read the file.


Configuring the WLE (C++) System for Microsoft Windows NT

You cannot configure your WLE (C++) system for Microsoft Windows NT until after you install the WLE (C++) software and license. After you complete the installation as described in Chapter 2, "WLE (C++) Installation on Microsoft Windows NT, 95, and 98 Systems," refer to the section "Configuring the WLE System for Microsoft Windows NT" on page 5-2 for instructions on configuring the WLE (C++) system for Microsoft Windows NT.


Configuring the UNIX Operating System for the WLE (C++) Software

The WLE software uses the UNIX operating system Interprocess Communications (IPC) resources.

IPC resources are configured by three sets of tuning parameters that control the amount of shared memory (prefix SHM), number of semaphores (prefix SEM), and size of message queues and messages (prefix MSG).

The settings for these parameters are WLE system dependent. Most UNIX systems, however, are shipped with default values that are too low for WLE systems.

The following sections describe the IPC parameters and provide guidelines for configuring them. Because these parameters vary across different versions of UNIX, the following descriptions are generic. For the exact parameter names, default settings, settings used for the University Sample applications for each platform, and information about how to change the parameters, see Appendix A, "WLE (C++) Platform Data Sheets."

If you change a parameter, you need to rebuild the kernel and reboot the operating system using the standard administrative tools. Consult your operating system administrator or the system administrator's guide for your platform for details.

If your WLE client or server application is distributed, the minimum IPC resources must be available on every UNIX platform participating in the application.

Semaphores

Every process that participates in a WLE system requires a semaphore. When the system boots, the number of semaphores configured in the operating system is checked, and the boot fails if the configured number is not high enough.

The following semaphore parameters may need to be adjusted:

Maximum number of semaphores in the system. The minimum requirement for SEMMNS is:
MAXACCESSERS - MAXWSCLIENTS + 13
where MAXACCESSERS is the maximum number of WLE processes on a particular machine (including servers and native clients) and MAXWSCLIENTS is the maximum number of WLE remote clients. Both of these parameters are specified in the application's UBBCONFIG file.
For more information about UBBCONFIG, see the Administration Guide or the ubbconfig(5) reference page in the BEA TUXEDO Reference.

Maximum number of active semaphore sets. See SEMMSL.

Maximum number of semaphores per semaphore set. SEMMNI and SEMMSL are commonly chosen so that their product equals SEMMNS. The WLE system does not perform semaphore operations on semaphore sets; however, it attempts to allocate as many semaphores per semaphore set as possible.

Size of the control map used to manage semaphore sets. SEMMAP should be equal to SEMMNI.

Number of undo structures in the system. Because an undo structure is needed for each process that can access the Bulletin Board, SEMMNU must be at least as large as SEMMNS.

Maximum number of undo entries per undo structure. The value 1 suffices.

Message Queues and Messages

WLE client and server applications use UNIX messages and message queues for client/server communication. Examples of such messages are service requests, service replies, conversational messages, unsolicited notification messages, administrative messages, and transaction control messages.

Every Multiple Servers, Single Queue (MSSQ) set of servers, and every individual server has a message queue for receiving requests. Every client has its own queue for receiving replies. Servers that specify the REPLYQ parameter also get individual reply queues.

The adjustment of kernel message parameters is important to the proper tuning of the WLE system. Inappropriate values can lead to an inability to boot or to severe performance degradation.

There are various message queue parameters. They limit various characteristics of the queue space, including the total number of outstanding messages (MSGTQL), the total number of bytes that can be on one queue (MSGMNB), the size limit of an individual message (MSGMAX), the total number of message segments that can be outstanding at one time (MSGSEG), and the size of each segment (MSGSSZ).

Exceeding any of the parameter limits described previously results in what is known as a blocking condition. There is a special case for MSGMAX. Messages that exceed 75 percent of MSGMNB, or that are larger than MSGMAX, are placed in a UNIX file. A very small message with the file name in it is then sent to the recipient. Avoid this mode of operation, because it results in a severe reduction in performance.

An application deadlock can result if every process is blocked when it tries to send a message. For example, when client applications fill the message space with requests, and server applications are all blocked when they try to send replies, because no server application can read a message, there is a deadlock. Timeouts can sometimes break the deadlock, but no useful work will have been done.

Especially troublesome is a client application that sends its requests with the TPNOREPLY flag. This practice can fill either individual queues or the system message space, depending on the size of the messages. Such applications may have to implement their own flow control to limit the number of outstanding messages.

To summarize, if client applications or server applications are blocking on their send operations (that is, requesting services or sending replies), there is potential for trouble. It is usually no problem, though, for a single server request queue to always be full, as long as there is space in the system for more messages on other queues.

There are performance implications to queue blocking conditions, both on the sending side and the receiving side. The UNIX operating system, when waking up blocked processes, wakes up all the processes blocked on a particular event, even if only one can proceed. The other processes go back to sleep. This process scheduling overhead can be expensive.

For example, on an empty server request queue where there is more than one server application (that is, MSSQ), an arriving message wakes up all the idle, or blocked, server applications on that queue. In the case of a full server request queue, as each request is read by a server application, the system wakes up all the blocked clients. Depending on the size of the messages, zero or more clients are allowed to place their messages on the queue. The remainder of the clients have to go back to sleep. Because there may be hundreds of clients in the system, the mass wakeup of all of these clients every time a service request is processed can severely degrade performance.

A properly tuned system rarely fills its queues. Enough slack should be left in the queues to handle the natural variability of the message flow. No exact settings can be recommended. Tuning is very system dependent. The UNIX ipcs(1) command provides a snapshot of the queues so you can tell whether they are full. You can try the TPNOBLOCK flag when sending requests. That way, clients can tell when queues are full, and they can slow down a bit. It might help to increase the scheduling priority of the servers whose request queues are full.

The following message parameters may need to be adjusted:

Number of unique message queue identifiers. Each process participating in a WLE client or server application on a particular machine typically needs at least one message queue. This number is reduced if MSSQ sets are used, where multiple server processes share a single queue. For transaction processing, count an additional queue per server group for TMS processes. Thus, the minimum requirement for MSGMNI can be determined by this formula:
MSGMNI = MAXACCESSERS + 7
+ (number of servers with REPLYQ)
+ (number of MSSQ sets)
- (number of servers in MSSQ sets)

Maximum message size in bytes. MSGMAX must be large enough to handle any WLE client or server application running on this machine.

Maximum message queue length in bytes. This number must accommodate the total size of all messages that are on a queue and that have not been taken off by the associated process(es). The minimum value for MSGMNB is MSGMAX. Messages longer than 75 percent of MSGMNB are sent to a file instead of to a message queue. Avoid this situation because it severely degrades performance.

Number of entries in the control map used to manage message segments. MSGMAP should be the same as the number of message segments (MSGSEG), which should be twice the size of MSGMNI.

Size of a message segment in bytes. A message can consist of several such segments. The value of MSGSSZ should be such that a multiple of MSGSSZ is equal to the size (including the WLE system header) of the most commonly sent message. This practice avoids wasting space.

Number of message segments in the system.

Total number of outstanding messages that can be stored by the kernel. This is the maximum number of unread messages at any given time.

Shared Memory

In the WLE environment, shared memory is used for the Bulletin Board and for the control table of the IIOP Server Listener. An application also may choose to use shared memory for its own purposes.

The following shared memory parameters may need to be adjusted:

Maximum shared memory segment size in bytes. This number represents the largest shared memory segment that can be allocated. A process can, however, attach to more than one segment of size SHMMAX.

Maximum number of shared memory segments per process. For a given configuration, the maximum amount of shared memory in bytes to which a process can attach is SHMMAX * SHMSEG. A value between 6 and 15 should be adequate.

Maximum number of shared memory identifiers in the system. The WLE system requires one identifier per Bulletin Board and an additional identifier if the IIOP Server Listener is running.

Minimum shared memory segment size in bytes. This should always be
set to 1.

Other Kernel Tuning Parameters

Experience with WLE (C++) systems has shown that some other UNIX tuning parameters may need to be set to higher values. The settings are dependent on the application and do not apply to all applications.

ULIMIT

Maximum file size. ULIMIT needs to be large enough so that you can install the WLE software and build servers. We recommend 4 megabytes.

NOFILES

Maximum number of open files per process. A WLE server application requires a minimum of four file descriptors.

MAXUP

Maximum number of processes per non-super user. The WLE system
processes (servers and administrative processes) run with the UID specified in the application's UBBCONFIG file. MAXUP needs to be large enough to allow all these processes to run.

NPROC

Maximum number of processes (system wide).

NREGION

Number of region table entries to allocate. Most processes have three regions: text, data, and stack. Additional regions are needed for each shared memory segment and shared library (text and data) attached. However, the region table entry for the text of a shared text program is shared by all processes executing that program. Each shared memory segment attached to one or more processes uses another region table entry.

NUMTIM

Maximum number of STREAMS modules that can be pushed by the Transport Layer Interface (TLI). A typical default value is 16. Set NUMTIM to at least 256.

NUMTRW

The number of TLI read/write structures to allocate in kernel data space. A typical default value is 16. Set NUMTRW to at least 256.

Calculating IPC Requirements

When the WLE (C++) software has been installed and an application configuration file (UBBCONFIG file) is available, the tmloadcf command can be used to calculate the IPC resources needed to support the application. For more information, see the tmloadcf(1) reference page in the BEA TUXEDO Reference and the section "Verifying IPC Requirements" on page 5-17.



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