Академический Документы
Профессиональный Документы
Культура Документы
SC34-6638-02
SC34-6638-02
Note
Before using this information and the product it supports, be sure to read the general information under Notices on page
131.
Contents
Figures
. . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
About this book . . . . .
Who should read this book . .
Document organization . . .
Conventions used in this book
How to send your comments .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
6
6
7
7
8
8
8
8
9
.
.
.
.
.
to
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xi
. xi
. xi
. xii
. xiii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
13
13
15
15
16
16
16
17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
21
22
22
23
24
24
25
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
27
29
33
.
.
.
.
.
.
.
.
.
.
.
.
.
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
34
34
35
36
36
37
37
38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
40
41
41
41
42
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
44
44
45
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
47
48
49
49
52
52
53
54
55
55
56
59
64
64
|
|
|
|
|
|
|
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
69
69
70
70
71
71
72
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73
75
76
78
79
80
81
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
|
|
|
|
|
|
|
. . .
Console
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
added
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
82
83
85
87
87
87
88
. . . .
. . . .
. . . .
resources
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
91
92
95
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
103
104
105
106
106
Appendix C. Troubleshooting . . . . . . . .
How to determine whether the WAP is started . . .
How to determine whether the WCM is started . . .
How to determine whether the user exits are in place
How to validate the CICS environment . . . . . .
How to check the configuration file . . . . . . .
Additional problem diagnosis . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
107
108
108
109
109
110
110
CICS WLM
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
113
113
114
115
by
.
.
.
.
.
.
.
.
.
.
installing
. . . .
. . . .
. . . .
. . . . . . . . . . . . . 117
Contents
vi
Figures
|
|
|
|
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
vii
viii
Tables
|
|
|
|
|
|
|
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
ix
Document organization
Table 1. A road map for Using CICS Workload Management
If you want to...
Refer to...
See example displays of the Routing Monitor Appendix B, Routing Monitor displays, on
page 103
Copyright IBM Corp. 1999, 2008
xi
Refer to...
Look at the generated WLM configuration file Appendix F, The generated WLM
configuration file, on page 121
See a complete list of CICS WLM commands Appendix G, Complete list of CICS WLM
commands, on page 125
Refer to the Glossary
xii
Convention
Meaning
Bold
Monospace
Italics
Indicates variable values that you must provide (for example, you
supply the name of a file for file_name). Italics also indicates
emphasis and the titles of books.
<>
<Ctrl-x>
<Return>
Refers to the key labeled with the word Return, the word Enter, or
the left arrow.
C:\>
>
Entering commands
[]
Meaning
{}
...
IN
OUT
INOUT
$CICS
Indicates the full path name of the location in which the CICS
product is installed; for example, /usr/lpp/cics on AIX. If the CICS
environment variable is set to the product path name, you can use
the examples exactly as shown in this book; otherwise, you must
replace all instances of $CICS with the CICS product path name.
CICS on Open
Systems
TXSeries for
Multiplatforms
Refers collectively to the CICS for AIX, CICS for HP-UX, and CICS
for Windows products.
CICS
Refers generically to the CICS for AIX, CICS for HP-UX, and CICS
for Windows products. Other CICS products in the CICS Family are
distinguished by their operating system (for example, IBM
mainframe-based CICS for the z/OS platform).
xiii
xiv
v Enable the distributed management of work from any CICS client to any remote
system from a Client Owning Region (COR). The COR must be a server that is
running CICS on AIX . In a completely distributed environment, work is routed
between CICS for Open System servers. In a more complex environment, work
is routed to other CICS systems, such as CICS for ESA. The CICS WLM utility
can manage the distribution of work to a remote system when an entry exists for
a CICS Communications Definition (CD) to represent the remote system.
CICS
for AIX
CICS
for AIX
AIX CICS
Client
AIX CICS
Client
AIX CICS
Client
CICS Application 1
CICS Application 1
CICS Application 1
CICS Application 2
CICS Application 2
CICS Application 2
CICS Application 3
CICS Application 3
CICS Application 3
CICS
for AIX
CICS
for AIX
CICS
for AIX
CICS for
AIX
AIX CICS
Client
WLM
AIX CICS
Client
processing the work that is required by the application that is running on Machine 1.
The cost of buying a larger machine is saved.
As a result of this restructuring, the applications that are running on Machines 2 and
3 are now available on more systems. If any of the CICS systems or machines fails,
all the applications are still available.
Note: Figure 1 on page 2 is using CICS for AIX to show the benefits of using CICS
WLM.
Note: Figure 2 is using CICS for AIX to show the relationship between CICS WLM
components.
(WCM) is associated with each of the local caches. The global cache that is
associated with the WAP is called the WAP cache, and the local cache that is
associated with each WCM is called a WCM cache.
All WCLs on a machine use the same WCM. Each of the WCMs operates
independently; therefore, no information about the performance of CICS servers is
exchanged through WCM-to-WCM communications.
The WCL functions internally; it requires no start or stop procedure to be performed
by the administrator.
10
11
Table 3 shows the objects that CICS WLM uses to represent these resources:
Table 3. Object models used by CICS WLM
Object
Description
Plex
SystemModel
SystemClone
SystemImage
A representation of a SystemClone on a
Node
Node
An individual machine
Connection
ResourceModel
Separation
Partition
The object model enables a single representation for an entity. This eliminates the
need to have multiple copies of an object. When a particular object (a program, for
example) is configured on more than one type of CICS system, a relationship is
established between the object and each of those CICS systems.
If a resource is required that has a difference of even one parameter from an
already-existing resource, another resource object must be created. The original
object continues to exist. Each of these resource objects has its own relationships.
It is possible that the two resource objects are configured on the same CICS
systems, but they represent different entities.
Objects in the CICS WLM object model can contain three properties:
v Attributes
v Relationships
v Contents
An attribute is a specific value, such as the response time that is associated with a
program object.
A relationship is an association between two object models. For example, a
SystemClone object has the relationship of installed_on with a Node object.
Relationships have a direction. For example, a SystemClone object is installed_on a
Node object, and not the other way round.
Note: This document describes the relationship only under the source objects
class. In the given example, the installed_on relationship is described under
the discussion on SystemClone objects; it is not repeated in the discussion
about Node objects. The SystemClone class owns the relationship, and
when defining objects in the configuration file, you define instances of a
relationship under the owning class.
Contents refers to other object types that are contained within this object type.
Some objects consist of a relationship to another object. Objects can also have
12
attributes. If the default value of an attribute is acceptable, you do not need to code
the value in your CICS WLM configuration file. Accepting the defaults can help
reduce the size of the file.
These three properties are discussed for each object model within the detailed
descriptions of the object.
Plex objects
A Plex is the highest-level grouping of CICS systems and resources for
administrative purposes. It can consist of the whole CICS configuration or only the
CICS systems that are serving one application. It is whatever is meaningful to your
environment. A Plex is sometimes referred to as a CICSplex. You can partition the
environment into several independent Plexes or one all-encompassing Plex.
Connections do not cross Plex boundaries, and work is not routed from one Plex to
another.
Attributes for Plex objects
A Plex has multiple attributes that represent the values that are fed into the
workload-balancing algorithm. Plex attributes probably need to be changed
only by IBM customer service personnel. Table 4 on page 14 shows
attributes and defaults for a Plex object.
Chapter 3. Describing the environment to CICS WLM utility
13
Default
Description
load_limit
600
connection_scale
same_limit_1
same_limit_2
10
same_adjustment
0.1
same_scale_1
same_scale_2
known_adjustment
0.05
known_scale_1
known_scale_2
normalise_scale
equal_delta
health_adjustment_1
health_adjustment_2
10
health_adjustment_3
100
health_timeout
120
score_limit
5,000
retry_limit
reselection_limit
wcm_resend_timeout
wcm_retry_timeout
10
wcm_retry_limit_1
wcm_retry_limit_2
wcm_fail_timeout
600
autoinstall_load
14
SystemClone
SystemImage
Node
ResourceModel
LocalProgramModel
RemoteProgramModel
LocalTransactionModel
RemoteTransactionModel
ApplicationModel
v Connection
v Separation
v Partition
SystemModel object
A SystemModel object represents a particular type of CICS region. For example,
you might have two SystemModel objects: one called AOR, which represents a
CICS Application Owning Region (AOR), and another, called COR, which
represents a CICS Client Owning Region (COR). The CICS systems that
correspond to a particular SystemModel entry are identical. Different SystemModel
entries have different CICS resources configured on them. So, a CICS system that
is of the type COR is different from one that is of the type AOR. For example,
CICS-to-CICS communication entries in the configuration file can differ for the AOR
SystemModel type and the COR SystemModel type. The communication entries for
the COR type have connections to all the AOR types; but it is possible that the AOR
SystemModel types have only one connection, which is to the COR type.
Attributes for SystemModel objects
SystemModel objects have no attribute values.
Relationships for SystemModel objects
SystemModel objects have a cloned_as relationship to SystemClone
objects.
Contents for SystemModel objects
SystemModel objects have no contents.
SystemClone objects
A SystemClone object represents a particular CICS system of one of the
SystemModel types. The SystemModel object represents the generic type of region;
a SystemClone object represents an individual CICS region.
Attributes for SystemClone objects
SystemClone objects have attribute values to describe the relative power of
the machine on which the CICS system is running, the maximum number of
application servers for the system, and the health of the CICS system.
Table 5 on page 16 shows attributes and defaults for a SystemClone object.
15
Default
Description
factor
maxServers
health
SystemImage objects
A SystemImage object is used to represent the presence of a SystemClone entry
on a particular machine or Node object. Although the SystemClone object has an
installed_on relationship to a Node object, the SystemImage is required by the
object model. Without it, the representation of a CICS system to CICS WLM is not
complete. For each CICS system, the SystemClone and SystemImage objects are
both required.
SystemImage objects have no attributes, relationships or contents.
Node objects
A Node object represents an individual host or SystemImage object on which CICS
systems can possibly be installed. The Node name must correspond to the fully
qualified host name, including the domain name; for example,
testlab125.company_name.com.
Node objects have no attributes, relationships, or contents.
Connection objects
A Connection object is used to represent communication links between CICS
systems. For work to be routed from one CICS system to another, a pair of
Connection objects must be defined. Each half of the Connection pair is associated
with a SystemClone object, which is the CICS system from which the connection is
defined. The two half-connections must be related to each other so that CICS WLM
can detect that both halves of the relationship are present and correct. A
relationship is defined from one half of the connection to its other half. The reverse
relationship does not need to be coded, because CICS WLM detects this. For
routing to occur through a Connection object, both halves of the Connections must
be defined as being in service. It is possible to set the InService attribute for one
half of the Connection to zero. In that case, work is not routed to the region
because the CICS WLM utility does not see a healthy communication path to it.
16
The entries that are made for Connection objects in the CICS WLM configuration
file do not replace or affect the CICS Communications Definitions (CD). The CICS
WLM utility uses the Connection object entries to build the internal object model.
Attributes for Connection objects
Connection objects have attribute values to describe the cost of
communicating over the Connection object relative to the cost of using
other Connection objects in the configuration, and to indicate whether the
Connection object is in service or not. Table 6 shows the attributes and
defaults for a Connection object.
Table 6. Attributes and defaults for a Connection object
Attribute
Default
Description
load
0.1
inService
ResourceModel objects
A ResourceModel object represents the CICS programs and transactions that can
be routed. Types of ResourceModel objects include:
v LocalProgramModel
v LocalTransactionModel
v RemoteProgramModel
v RemoteTransactionModel
v ApplicationModel
The same properties apply to the attributes, relationships, and contents for all the
types of ResourceModels. The following discussion first describes the
ResourceModel types; the discussion of the properties follows the descriptions of all
the types.
17
ApplicationModel objects
An ApplicationModel object is a grouping of CICS resources that are used on the
AIX platform for the workload management of CICS EPI requests when the CICS
EPI client is assigned to a particular application.
The ApplicationModel refers to a SystemModel object. The user of an application
has access to all the LocalTransactionModel resources that are configured on a
SystemModel object.
See Specifications for the Plex object on page 29 to review a sample configuration
file that contains most of the objects that are discussed in this chapter.
Attributes for all the types of ResourceModel objects
ResourceModel objects both have attributes that indicate the processing
cost of running the requested type of work. Table 7 shows the attributes and
defaults for a ResourceModel object.
Table 7. Attributes and defaults for a ResourceModel object
Attribute
Default
Description
load
0.25
dynamic
no
18
Relationship
Related Class
Description
configured_on
SystemClone (for
programs and
transactions)
configured_on
SystemModel (for an
ApplicationModel
only)
Separated_by
Separation
Separation objects
A Separation object is used to control a particular mode of data-dependent routing.
Separation objects group together several Partition objects. Data-dependent routing
is defined as the making of a decision to route a piece of work to a particular CICS
system based on data that is associated with the item of work. This is usually done
by looking at some portion of the CICS COMAREA.
Attributes for Separation objects
Separation objects have no attributes.
Relationships for Separation objects
Separation objects have no relationships.
Contents of Separation objects
Separation objects contain Partition objects.
Partition objects
A Partition object is used within a Separation object to specify a subset of
SystemClone objects that is to be used as potential destinations for data-dependent
routing.
Attributes for Partition objects
Partition objects have one attribute, which is user-supplied data. This data
is used within the data-dependent routing user exit.
Relationships for Partition objects
Partition objects have a separated_to relationship to SystemClone objects.
Contents of Partition objects
Partition objects have no contents.
19
20
21
v How each machine is to participate in the environment; that is, will it be issuing
requests, routing requests, or processing requests?
v Which components of CICS WLM, if any, need to be installed on the machines to
enable their participation in the environment? (The components of CICS WLM
are discussed in Chapter 2, Components of WLM, on page 5.)
Examples of CICS environments shows examples of how CICS WLM can be
implemented in frequently occurring sample environments.
The environment
The clients are CICS for Windows Clients that are issuing a series of CICS ECI
calls to several CICS for AIX servers. The application code runs on all the servers.
All the data that is required for the CICS applications is available within the CICS
region. Therefore, a client can route an ECI request to any of the CICS for AIX
servers and have access to both the application and the required data. In this case,
the applications are running in a CICS for AIX server; however, the same
configuration can be used with other CICS on Open Systems servers.
22
The environment
The clients are cicslterm processes that issue transaction requests or ECI/EPI
requests via CICS Universal Clients and the CICS Transaction Gateway to several
CICS for AIX servers. The application code runs on the servers. All the CICS
servers have a connection to a database system, which is located on another
machine. All the applications are available on all the CICS servers. Therefore, a
client can issue a transaction request that can be run on any of the CICS servers
and have access to both the application and required data.
23
The WAP and the HMON components must be located on the same machine. One
instance of each of these components exists. An HMON is automatically associated
with a WAP. Its use is optional. You specify only the location of the WAP; this is
done in the WAP configuration file, cicssm.config. The other components are
placed onto a machine by using the cicswlm start command to start a component.
How to specify the location of the WAP is discussed in Performing the initial
configuration on page 34. Use of the cicswlm start command is discussed in
Chapter 6, Starting CICS WLM for the first time, on page 39.
The WCM and the WCL must also be located on the same machine. One or more
instances of these components can exist, depending on the configuration in which
WLM is being implemented. Also, more than one type of workload management can
24
be occurring within a CICS configuration. The cicswlm start command places the
WCM onto a machine. The installation of the WCL is automatic.
The RMON is placed with each WCM. Running the cicswlm start rmon command
on the machine places the RMON onto that machine.
Before deciding where to place components, you need to define your system
architecture based on the applications, the data that is accessed, and the types of
CICS clients that are being used. You can be fitting workload management to an
existing CICS configuration, or you can be designing a new system into which CICS
WLM is to be implemented. It is possible to implement CICS WLM without changing
existing applications.
CICS WLM-supplied user exits are installed on any machine that acts as a routing
point within the CICS WLM configuration. When you have decided on the location
and type of routing points (CORs) in your configuration, you can easily identify the
machines on which the CICS WLM components need to be installed.
Note: CICS WLM components need to be installed only on a machine in the
configuration that is either a routing point or the WAP location. If you locate
the WAP and the HMON on either the same machine as is one of the routing
points, or on their own machine, you do not need to install any CICS WLM
component on the AOR machines to which work is to be routed.
25
26
27
v A value that identifies how many application servers are available in a CICS
system.
v The relative cost of communicating with a remote system for each CICS
Communications Definition (CD) within CICS WLM. For example, if access to one
server is over a fast communication link, while access to another server is over a
slow communications link, and other considerations are equal, the server that is
using the fast communications link is chosen.
v A value for the status of a CD. For example, it can determine whether a link is
active.
v The processing load weight that is associated with running a program or a
transaction. The load weight is determined by estimating the response time for a
work request. This estimate corresponds to the measure of the amount of
processing that the server must expend to complete the request.
It is possible to create multiple files and have CICS WLM run the most-appropriate
one for the current condition. For example, you can have one file that describes the
full configuration, and other files that omit one or more CICS systems. You can
exclude a CICS system temporarily while it is having maintenance.
CICS WLM can operate only with the CICS resources that you define to it in the
configuration file. The configuration file must define the existence and relationships
between programs and regions that the CICS WLM will manage. Customize this file
to reflect the CICS regions and any CICS Communications Definitions (CD) in your
environment as instances of SystemModel, SystemClone, Connection, and Node
objects.
The series of Resource Definitions (RD) that you define describe the resources that
can be routed. This is done by using LocalProgramModel, RemoteProgramModel,
LocalTransactionModel, and RemoteTransactionModel objects. For each of these
resource types, you specify an expected load, or response time, for the program or
transaction, and for the SystemModel object on which it is configured.
In an environment that has a Client Owning Region (COR) and one or more
Application Owning Regions (AORs), you have a CICS remote program or
Transaction Definition (TD) in the COR. You must specify a remote system in the
RD. The remote system that is named in the RD forms the default system to which
requests for running that resource are directed when CICS WLM cannot make a
routing decision. In CICS WLM, such a resource is defined by a
RemoteProgramModel or RemoteTransactionModel object. You can successfully
implement workload management without adding these remote resource entries to
the CICS WLM configuration file; however, you can do so for completeness.
Also, a series of definitions can exist that correspond to the CICS WLM algorithm.
Allow these definitions to default until you have performance statistics from your
environment. The example in Sample configuration file (wlm.cfg) on page 29
shows a configuration file in which the algorithm attributes are allowed to default.
The Routing Test example file in Configuration file for Routing Test sample code
on page 64 shows a configuration file in which the algorithm attributes are specified
for the Plex. This example shows the Plex attributes in Section 9.
Specifications for the Plex object on page 29 describes the CICS system that is
being defined as the Plex object cpx1 for CICS WLM. Sample configuration file
(wlm.cfg) on page 29 shows the configuration file that describes this object. See
28
Verifying and loading the configuration file on page 33 for a discussion about
verifying this file, and see Loading the configuration file on page 42 for information
about loading this file.
29
Section 4: The Connection objects from the COR to each of the AORs are
predeclared.
The name that is used for the Connection object must match the one that is
used in the CICS Communications Definition (CD) to define the actual
connection to the AOR.
SystemClones.CICSCOR/Connections.AOR1;
SystemClones.CICSCOR/Connections.AOR2;
Section 5: The Connection objects from each of the AORs back to COR are
predeclared.
The name that is used for the Connection object must match the one that is
used in the CICS Communications Definition (CD) to define the actual
connection to the COR.
SystemClones.CICSAOR1/Connections.COR1;
SystemClones.CICSAOR2/Connections.COR1;
Section 10: The Relationships of the AOR SystemModel object are defined.
The AOR SystemModel object is related to the two SystemClone objects
that are of the AOR type: CICSAOR1 and CICSAOR2. Note that two
30
instances of the AOR SystemModel objects exist. Compare this with the
single instance of the COR SystemModel object.
SystemModels.AOR
{
cloned_as ->
{
SystemClones.CICSAOR1,
SystemClones.CICSAOR2
};
}
Section 11: The attributes of the CICSCOR SystemClone object are specified.
The relationship is also declared to specify the machine on which this
SystemClone object is located.
SystemClones.CICSCOR
{
factor=1.0;
maxServers=10;
health=1;
installed_on -> Nodes."machine1.acme.com";
}
31
Section 17: The SystemImage objects are assigned to the Nodes where they
are to run.
There are no characteristics to specify; therefore, the entries are minimal.
Nodes."machine1.acme.com/SystemImages.CICSCOR"
{
}
Nodes."machine2.acme.com/SystemImages.CICSAOR1"
{
}
Nodes."machine3.acme.com/SystemImages.CICSAOR2"
{
}
32
LocalProgramModels.APPLN3
{
load=0.9;
dynamic="yes";
configured_on -> SystemModels.AOR;
}
Section 20: The Plex definition is completed with the closing brace ( } ).
End the definition of Plex cpx1.
}
where:
v wap_name is an identifier you give to the WAP
v wap_host is the name of the host where the WAP is to run
v wap_port is the TCP/IP port used for communicating to the WAP. This port can
be any number that is not currently in use.
33
Check your /etc/services file to find an available port. You can then add the
allocated port number to the /etc/services file to ensure that others do not use it
by mistake. An example entry follows:
wap
wap1
machinex.company_name.com 9010
See Initialization file for Routing Test sample code on page 64 to review the file
cicssm.config that is used for the example WLM configuration.
34
See the TXSeries for Multiplatforms Administration Guide for information about how
to perform these steps. See CICS setup on page 48 to review the discussion on
the CICS system setup for the Routing Test example code.
In addition, for CICS WLM to function, the following facilities must be added:
v IP Listener Definitions to TCP communications ports are needed.
v X terminal is required for use of the Routing Monitor (RMON). On the AIX
platform, AIX terminal window capability can be used for the RMON.
v
A Remote Procedure Call-based (RPC-based) CICS EPI client is required for use
of the Health Monitor (HMON).
v CICS definition modifications to the COR server and the AOR servers are
required.
v User exits (supplied by CICS WLM) must be established. See Setting up CICS
WLM user exits on page 36 for information about this topic.
The specific CICS definitions that require modification depend on your
implementation of CICS WLM. The examples that are used in this document show
the following CICS definition modifications for the COR and the AORs:
v Listener Definitions (LD)
Communications Definitions (CD)
Transaction Definitions (TD)
Program Definitions (PD)
LocalSysId
WLM-provided user exits
User Exits (supplied by CICS WLM) must be set up on client machines or on
your COR.
v Needed modifications must be made to the following CICS definitions for the
COR and the Application Owning Regions (AORs):
Listener Definitions (LD)
Communications Definitions (CD)
Transaction Definitions (TD)
Program Definitions (PD)
LocalSysId
WLM-provided User Exits
v
v
v
v
v
v
See Configuring CICSA (the COR) on page 50 and Configuring CICSB and
CICSC (the AORs) on page 51 for examples of these definition declarations.
35
The local Resource Definition in the AOR must have a valid path name that points
to the executable file for the program. This must be the same executable file on all
regions that are defined as SystemClones to WLM. The remote system field must
also be left blank.
See Configuring CICSB and CICSC (the AORs) on page 51 for examples of
implementations of these definitions.
v
When BHGDPL and BHGDPLSP have been configured and are in effect, CICS
WLM is called each time that an EXEC CICS LINK call is made. The subject of an
EXEC CICS LINK call must be defined to CICS for that call to succeed. If the call is
to be handled by CICS WLM, it must also be defined to CICS WLM through the
configuration file.
Note: A remote program is not a valid target for a DPL routing request. CICS WLM
does not permit chained DPL requests. When a DPL request has been
routed to a particular CICS region, all other requests within that same unit of
work are routed to the same location.
See Configuring CICSA (the COR) on page 50 for a configuration for the Routing
Test example code.
36
Note: It is possible that environment variables need to be set for your DPL work
requests to match customized names in your definition for your CICS WLM
environment. See Before you start the CICS WLM on page 39 for
information about setting these environment variables.
v
Note: Entries must be made in the Transaction Definitions (TD) file to specify the
values for the RemoteName and ProgName attributes when DTR work
requests are included for routing the CICS WLM utility.
See Configuring CICSA (the COR) on page 50 for a configuration for the Routing
Test example code.
Note: It is possible that environment variables need to be set for your DTR work
requests to match customized names in your definition for your CICS WLM
environment. See Before you start the CICS WLM on page 39 for
information on setting these environment variables.
By setting this environment variable, you enable the COR to access the resources
that are associated with the ApplicationModel named payroll.
37
Defining an ApplicationModel
An ApplicationModel is defined by using a predeclaration that is followed by a full
declaration. The predeclaration is placed into the configuration file with the other
ResourceModel predeclarations. The syntax for the predeclaration is shown in the
following example:
ApplicationsModels.<application_model_name>;
where <load_value> is the response time (load) that is associated with the
application, and <system_model_name> is the name of the SystemModel object on
which the application is defined. Implicitly, all transactions that are defined on the
SystemModel object are available to the associated ApplicationModel object.
In this example,
38
In this example, cicsplexname is the name that you assigned to your Plex object
in the object model configuration file, wlm.cfg. The xxx represents an arbitrary
Copyright IBM Corp. 1999, 2008
39
v
v
v
v
v
group name that you select. It is possible to have multiple groups. If the default
Plex name cpx1 is used, these variables are not set.
Ensure that your customized CICS WLM initialization file /var/cicssm/repos/
cicssm.config is located on all machines on which CICS WLM components are
to run. This is discussed in Performing the initial configuration on page 34. (The
customization of this file is discussed in Customizing the initialization file on
page 33.)
Ensure that you have a working configuration in which DPL or DTR requests can
be successfully performed.
If CICS ECI or EPI client routing is to be enabled, ensure that the CICS
WLM-supplied user exits are installed and configured for the COR, and that the
BHG_WCL_APPLICATION environment variable is set to an appropriate value in
the environment file of the COR.
Ensure that the CICS exits are active when CICS is cold started. View the
console file in /var/cics_regions/region_name/ to verify that the CICS exits are
active.
Use the CRTE transaction to check whether it is possible to route requests
between all the required points.
Check whether the applications and all their required resources are available on
all the required CICS systems.
Perform static routing requests and verify that they complete as expected.
40
In the following sections, assume that a WAP has been defined with the name
wap1, and that the CICS WLM configuration is defined in the file
/var/cicssm/repos/wlm.cfg.
Starting a WAP
To start a WAP, follow these steps:
1. Authenticate as the user cicssm on the machine that is specified as the
location of the WAP.
2. Issue the command:
cicswlm start wap wap1
You can check for the presence of the WAP by issuing the command cicswlm list.
Note: Simply starting a WAP does not enable workload management. A
configuration must also be loaded into the WAP cache. See Loading the
configuration file on page 42 for more information.
Starting a WCM
To start a WCM, follow these steps:
v Authenticate as the user cicssm on the machine that is to have a WCM started.
v Issue the command:
cicswlm start wcm wap1
You can check for the presence of the WCM by issuing the command cicswlm list.
When it is started, a WCM attempts to connect to the WAP. If the WAP is not
started, the WCM attempts again to make the connection. After several attempts it
ceases retrying. In such a case: stop the WCM; start the WAP, then restart the
WCM.
Note: Plex parameters control the number of connection attempts and timeout
periods when a WCM attempts to connect to a WAP. See Specifications for
the Plex object on page 29 for more details.
No checks are available to ensure that the machine names or CICS resource
names given in the configuration file actually exist. The purpose of the file parsing is
to ensure that the syntax of the file is correct and that no references exist to
undefined entries within the file. Any errors are displayed to the screen as the
standard output stream.
Chapter 6. Starting CICS WLM for the first time
41
Initially, the WAP and all WCM caches are empty. Data is explicitly loaded into only
the WAP cache. This is done by using the cicswlm load command. The WCM is in
communication with the WAP, and data is supplied to the WCM from the WAP on
an as-needed basis. This approach minimizes the amount of transmitted data and
avoids immediately supplying the whole configuration where it possibly is not
needed.
The first time a configuration is loaded, all the information is passed to the WLM
application. Subsequently, when a configuration is loaded, its contents are
compared with those previously supplied to WLM. Differences are forwarded by the
WLM application to the WLM cache managers to ensure that their information is
up-to-date. A small change in the configuration file results in only a small update to
the WLM application, reducing the amount of data that needs to be passed to the
WCMs.
For example, suppose you want to tell WLM that you are taking a particular
SystemClone offline. If the system is to be removed permanently, remove the entry
for the SystemClone from the configuration file. However, if this is a temporary
shutdown, just reset the value of the systems health attribute to 3, indicating its
unavailability. In either case, WLM will not route work to the system until it is
restored. Optionally, you can change the health attribute of the Connection between
the two systems. This method can be appropriate if you want to stop work from
being routed from one particular system to another.
42
43
44
While the HMON is active, it overrides any health values that are assigned to CICS
regions in the configuration file wlm.cfg. If you have set the health value of a
system to nonfunctioning, and HMON detects that it is active, HMON overrides the
configuration setting. If you want to run the system with the settings that are
registered in the configuration file wlm.cfg, HMON must not be active.
To force a particular health value for a CICS region, you must stop HMON and load
a CICS WLM configuration file that has the appropriate health value assigned. The
HMON must remain inactive during this process; therefore, the dynamic health
monitoring for the other CICS regions is no longer taking place either. Two ways
that are more advisable are available to stop routing to the region. In the CICS
WLM configuration file, either set one half of the connection to that system as being
down, or remove the CICS region.
Alternatively, the loss of a region can be detected by your system management tool.
In that case, the system management tool updates the CICS WLM configuration file
with a new health value for the affected CICS region and reloads the CICS WLM
configuration file. The updated health value is read and used in subsequent routing
decisions. This method is more complicated, but enables the use of the monitoring
component of your current systems management. This method is useful when the
loss of a region is required to trigger multiple events and your systems
management tool can do this.
Note: The Health Monitor cannot be used to monitor the health of Windows
machines. To monitor the health of a Windows machine, create a series of
configuration files in which edited values control the availability of servers.
45
To terminate the display, close the X terminal window, or use the PF3 key.
See Appendix B, Routing Monitor displays, on page 103 for examples of screens
that the RMON displays, and a discussion about the information that they contain.
46
47
v A program that tests the routing of ECI requests. This program posts a message
in the CICS COMMAREA of the system that issues that program call; the posted
message identifies the system on which the program ran. The linked program is
known as called.
v A program that tests the routing of EPI requests. It generates a transaction that
returns a message to the screen; the message names the CICS system in which
the transaction ran. The transaction that is used is named WLMT and is
associated with a program that is known as wlmt. Both the program and
transaction are configured to run in CICSB and CICSC.
This sample environment can be constructed over a single machine or multiple
machines. For simplicity, a single machine is suggested. Ensure that the machine
has enough CPU and memory to support three running CICS systems, a Structured
File Server (SFS) server, and the CICS WLM components. The CICS WLM
components take little additional CPU. If the machine you have chosen can support
the necessary CICS regions and SFS server, it is an adequate environment.
A single CICS WLM Workload Management application cache (WAP) and a single
Workload Cache Manager (WCM) exist in this sample environment. These
components are on the same machine as that on which are the CICS regions.
This sample environment is assumed to have the following configuration:
v The SFS is named /.:/cics/sfs/wlmtest.
v
The CICS environment uses Remote Procedure Call-only (RPC-only).
v CICSA, CICSB, and CICSC are all implemented on a machine (Node) that is
called wlmtest.
v Each CICS region has one CICS IP listener defined. These listeners operate on
the following TCP ports: 1435 for CICSA, 1436 for CICSB, and 1437 for CICSC.
v Service names are allocated for these ports in the /etc/services file:
cicstcp1 for port 1435
cicstcp2 for port 1436
cicstcp3 for port 1437
Table 9 shows the communication information for the sample environment.
Table 9. Communication information for the sample environment
CICS Region
TCP Port
CICSA
1435
cicstcp1
CICSB
1436
cicstcp2
CICSC
1437
cicstcp3
CICS setup
The following steps are needed for the building of a suitable CICS environment:
1. Create the necessary CICS systems.
2. Prepare the CICS application programs for use.
3. Configure the necessary resources on those CICS regions.
48
49
3. Ensure the environment variables are correctly set. See Before you start the
CICS WLM on page 39 for discussion on these variables.
4. Ensure the BHG_WCL_APPLICATION environment variable and other variables
are correctly set. To run the sample program that is discussed in the chapter,
the variable must be set as follows:
BHG_WCL_APPLICATION="Appl1"
50
PathName=install_dir/cicssm/bin/bhgdplsp /
PathName=install_dir/cicssm/bin/bhgdtr /
This command adds the same CD definition for CICSB and CICSC:
cicsadd -c cd -r CICSB B1 ConnectionType=cics_tcp RemoteLUName=CICSA /
ListenerName=LD01 RemoteTCPAddress=wlmtest RemoteTCPPort=1435
cicsadd -c cd -r CICSC B1 ConnectionType=cics_tcp RemoteLUName=CICSA /
ListenerName=LD01 RemoteTCPAddress=wlmtest RemoteTCPPort=1435
This command adds the same definition for called for CICSB and CICSC:
cicsadd -c pd -r CICSB CALLED PathName="install_dirp/cicssm/samples/called" /
RSLKey=public
cicsadd -c pd -r CICSC CALLED PathName="install_dir/cicssm/samples/called" /
RSLKey=public
This command adds a LocalSysId of CICB for CICSB and a LocalSysID of CICC for
CICSC:
51
v Create wlm.cfg, a CICS WLM configuration file that defines the object model.
This file should look like the one that is given in Configuration file for Routing
Test sample code on page 64. Ensure that the machine name supplied is the
fully qualified host name, including the domain name, for example,
testlab125.company_name.com.
v Perform the verification:
1. Authenticate as the user cicssm.
2. Issue the command:
cicswlm verify wlm.cfg
The CICS WLM configuration is created, and the verification is complete. Now, you
can start CICS WLM, and load the CICS WLM configuration file.
6. Ensure that the COMM field contains a message indicating that the program ran
in system CICSB on completion.
52
c. Observe the message that is returned in the COMM field. This message
indicates the CICS region in which the program ran. The value is either
CICSB or CICSC, depending on the LocalSysId of the region to which the
request was routed.
8. The procedure for running an EPI request is as follows:
a. Change to the directory in which the compiled programs mentioned above
are located.
b. Issue the command:
cicsepiwlm
c. Observe the message that is returned in the COMM field. This message
indicates the CICS region in which the program ran. The value is either
CICSB or CICSC, depending on the LocalSysId of the region to which the
request was routed.
All the required CICS regions and the components of CICS WLM are started. Now,
you can issue routing requests.
53
3. Observe the message that is returned in the COMM field. This message
indicates the CICS region in which the program ran. The value is either CICSB or
CICSC, depending on the LocalSysId of the region to which the request was
routed.
To run a DTR request:
1. Start a cicslterm window and access the CICSA system.
2. Issue the WLMT transaction
3. Observe the message that is returned. This message indicates the CICS region
on which the transaction ran. The value is either CICSB or CICSC, depending on
the LocalSysId of the region to which the request was routed.
To run an ECI request:
1. Change to the directory in which the program is located.
2. Issue the following command several times and compare the output:
cicseciwlm
3. Observe the message that is returned in the COMM field. This message
indicates the CICS region in which the program ran. The value is either CICSB or
CICSC, depending on the LocalSysId of the region to which the request was
routed.
To run an EPI request:
1. Change to the directory in which the program is located.
2. Issue the following command several times and compare the output:
cicsepiwlm
3. Observe the message that is returned in the COMM field. This message
indicates the CICS region in which the program ran. The value is either CICSB or
CICSC, depending on the LocalSysId of the region to which the request was
routed.
54
55
msg_size = strlen(msg);
EXEC CICS SEND FROM(msg) LENGTH(msg_size);
EXEC CICS RETURN;
}
30
/*
* Global Variables
*/
ECI_PARMS
EciParms;
char
Server[9] = "CICSA";
char
UserID[9] = "CICSUSER";
char
Program[9] = "CALLED";
char
PassWd[9] = "";
/* FILL
/*
* Function Prototypes
*/
int
main
void
EciSync
void
Response
FILL
FILL
FILL
YOUR
/*
* main() - Sample Entry Point
*/
int main(int argC, char **argV)
{
puts("ECI Sample Program\n");
puts("------------------\n\n");
/*
* Pick up the locale from the environment
*/
(void)setlocale(LC_ALL,"");
if (argC < 2)
56
/*
/*
/*
IN
*/
*/
*/
{
printf("Region name must be supplied");
exit(1);
}
else
{
strncpy (Server, argV[1], 8);
if (argC > 2)
{
strncpy (Program, argV[2], 8);
}
}
printf("Using Server: [%s], Program: [%s]\n", Server, Program);
/*
* Make a syncronous link call
*/
EciSync();
} /* main */
/*
* EciSync
*
* Issue a CICS_Externalcall for an ECI_SYNC link
*/
void EciSync(void)
{
char
*Name = "ECI_SYNC";
short
Rc;
char
CommArea [COMMAREA_SIZE];
printf ("\n%s test\n", Name);
memset (CommArea, \0, COMMAREA_SIZE);
strcpy (CommArea, "
");
memset (&EciParms, 0, sizeof (ECI_PARMS));
EciParms.eci_version
EciParms.eci_call_type
memcpy(&EciParms.eci_program_name, Program,
memcpy(&EciParms.eci_userid,
UserID,
memcpy(&EciParms.eci_password,
PassWd,
memcpy(&EciParms.eci_system_name, Server,
EciParms.eci_commarea
EciParms.eci_commarea_length
EciParms.eci_extend_mode
EciParms.eci_luw_token
EciParms.eci_timeout
= ECI_VERSION_1A;
= ECI_SYNC;
8);
8);
8);
8);
= CommArea;
= COMMAREA_SIZE;
= ECI_NO_EXTEND;
= ECI_LUW_NEW;
= 0;
Rc = CICS_ExternalCall (&EciParms);
Response(Name, Rc, EciParms.eci_abend_code);
if (Rc == ECI_NO_ERROR)
{
CommArea[(COMMAREA_SIZE-1)] = \0;
printf ("CommArea Returned: %s\n", CommArea);
} /* endif */
printf ("%s test complete\n\n", Name);
return;
} /* EciSync */
/*
* Response
Chapter 8. Creating a simple routing environment
57
*
* Display the immediate response code from an ECI call
*
*/
void Response(char *Call, short Rc, char *Abend)
{
char
*p;
switch (Rc)
{
case ECI_NO_ERROR:
p = "ECI_NO_ERROR
";break;
case ECI_ERR_INVALID_DATA_LENGTH:
p = "ECI_ERR_INVALID_DATA_LENGTH";break;
case ECI_ERR_INVALID_EXTEND_MODE:
p = "ECI_ERR_INVALID_EXTEND_MODE";break;
case ECI_ERR_NO_CICS:
p = "ECI_ERR_NO_CICS
";break;
case ECI_ERR_CICS_DIED:
p = "ECI_ERR_CICS_DIED
";break;
case ECI_ERR_REQUEST_TIMEOUT:
p = "ECI_ERR_REQUEST_TIMEOUT
";break;
case ECI_ERR_RESPONSE_TIMEOUT:
p = "ECI_ERR_RESPONSE_TIMEOUT
";break;
case ECI_ERR_TRANSACTION_ABEND:
p = "ECI_ERR_TRANSACTION_ABEND ";break;
case ECI_ERR_EXEC_NOT_RESIDENT:
p = "ECI_ERR_EXEC_NOT_RESIDENT ";break;
case ECI_ERR_SYSTEM_ERROR:
p = "ECI_ERR_SYSTEM_ERROR
";break;
case ECI_ERR_NULL_WIN_HANDLE:
p = "ECI_ERR_NULL_WIN_HANDLE
";break;
case ECI_ERR_NULL_MESSAGE_ID:
p = "ECI_ERR_NULL_MESSAGE_ID
";break;
case ECI_ERR_THREAD_CREATE_ERROR:
p = "ECI_ERR_THREAD_CREATE_ERROR";break;
case ECI_ERR_INVALID_CALL_TYPE:
p = "ECI_ERR_INVALID_CALL_TYPE ";break;
case ECI_ERR_ALREADY_ACTIVE:
p = "ECI_ERR_ALREADY_ACTIVE
";break;
case ECI_ERR_RESOURCE_SHORTAGE:
p = "ECI_ERR_RESOURCE_SHORTAGE ";break;
case ECI_ERR_NO_SESSIONS:
p = "ECI_ERR_NO_SESSIONS
";break;
case ECI_ERR_NULL_SEM_HANDLE:
p = "ECI_ERR_NULL_SEM_HANDLE
";break;
case ECI_ERR_INVALID_DATA_AREA:
p = "ECI_ERR_INVALID_DATA_AREA ";break;
case ECI_ERR_INVALID_VERSION:
p = "ECI_ERR_INVALID_VERSION
";break;
case ECI_ERR_UNKNOWN_SERVER:
p = "ECI_ERR_UNKNOWN_SERVER
";break;
case ECI_ERR_CALL_FROM_CALLBACK:
p = "ECI_ERR_CALL_FROM_CALLBACK ";break;
case ECI_ERR_MORE_SYSTEMS:
p = "ECI_ERR_MORE_SYSTEMS
";break;
case ECI_ERR_NO_SYSTEMS:
p = "ECI_ERR_NO_SYSTEMS
";break;
case ECI_ERR_SECURITY_ERROR:
p = "ECI_ERR_SECURITY_ERROR
";break;
case ECI_ERR_MAX_SYSTEMS:
p = "ECI_ERR_MAX_SYSTEMS
";break;
case ECI_ERR_MAX_SESSIONS:
p = "ECI_ERR_MAX_SESSIONS
";break;
case ECI_ERR_ROLLEDBACK:
p = "ECI_ERR_ROLLEDBACK
";break;
default:
58
{
p = "!!!Unknown!!!";
printf ("Unknown Return Code : %d\n", Rc);
} /* endcase */
break;
} /* endswitch */
printf ("%s returned: %s\n", Call, p);
if (Rc != ECI_NO_ERROR)
{
printf("Abend code was \"%4.4s\"\n", Abend);
} /* endif */
return;
} /* Response */
59
pthread_mutex_t Mutex;
cics_bool_t TranEnd_Flag = FALSE;
cics_bool_t TermEnd_Flag = FALSE;
/*********************************************************************/
/* ErrorExit() - Report errors and exit
*/
/* This function is called to report serious and unexpected EPI */
/* errors. It will then terminate the program.
*/
/*********************************************************************/
void ErrorExit(cics_char_t *Function, cics_sshort_t Rc, cics_ushort_t
TermIndex);
{
CICS_EpiSysError_t SysErr;
/* Receives EPI error info. */
fprintf(stderr, "%s() call failed ", Function);
if (Rc != CICS_EPI_ERR_FAILED)
{
fprintf(stderr, "with return code: %d\n", Rc);
}
else
{
CICS_EpiGetSysError(TermIndex, SysErr);
fprintf(stderr, "with a system error.\n");
fprintf(stderr, "Cause: %u, Error: %u, Message: %s\n",
SysErr.Cause, SysErr.Value,
(SysErr.Msg != NULL) ? SysErr.Msg : ">");
}
exit(1);
}
/*********************************************************************/
/* EventThread() - Event processing thread
*/
/* This function is run in a secondary thread and handles all the
*/
/* EPI event processing for the program. It calls CICS_EpiGetEvent()*/
/* in blocking mode to wait for the arrival of EPI events.
*/
/*********************************************************************/
void *EventThread(void *Parm)
{
cics_sshort_t Rc;
cics_ushort_t TermIndex;
/* Installed TermIndex */
CICS_EpiEventData_t EventData;
/* Receives EPI event details*/
cics_ubyte_t Data[200];
/* Receives event data */
TermIndex = *((cics_ushort_t *)Parm);
/*********************************************************************/
* This thread runs in a loop receiving and processing events until
* the final CICS_EPI_EVENT_END_TERM is received.
*/
/*********************************************************************/
do
{
/*********************************************************************/
/*
* Wait for next event.
/*********************************************************************/
EventData.Data = Data;
/* Point to space for any */
EventData.Size = sizeof(Data); /* incoming datastream */
Rc = CICS_EpiGetEvent(TermIndex,
CICS_EPI_WAIT, /* Wait for next event */
EventData);
/*********************************************************************/
*Return codes of CICS_EPI_NORMAL and CICS_EPI_ERR_MORE_EVENTS
*both mean the function completed successfully
*and obtained an EPI event.
/*********************************************************************/
if (Rc == CICS_EPI_NORMAL || Rc == CICS_EPI_ERR_MORE_EVENTS)
{
switch (EventData.Event)
{
/*********************************************************************/
* ENDTERMINAL: Nothing needs to be done here. The event
* processing loop will end.
60
/*********************************************************************/
case CICS_EPI_EVENT_END_TERM:
break;
/*********************************************************************/
* SEND: Display the data received from a transaction.
/*********************************************************************/
case CICS_EPI_EVENT_SEND:
DisplayData(EventData.Data, EventData.Size);
break;
/*********************************************************************/
* ENDTRAN: Signal the "TranEnded" condition variable to tell
*
the main thread to proceed.
/*********************************************************************/
case CICS_EPI_EVENT_END_TRAN:
pthread_mutex_lock(Mutex);
TranEnd_Flag = TRUE;
pthread_cond_signal(TranEnded);
pthread_mutex_unlock(Mutex);
break;
/*********************************************************************/
* Display a warning for unexpected events.
/*********************************************************************/
default:
printf("Unexpected event received (%d)\n", EventData.Event);
break;
}
}
else
{
ErrorExit("CICS_EpiGetEvent", Rc, TermIndex);
}
} while (EventData.Event != CICS_EPI_EVENT_END_TERM);
/*********************************************************************/
* Drop through to here when the terminal has ended. Display a
* message if the terminal ended for an unexpected reason and
* signal the "TermEnded" condition variable to tell the main thread
* to exit.
/*********************************************************************/
switch (EventData.EndReason)
{
case CICS_EPI_END_SIGNOFF:
break;
/* This is what we expect
*/
case CICS_EPI_END_FAILED:
printf("Terminal Delete ABENDed (\"%s\")\n", EventData.AbendCode);
break;
default:
printf("Unexpected terminal end (%d)\n", EventData.EndReason);
break;
}
pthread_mutex_lock(Mutex);
TermEnd_Flag = TRUE;
pthread_cond_signal(TermEnded);
pthread_mutex_unlock(Mutex);
return;
}
/*********************************************************************/
/* DisplayData() - Show data sent from a transaction
*/
/* This function will display the data sent to the EPI from a CICS
*/
/* transaction. The first two bytes of the data are a 3270 command */
/* byte and the 3270 WCC, these are ignored.
*/
/*********************************************************************/
void DisplayData(cics_ubyte_t *Data, cics_ushort_t Size)
{
cics_ushort_t Index;
/* Loop counter */
if (Size > 0)
{
Chapter 8. Creating a simple routing environment
61
62
Rc = CICS_EpiAddTerminal(NULL,
/* No Namespace needed */
argv[1],
/* Use region specified */
NULL,
/* Autoinstall the terminal */
"hft",
/* High function terminal*/
NULL,
/* No event notification */
NULL,
/* TermDetails not needed */
TermIndex); /*Receives new TermIndex */
if (Rc != CICS_EPI_NORMAL)
{
ErrorExit("CICS_EpiAddTerminal", Rc, CICS_EPI_TERM_INDEX_NONE);
}
/*********************************************************************/
* Once the terminal is installed start up the secondary event
* processing thread. If this fails just terminate the EPI and exit.
/*********************************************************************/
if (pthread_create(Thread, pthread_attr_default,
EventThread, TermIndex) == -1)
{
fprintf(stderr, "Cannot start event processing thread.\n");
Rc = CICS_EpiTerminate();
exit(1);
}
/*********************************************************************/
* Submit the WLMT transaction and wait for it to complete. This is
* done by waiting on the "TranEnded" condition variable, signalled
* by the event thread. Some initial 3270 data must be provided so
* use the DUMMY_DATA.
/*********************************************************************/
Rc = CICS_EpiStartTran(TermIndex,
Transaction,
DUMMY_DATA,
sizeof(DUMMY_DATA)-1);
if (Rc != CICS_EPI_NORMAL)
{
ErrorExit("CICS_EpiStartTran", Rc, TermIndex);
}
pthread_mutex_lock(Mutex);
while (!TranEnd_Flag)
{
pthread_cond_wait(TranEnded, Mutex);
}
pthread_mutex_unlock(Mutex);
/*********************************************************************/
* The transaction has finished. The terminal is now deleted and the
* "TermEnded" condition variable used to wait for deletion to
* complete.
/*********************************************************************/
Rc = CICS_EpiDelTerminal(TermIndex);
if (Rc != CICS_EPI_NORMAL)
{
ErrorExit("CICS_EpiDelTerminal", Rc, TermIndex);
}
pthread_mutex_lock(Mutex);
while (!TermEnd_Flag)
{
pthread_cond_wait(TermEnded, Mutex);
}
pthread_mutex_unlock(Mutex);
/*********************************************************************/
Chapter 8. Creating a simple routing environment
63
wap1
wlmtest
9123
64
system and an Application Owning Region (AOR) system. (All the contents
of the active configuration of this Plex are predeclared.)
SystemModels.TYPE1;
SystemModels.TYPE2;
Section 4: The Connection objects from the COR to each of the AORs are
predeclared.
SystemClones.CICSA/Connections.B1; SystemClones.CICSA/Connections.B2;
Section 5: The Connection objects from the AORs back to the COR are
predeclared.
SystemClones.CICSB/Connections.B1;
SystemClones.CICSC/Connections.B1;
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
600.0
;
1.0
;
5
;
10
;
0.0
;
0.0
;
0.05
;
0.0
;
0.0
;
0.00833
;
0.0001
;
0.0
;
10.0
;
100.0
;
120.0
;
5000.0
;
2
;
2
;
1.0
;
10.0
;
5
;
1
;
600.0
;
3.0
;
65
SystemModels.TYPE1
{
cloned_as -> SystemClones.CICSA;
}
Section 12: The attributes of the CICSA SystemClone object are specified.
SystemClones.CICSA
{
factor=1.0;
maxServers=5;
health=1;
installed_on -> Nodes."wlmtest.acme.com";
}
Section 13: The attributes of the CICSB SystemClone object are specified.
SystemClones.CICSB
{
factor=1.0;
maxServers=5;
health=1;
installed_on -> Nodes."wlmtest.acme.com";
}
Section 14: The attributes of the CICSC SystemClone object are specified.
SystemClones.CICSC
{
factor=1.0;
maxServers=5;
health=1;
installed_on -> Nodes."wlmtest.acme.com";
}
Section 15: The attributes of the Connection between CICSA and CICSB are
defined.
SystemClones.CICSA/Connections.B1
{
load=0.1;
inService=1;
my_other_half -> SystemClones.CICSB/Connections.B1;
}
Section 16: The attributes of the Connection between CICSA and CICSC are
defined.
SystemClones.CICSA/Connections.B2
{
load=0.1;
inService=1;
my_other_half -> SystemClones.CICSC/Connections.B1;
}
66
Section 18: The SystemImages are assigned to the Nodes where they are to
run.
Nodes."wlmtest.acme.com/SystemImages.CICSA"
{
}
Nodes."wlmtest.acme.com/SystemImages.CICSB"
{
}
Nodes."wlmtest.acme.com/SystemImages.CICSC"
{
}
Section 20: The cpx1 Plex definition is completed with the closing brace ( } ).
}
67
68
Stopping a WAP
The process for starting a Workload Management Application Program cache
(WAP) was discussed in Chapter 6, Starting CICS WLM for the first time, on page
39. This section discusses how to stop a WAP.
To stop a WAP:
1. Authenticate as the user cicssm on the machine that is specified as the
location of the WAP.
2. Issue the command:
cicswlm stop wap wap_name
You can check whether the WAP has terminated by using the command cicswlm
list. If the WAP has not terminated, force its termination by using the cicswlm
purge wap command.
Stopping a WCM
The process for starting a Workload Management Cache Manager (WCM) was
discussed in Chapter 6, Starting CICS WLM for the first time, on page 39. This
section discusses how to stop a WCM.
To stop a WCM:
1. Authenticate as the user cicssm on the machine that contains the WCM that is
to be stopped.
2. Issue the command:
cicswlm stop wcm wap_name
You can check for the presence of the WCM by issuing the command cicswlm list.
If the WCM has not stopped, force its termination by using the command cicswlm
purge wcm wap_name.
69
70
4. Verify that all components of CICS WLM have stopped. Issue the command:
ps -ef | grep bhg
5. Examine the command output to ensure that no active process is listed other
than the grep command.
6. Issue the command:
cicswlm clean wlm
Alternatively, to purge all currently running CICS WLM components on the machine
on which the command is issued:
1. Authenticate as the user cicssm on the required machine.
2. Issue the command:
cicswlm purge
71
72
|
|
|
|
|
|
Following points briefly summarize what the tool can and cannot do:
|
|
|
|
|
|
|
|
|
|
You must make the necessary changes in the WLM configuration file using the
cicswlmcfg command and then load it into the WAP memory using the cicswlm
load command.
|
|
|
|
|
|
v
v
v
v
|
|
|
|
|
|
|
cicswlmcfg is associated with a set of commands and object types. Table 10 lists
the complete set of cicswlmcfg supported object types and compatible commands
to manipulate any new or existing WLM configuration. The set of commands are:
create, add, delete, modify, verify and list. The Table also gives the description of
all the object types.
Object_type Description
create add
delete
modify verify
list
|
|
wapdb
Yes
No
Yes
No
No
No
wap
No
No
No
No
No
|
|
plexdb
No
Yes
No
Yes
No
Yes
73
Table 10. Relationship between object types and commands in cicswlmcfg (continued)
Object_type Description
create add
delete
modify verify
list
|
|
plex
Yes
No
Yes
Yes
No
Yes
|
|
group
A SystemModel object in
the plex
Yes
No
Yes
Yes
No
No
|
|
|
region
A SystemClone object in
the plex or just a region
name
No
Yes
Yes
Yes
No
No
|
|
|
|
connection
Yes
Yes
Yes
No
No
|
|
program
Yes
Yes
Yes
No
No
|
|
|
transaction
Transaction object,
basically it is a TD entry
Yes
Yes
Yes
No
No
|
|
From Table 10 on page 73 it is clear that you cannot create an object type such as
region or add an object type such as plexdb and so on.
||
AIX
|
|
No
HP-UX
Sun Solaris
Windows
|
|
|
|
Table 11 shows the list of all options that cicswlmcfg supports. The -X, -f, -v
options do not accept any option arguments while the others do. If a mandatory
option is missing, the command fails. In such a case, the specified configuration file
will be intact and the command returns an error-code to the invoking shell.
Option
Meaning
-d
-l (lower case L)
-p
Plex name
-g
Group name
-h
Host name
-r
Region name
-R
-S
-P
-X
-f
|
|
-v
74
|
|
|
|
|
|
|
Return codes
cicswlmcfg can be used in script programming and can return a unique
return code to the caller. If successful, the command returns 0 and in case
of an error it returns a nonzero number. Table 16 on page 88 explains the
possible return codes and their meaning.
|
|
This section explains the steps involved in creating a typical WLM configuration and
also includes an example of a WLM configuration.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75
|
PROGRAM1
Group1
TRN1
Group2
REGAOR01
C001
host2.xyz.com
REGCOR
C002
REGAOR02
C003
REGAOR03
Relationships
host1.xyz.com
Connections
|
| Figure 6. The WLM configuration file cfgdb1 (the absolute file name is /var/cicssm/repos/cfgdb1.cfg)
|
To generate a configuration file that simulates the scenario in Figure 6, issue the
|
following commands:
|
cicswlmcfg create plexdb cfgdb1
|
|
cicswlmcfg create plex plex1 d cfgdb1
|
|
cicswlmcfg create group GROUP1 p plex1 d cfgdb1
|
cicswlmcfg create group GROUP2 p plex1 d cfgdb1
|
|
cicswlmcfg add region REGCOR g GROUP1 h host1.xyz.com p plex1 d cfgdb1
|
|
cicswlmcfg add region REGION01 g GROUP2 h host2.xyz.com p plex1 d cfgdb1
|
cicswlmcfg add region REGION02 g GROUP2 h host2.xyz.com p plex1 d cfgdb1
|
cicswlmcfg add region REGION03 g GROUP2 h host1.xyz.com p plex1 d cfgdb1
|
|
cicswlmcfg add connection C001 r REGCOR R REGION01 S CICA p plex1 d cfgdb1
|
cicswlmcfg add connection C002 r REGCOR R REGION02 S CICA p plex1 d cfgdb1
|
cicswlmcfg add connection C003 r REGCOR R REGION03 S CICA p plex1 d cfgdb1
|
|
cicswlmcfg add program PROGRAM1 g GROUP2 p plex1 d cfgdb1
|
cicswlmcfg add transaction TRNA g GROUP2 p plex1 d cfgdb1
|
The commands mentioned above generate a configuration file cfgdb1.cfg under the
default directory /var/cicssm/repos, which can be overridden by the -l option. A
complete listing of the cfgdb1.cfg file can be found in Appendix F, The generated
WLM configuration file, on page 121.
|
|
|
|
|
|
Configuration commands
The following sections explain each of the commands in detail:
76
||
AIX
|
|
HP-UX
Sun Solaris
Windows
Creates one of the five object types: plexdb, plex, group, wapdb or wap.
Syntax
|
|
|
|
|
|
Description
|
|
|
|
|
The create command creates the topmost WLM Plex object. However, this
command can be used to change the WLM topmost Plex attributes along with the
create command. If no values are stated, then the default attribute values are taken.
To change one or more attribute values without creating a plex, the modify
command can be used.
|
|
|
|
|
|
|
Create a plexdb, which is a text file with an extension .cfg, and some information as
its contents. After the plexdb is created, one or more plex objects can be created.
The command does not permit the creation of duplicate plex entries. It is mandatory
to specify created instances of the plex and plexdb for subsequent commands using
p and d options respectively. However, the db location can be avoided in which
case the default db location /var/cicssm/repos is taken. No other value is taken
from any environment variables.
|
|
|
|
|
|
|
|
Examples
|
|
plexdb01
plexdb01 l /tmp/testdir1
77
|
|
|
|
|
|
|
|
|
Note: It is mandatory to specify the plex name, even though there is only one
plex. The default db location is assumed here (/var/cicssm/repos).
|
|
plexdb02 l testdir1
|
|
Adds new object types such as region, connection, program, and transaction into an
existing plex under an existing plexdb.
Syntax
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
|
The add command adds new object types such as region, connection, program and
transaction into an existing plex under an existing plexdb. If the command
succeeds, the changes will take place, else an error will occur. Duplicate entries
cannot be added in a given plex. Also, it is mandatory that the host_name should
match with the output of the system command hostname.
|
|
|
|
|
Note that the g option is mandatory for creating new object types such as region,
connection, program and transaction. However, a region cannot be in more than
one group while a transaction and a program can be in many groups. Examples 5
and 6 in the following section show how to add more groups into program and
transaction objects.
|
|
|
Examples
|
|
|
Note: It is mandatory to specify the four options, without which the command
fails. The host name should match with the output of the system
command hostname.
2. To add a connection, C001 from a region CICSA, enter:
78
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-p plex01-d testdb1
-p plex01-d testdb1
-p plex01-d testdb1
Note: After executing the last three commands, the transaction TRN1 will
belong to the groups TYPE2, TYPE3 and TYPE4.
||
AIX
|
|
HP-UX
Sun Solaris
Windows
Windows
Syntax
|
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
|
|
|
The delete command deletes an object completely or partially. It always goes into
the interactive mode by asking, Are you sure you want to destroy the plex
plex_name?, and which can be bypassed with f option. If -g option is omitted,
the command deletes the respective object completely or else the object is deleted
from the respective group. The r option is mandatory to delete a connection as it
resides with a region object. Note that whenever a delete is performed, the
respective object and its references will be deleted.
Chapter 10. CICS WLM configuration tool-cicswlmcfg
79
|
|
|
|
The objects such as region, transaction and program must be in a group. If that
group is deleted, then the objects related to the group become stray objects and
WLM will ignore those objects. You must then assign another group to those stray
objects.
Examples
|
|
|
|
|
|
Note: This command deletes the entire db file. All the contents cannot be
retrieved.
2. To delete plex, plex01 under /var/cicssm/repos directory, enter:
plexdb01 f
Note: This command deletes the specified plex object completely. Neither the
deleted plex object nor its sub objects can be retrieved.
|
|
|
|
3. To delete group, TYPE01 under the plex, plex01 in the db plexdb01, enter:
cicswlmcfg delete plex plex01 -d plexdb01 f
Note:
|
|
|
|
|
|
|
|
|
|
|
|
v This command deletes the specified group object and its reference
from the specified plex object completely. If you delete a group and if
a region or a program or a transaction belongs to that group, then that
region or program or transaction will virtually go out of the plex and
become a stray object with that plex. WLM will not take an account on
them. It is your responsibility to add those stray objects into respective
groups.
v If the db file is under a different directory, the user may specify it with
l option.
4. To delete the region CICSA from the plex, plex01 , enter:
cicswlmcfg [-v] delete region CICSA p
plex01 -d
plexdb01 f
Note: This command deletes the region CICSA and also its sub connection
objects if any. That is, if you delete a region which has already been
designated as COR, then all of its connection objects will be deleted from
the plex object.
5. To delete a connection C001 from a region CICSA, enter:
|
|
|
|
|
|
|
|
|
plex01 -d
plexdb01 f
6. To delete the region CICSA from the group TYPE01 under the plex plex01 ,
enter:
cicswlmcfg delete region CICSA -g TYPE01 -p
plex01 -d
plexdb01 f
Note: This command deletes the group reference of TYPE01 from the region
CICSA. The region object will be available in the specified plex, but it will
not belong to any group, as a region object cannot be in more than one
group.
Similarly, you can delete group reference from transaction or program objects.
|
|
|
|
|
|
|
plexdb01 f
||
AIX
80
HP-UX
Sun Solaris
Windows
|
|
Syntax
|
|
|
|
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
|
|
|
The modify command modifies the attribute values of the existing object. Tables
12, 13, 14 and 15 show all the available attributes of the respective objects. Note
that the object group does not have any attributes. However it is not possible to
modify an object name. You must delete and create the same object with a different
name. The set of all attributes for each object mentioned in Table 10 can be found
in the Tables 12, 13, 14 and 15. It is not possible to modify the objects, plexdb,
wapdb, wap, and group.
|
|
|
|
|
|
|
|
|
Examples
1. To modify some of the plex attributes, enter:
cicswlmcfg modify plex plex01 retry_limit=3
wcm_retry_limit_1=4 -d plexdb01
2. To modify some of the region attributes (to increase the application servers
count), enter:
cicswlmcfg modify region CICSA -p plex01 -d plexdb01 maxServers=77
Note: Now no routing will happen to the region to which this connection points
to. Setting inService=1 makes that region to be active within the plex.
|
|
|
|
||
AIX
|
|
HP-UX
Sun Solaris
Windows
81
Syntax
Description
|
|
|
|
|
After you successfully create a WLM configuration file, it must be verified prior to its
usage. The verification command uses the backend WLM command cicswlm
verify. Note that the verify command will not issue any warning such as this region
does not belong to any group and so on. The cicswlm command always looks for
the configuration file to be in the /var/cicssm/wlm directory.
|
|
|
However, cicswlmcfg expects the WLM configuration file to have an extension .cfg
and in the command line mention the configuration file without this extension and
location of the file can be mentioned in l option.
Examples
|
|
|
|
||
AIX
|
|
HP-UX
Sun Solaris
Windows
Syntax
Description
|
|
|
|
The list command finds the available configuration files. You can list the WAP
related configuration files by specifying the object wapdb and WLM related
configuration files by specifying the object plexdb. You can also list the contents of
a given plex by specifying the object as plex.
|
|
|
Examples
|
|
|
|
|
Note: It lists all the *.cicssm file under the respective location.
2. To list all existing WAP configurations under /tmp/test1, enter:
82
|
|
|
|
|
|
|
|
Note: It lists all the *.cfg file under the respective location.
4. To list the contents of all plexes in a plexdb, plexdb01 under /tmp/test1, enter:
cicswlmcfg [-v] list plex all d plexdb01 -l location
d plexdb01 -l location
|
|
|
|
|
|
The TXSeries Administration Console can be used to create and modify the WLM
configuration file. The Web interface available compliments the cicswlmcfg
command explained earlier in the chapter. It can be used to:
v Create or delete plex databases
v Create, modify or delete plexes, groups, transactions, connections and programs
v View the attributes of all the objects
|
|
|
|
|
|
|
|
83
Expand WLM and click Plex Databases. A list of all the available plex databases in
the default plex database directory along with the respective plexes are displayed in
the WLM Plex Databases pane as shown in Figure 8.
|
|
|
|
|
|
| Figure 8. IBM TXSeries Administration Console Plex Database list
|
Click the name of the Plex object that you want to configure. All the objects
|
available in the plex are displayed in the work area as shown in Figure 9 on page
|
85.
|
|
84
|
|
|
|
|
|
|
To modify an object, click the name and edit the list of values of the attributes that
you want to change and click the Submit button.
|
|
|
|
The Tables in this section explain the set of all attributes that will appear in a typical
WLM configuration. Table 12 shows the complete set of plex attributes, their type
and default values. All these attributes can be modified using a modify command or
their values be overridden while creating a plex.
Attribute
Default
Description
|
|
load_limit
600
|
|
connection_scale
|
|
same_limit_1
|
|
same_limit_2
10
same_adjustment
0.1
|
|
same_scale_1
85
Attribute
Default
Description
|
|
same_scale_2
known_adjustment
0.05
|
|
known_scale_1
|
|
known_scale_2
normalise_scale
equal_delta
health_adjustment_1
health_adjustment_2
10
health_adjustment_3
100
|
|
health_adjustment_4
1000
|
|
health_adjustment_5
10000
health_timeout
120
|
|
session_scale_1
1.0
|
|
session_scale_2
2.0
|
|
load_scale_1
0.0
|
|
load_scale_2
1.0
|
|
score_limit
5,000
|
|
retry_limit
|
|
|
reselection_limit
|
|
wcm_resend_timeout
|
|
wcm_retry_timeout
10
|
|
wcm_retry_limit_1
|
|
wcm_retry_limit_2
|
|
wcm_fail_timeout
600
|
|
|
autoinstall_load
86
|
|
|
Table 13 shows the complete set of region attributes, their type and default values.
All these attributes can be modified through a modify command or their values be
overridden while adding a region.
Attribute
Default
Description
|
|
|
|
factor
|
|
|
maxServers
|
|
|
|
|
health
v 1= Excellent
v 3= Very poor or offline
|
|
|
Table 14 shows the complete set of region attributes, their type and default values.
All these attributes can be modified through a modify command or their values be
overridden while adding a connection.
Attribute
Default
Description
|
|
|
|
|
|
|
load
0.1
|
|
|
|
|
|
|
|
|
|
|
|
|
inService
|
|
|
|
87
Attribute
Default
Description
|
|
|
|
|
|
|
|
|
load
0.25
|
|
|
|
|
dynamic
no
|
|
|
|
|
The Table 16 shows the possible return codes from this tool. This tool can be used
in scripts programming and the return code can be used to find the cause of the
tool failure.
Exit code
Description
Command successful
|
|
Invalid command: It should be any one of create, delete, list, verify, add,
modify
|
|
|
|
|
|
The user has specified an invalid attribute value; for example dynamic
attribute takes yes or no and so on.
10
11
12
13
The user has not specified a valid attribute value. Attribute value missing.
14
15
16
17
18
19
88
Exit code
Description
20
21
22
23
The user has not specified the region name in the command.
24
The specified remote region was not found in the configuration file.
25
The user has not specified the remote region name in the command
26
|
|
27
The user has not specified the remote connection name of remote region in
the command.
28
29
30
The user has not specified the connection name in the command.
31
32
33
The user has not specified the group name in the command.
34
35
36
37
The user has not specified the program name in the command.
38
39
40
41
The user has not specified the transaction name in the command.
42
43
The user has not specified the host name in the command.
44
45
46
47
48
49
50
51
52
53
|
|
54
|
|
55
56
89
Exit code
Description
|
|
57
The specified region does belong to the another group, hence cannot be
added into a specified group.
58
The valid option was unable to find its respective argument value.
|
|
59
The user has specified no to the delete command query. The delete
command was stopped.
60
61
The user has specified a region name with more that 8 characters.
62
The user has specified a connection name with more that 4 characters.
63
The user has specified a transaction name with more that 4 characters.
64
The user has specified a program name with more that 8 characters.
|
|
|
|
65
A generic exception, better to set the trace and resubmit the command for
further analysis.
90
91
LocalProgramModels.newprog
{
load=0.25;
dynamic="yes";
configured_on -> SystemModels.AOR;
You must ensure that the correct syntax is used for this statement, including
the mixed case, quotation marks (), and braces ({}). The load value
corresponds to the response time of the program. The value dynamic="yes"
is required in order to specify that the program is to be managed by CICS
WLM.
Save the file.
c. Issue the command:
cicswlm verify wlm.cfg
Note: The new program does not appear in the WCM cache display until a
request has been issued to route that program from within the COR or
a CICS External Call Interface (ECI) or External Presentation Interface
(EPI) client.
92
93
i. You must define the Node on which the new CICS system is to be run. To
do this, add the following definition with those for the other Nodes. Section
16 shows the predeclaration for this object:
Nodes."machine4.acme.com"
{
}
j. You must tell CICS WLM on which system the new CICS system is to run.
To do this, add the following statement with the similar definitions. Section
17 shows the predeclaration for these objects:
Nodes."machine4.acme.com/SystemImages.CICSAOR3"
{
}
10. Start the Routing Monitor and verify that the new CICS system is included in
the list of regions that is displayed in the monitor. After the monitor has started,
press Enter. CICSAOR3 is displayed on the list of available regions.
The new configuration is shown in A sample configuration of the WLM definition
with added resources on page 95. The added definitions are highlighted by the
indicator <== Added.
The example that is shown in A sample configuration of the WLM definition with
added resources on page 95 is partitioned by numbered section headings. These
headings are provided to make it easy to reference portions of the file throughout
the text. The actual file contains only the monospaced example text, without
numbered headings.
94
Section 4: The Connection objects from the COR to each of the AORs are
predeclared.
The name that is used for the Connection object must match the one that is
used in the CICS Communications Definition (CD) to define the actual
connection to the AOR.
SystemClones.CICSCOR/Connections.AOR1;
SystemClones.CICSCOR/Connections.AOR2;
SystemClones.CICSCOR/Connections.AOR3; <== Added
Section 5: The Connection objects from each of the AORs back to the COR
are predeclared.
The name that is used for the Connection object must match the one that is
used in the CICS Communications Definition (CD) to define the actual
connection to the COR.
SystemClones.CICSAOR1/Connections.COR1;
SystemClones.CICSAOR2/Connections.COR1;
SystemClones.CICSAOR3/Connections.COR1;
<== Added
95
Nodes."machine1.acme.com/SystemImages.CICSCOR";
Nodes."machine2.acme.com/SystemImages.CICSAOR1";
Nodes."machine3.acme.com/SystemImages.CICSAOR2";
Nodes."machine4.acme.com/SystemImages.CICSAOR3"; <== Added
<== Added
Section 10: The Relationships of the AOR SystemModel object are defined.
The AOR SystemModel object is related to the three SystemClone objects
that are of the AOR type: CICSAOR1, CICSAOR2, and CICSAOR3. Notice
that three instances of the AOR SystemModel objects exist. Compare this
with the single instance of the COR SystemModel object.
SystemModels.AOR
{
cloned_as ->
{
SystemClones.CICSAOR1,
SystemClones.CICSAOR2, <== Modified to add ","
SystemClones.CICSAOR3 <== Added
};
}
Section 11: The attributes of the CICSCOR SystemClone object are specified.
The relationship is also declared to specify the machine on which this
SystemClone object is located.
SystemClones.CICSCOR
{
factor=1.0;
maxServers=10;
health=1;
installed_on -> Nodes."machine1.acme.com";
}
96
Section 13: The attributes of the CICSAOR2 SystemClone object are specified.
The relationship is also declared to specify the machine on which this
SystemClone object is located.
SystemClones.CICSAOR2
{
factor=1.0;
maxServers=5;
health=1;
installed_on -> Nodes."machine3.acme.com";
}
Section 15.01: Also, the attributes of the Connection between CICSCOR and
CICSAOR3 are defined.
The relationship is also declared, to indicate that the two Connection entries
(AOR3 and COR) are a pair. Note that it is not necessary to define the
attributes and relationship for the other side of the Connection; that is the
SystemClones.CICSAOR3/Connections.COR. CICS WLM builds this
Chapter 11. Adding resources to WLM
97
automatically. (You can define it for completeness, if you want.) This whole
section is newly added from the original code sample that is shown in
Sample configuration file (wlm.cfg) on page 29.
SystemClones.CICSCOR/Connections.AOR3 <== Added
{ <== Added
load=0.1;
<== Added
inService=1;
<== Added
my_other_half -> SystemClones.CICSAOR3/Connections.COR1;
} <== Added
<== Added
<== Added
Section 17: The SystemImages are assigned to the Nodes where they are to
run.
There are no characteristics to specify; therefore, the entries are minimal.
Nodes."machine1.acme.com/SystemImages.CICSCOR"
{
}
Nodes."machine2.acme.com/SystemImages.CICSAOR1"
{
}
Nodes."machine3.acme.com/SystemImages.CICSAOR2"
{
}
Nodes."machine4.acme.com/SystemImages.CICSAOR3"
{
<== Added
}
<== Added
<== Added
98
Section 20: The Plex definition is completed with the closing brace ( } ).
End the definition of Plex cpx1 with the added resources.
}
99
100
101
102
103
104
Figure 12. The RMON display showing the distribution of routed requests
105
106
Appendix C. Troubleshooting
This section helps you to determine the cause of problems in which work requests
are not being routed correctly.
For a CICS request to be successfully routed by CICS WLM, the following
conditions must exist:
1. The WAP is started successfully.
2. The WCM is started on the Node where the routing is to take place.
3. The WCMs are communicating successfully with the WAP.
4. When a DPL request is needed, these conditions exist:
v The CICS region has been configured successfully with the CICS
WLM-supplied user exits 50 and 51 installed on it.
v The relevant CICS region has been cold started.
5. When a DTR request is needed, these conditions exist:
6.
7.
8.
9.
v The CICS client has been configured successfully with the CICS
WLM-supplied user exit 50 installed on it.
v The relevant CICS region has been cold started.
When an Client ECI request is needed, these conditions exist:
v The CICS client has been configured successfully with the CICS
WLM-supplied user exits 50 and 51 installed on it.
v If a Plex object has a name other than the default, cpx1, the environment
variables, BHG_WCL_GROUP_NAME and
BHG_WCL_xxx_CICSPLEX_NAME must be set. See Before you start the
CICS WLM on page 39 for discussion about setting these variables.
When an Client EPI request is needed, these conditions exist:
v The CICS region has been configured successfully with the CICS
WLM-supplied user exits 50 and 51 installed on it.
v If a Plex object has a name other than the default, cpx1, the environment
variables, BHG_WCL_GROUP_NAME and
BHG_WCL_xxx_CICSPLEX_NAME must be set. See Before you start the
CICS WLM on page 39 for discussion about setting these variables.
v The environment variable BHG_WCL_APPLICATION must contain the name
of a valid, defined, and active ApplicationModel object. See Defining an
ApplicationModel on page 38 for discussion on this topic.
All the required resource definitions are in place, and connectivity between
CICS systems functions as expected.
A CICS WLM configuration file has been created, verified, and loaded by use of
the appropriate cicswlm commands.
Validate that these conditions exist as an initial step in problem-solving. See the
following sections for additional help in diagnosing problems:
v How to determine whether the WAP is started on page 108
v How to determine whether the WCM is started on page 108
v How to determine whether the user exits are in place on page 109
v How to validate the CICS environment on page 109
v How to check the configuration file on page 110
v Additional problem diagnosis on page 110
107
108
This message indicates that the WCM has sent a message to the WAP
announcing the existence of a new WCM.
- Examine the file /var/cicssm/log/wap.<wap_name>.msg. Check for the
following message:
BHGWAP4020I NEW_CACHE_MANAGER message received
This message indicates that the WAP has received a message from the
WCM announcing the existence of a new WCM. Some possible problems
can be:
v The machines that are holding the WAP and the WCM cannot
communicate using TCP/IP.
v The WCM is communicating with a machine other than the one on which
the WAP is running.
v The WAP is not listening on the correct port number.
If this message is missing, correct the problem and restart the CICS system by
using a cold start.
For DTR requests, consider the following:
v Check the message file console.nnnn on every region where workload
management is to take place. Look for the following message:
ERZ015042W...Program BHGDTR now associated with user exit 25
If this message is missing, correct the problem and restart the CICS system by
using a cold start.
Appendix C. Troubleshooting
109
Ensure that all requests can be run successfully on all AORs. Check all resource
definitions in the COR to ensure the RemoteSysIds for any resource (program for a
DPL request or transaction for a DTR request) that is remotely accessed has been
reassigned.
Ensure that ECI or EPI requests are completed successfully on the COR, and
hence routed to one of the AORs.
When DTR routing is to be done, you must ensure that the following details are
specified for the Transaction Definition in CICS:
v Dynamic=yes
v RemoteSysId-<default_system>
v RemoteName=<transaction_remote_name>
v ProgName=<first_program_of_transaction_in_remote_system>
110
3. When you loaded the configuration file, were any errors generated?
Check the log files for the wlmload component, in addition to the
console messages.
4. Is the Node on which the cache manager is running specified in the
configuration file? Is it specified correctly? For example, is the host
name the fully qualified host name, including the domain name; for
example, testlab125.company_name.com?
5. If the Node is specified correctly, does the SystemClone that defines the
routing CICS system have the same name in the configuration file as
the CICS system name itself?
If all the above are in order, try stopping the WLM components and retrying
with a higher trace level. The message files (files with the .msg suffix) can
be viewed directly. The trace files (files with the .trc suffix) must be
formatted with the cicswlm format command. Although the trace files
contain information that is intended to be read by IBM customer service
personnel, the information also can be helpful to system administrators.
If a problem has occurred with the communications between the WLM
processes, state information can remain that is preventing communications
from being reestablished. The cicswlm clean wlm command can help to
clean up this remaining information. Be aware that this command cleans all
shared memory resources that are being used by CICS WLM cache files
and socket files. It also removes log files that are more than one day old.
At least one Plex is listed by the cicswlm start rmon command. What can be
wrong?
If the Plex information is getting to the WCMs cache, the WLM distribution
mechanism is working. Some of the things that can be causing are as
follows:
1. Is the CICS system from which you are routing configured to drive the
relevant user exit program? Check the CICS regions console.msg file to
see whether messages in the CICS system startup indicate that the
programs BHGDPL and BHGDPLSP are being associated with user
exits 50 and 51 for Distributed Program Link (DPL) requests. For
Dynamic Transaction Routing (DTR) requests, the BHGDTR program
must be associated with user exit 25.
2. Are any log files called dpl.* being produced, that have any errors
listed? (The fact that an empty file exists is useful to know; it shows that
the BHGDPL program is being initialized).
3. Is the name of the routing CICS system that is listed in the
SystemClones list shown by the Routing Monitor? If not, check its
specification in the configuration file.
4. Are the Connections between the SystemClone objects that represent
the routing CICS system and the target SystemClones correctly
defined? Is the InService attributes for these objects set to a value of 1?
Does the Routing Monitor indicate that the target SystemClones are
healthy (1 is healthy, 3 is unhealthy)? If the CICS WLM Routing Monitor
shows a list of healthy system clones, but no ResourceModels are
shown on the next screen, either a CICS request has not reached the
WLM code, or a request has been received for a resource that cannot
be found. If the latter is the case, check the WAPs log. This log can
detect a message flow to the WLM application to try to discover
information about the requested resource.
5. Is the CICS Program Definition correct if you are performing a DPL? Is
a remote sysid specified that is to be used as a default if WLM cannot
Appendix C. Troubleshooting
111
112
Space requirement
/usr
25 MB
25 MB
/var
1 MB
Two directory structures are used by CICS WLM. They are install_dir/cicssm (where
install_dir is /usr/lpp on AIX ) and /var/cicssm. The install_dir/cicssm directory
contains the shipped code and samples. It contains only code; it has no data that is
associated with a workload management configuration. The /var/cicssm directory
structure contains information that relates to an instance of a CICS WLM
configuration. CICS WLM uses the same directory structure on the AIX platform.
The install_dir/cicssm directory consists of the following subdirectories:
Table 18. Directory structure for the install_dir/cicssm directory
Subdirectory
Description
/bin
/lib
/msg
/samples
Description
/data
/log
/repos
113
The WCM message, trace, and console file names are in the following forms:
wcm.<hostname>.msg
wcm.<hostname>.trc
wcm.<wap_name>.<hostname>.console
114
Description
bhg.active.wap.<wap_name>
bhg.active.wcm.<wap_name>
bhg.dpl.<cicsas_process_number>.skt
bhg.wap.<wap_name>.shm
bhg.wcm.<wap_name>.shm
bhg.wcm.skt
bhg.wlmload.shm
Note: When each trace file reaches a particular size (by default, 100,000 bytes), it
is renamed to its current_ name.old. A new trace file, current_name, is then
allocated and written to.
115
116
117
autoinstall_load
= 3.0
SystemModels.TYPE1
{
cloned_as -> SystemClones.CICSA;
}
SystemModels.TYPE2
{
cloned_as ->
{
SystemClones.CICSB,
SystemClones.CICSC
};
}
SystemClones.CICSA
{
factor=1.0;
maxServers=5;
health=1;
installed_on -> Nodes."wlmtest.acme.com";
}
SystemClones.CICSB
{
factor=1.0;
maxServers=5;
health=1;
installed_on -> Nodes."wlmtest.acme.com";
}
SystemClones.CICSC
{
factor=1.0;
maxServers=5;
health=1;
installed_on -> Nodes."wlmtest.acme.com";
}
SystemClones.CICSA/Connections.B1
{
load=0.1;
inService=1;
my_other_half -> SystemClones.CICSB/Connections.B1;
}
SystemClones.CICSA/Connections.B2
{
load=0.1;
inService=1;
my_other_half -> SystemClones.CICSC/Connections.B1;
}
Nodes."wlmtest.acme.com"
{
}
Nodes."wlmtest.acme.com/SystemImages.CICSA"
{
}
Nodes."wlmtest.acme.com/SystemImages.CICSB"
{
}
Nodes."wlmtest.acme.com/SystemImages.CICSC"
{
}
LocalProgramModels.CALLED
{
load=0.25;
dynamic="yes";
configured_on ->
118
{
SystemModels.TYPE2,
};
}
LocalTransactionModels.WLMT
{
load=0.25;
configured_on ->
{
SystemModels.TYPE2
};
}
}LocalProgramModels.CICSECIWLM
{
load=0.25;
dynamic="yes";
configured_on ->
{
SystemModels.TYPE2,
};
}LocalProgramModels.CICSEPIWLM
{
load=0.25;
dynamic="yes";
configured_on ->
{
SystemModels.TYPE2,
};
}ApplicationModels.Appl1
{
load=0.25;
configured_on->
{
SystemsModels.TYPE2;
};
}
119
120
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
load_scale_1 = 0.0;
load_scale_2 = 1.0;
normalise_scale = 0.00833;
reselection_limit = 2;
retry_limit = 2;
same_adjustment = 0.10;
same_limit_1 = 5;
same_limit_2 = 10;
same_scale_1 = 0.0;
same_scale_2 = 0.0;
score_limit = 5000.0;
session_scale_1 = 1.0;
session_scale_2 = 2.0;
wcm_fail_timeout = 600.0;
wcm_resend_timeout = 1.0;
wcm_retry_limit_1 = 5;
wcm_retry_limit_2 = 1;
wcm_retry_timeout = 10.0;
// The SystemMode Definitions ....
SystemModels.GROUP1
{
cloned_as->{
SystemClones.REGCOR
};}
SystemModels.GROUP2
{
cloned_as->{
SystemClones.REGION01,
SystemClones.REGION02,
SystemClones.REGION03
};}
// The SystemClones Definitions ....
SystemClones.REGCOR
{
factor = 1.0;
health = 1;
maxServers = 25;
installed_on->Nodes."host1.xyz.com";
}
SystemClones.REGION01
{
factor = 1.0;
health = 1;
maxServers = 25;
installed_on->Nodes."host2.xyz.com";
}
SystemClones.REGION02
{
factor = 1.0;
health = 1;
maxServers = 25;
installed_on->Nodes."host2.xyz.com";
}
SystemClones.REGION03
{
factor = 1.0;
health = 1;
maxServers = 25;
installed_on->Nodes."host1.xyz.com";
}
// The SystemClones Connections Definitions ....
SystemClones.REGCOR/Connections.C001
{
inService = 1;
122
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
load = 0.1;
my_other_half->SystemClones.REGION01/Connections.CICA;
}
SystemClones.REGCOR/Connections.C002
{
inService = 1;
load = 0.1;
my_other_half->SystemClones.REGION02/Connections.CICA;
}
SystemClones.REGCOR/Connections.C003
{
inService = 1;
load = 0.1;
my_other_half->SystemClones.REGION03/Connections.CICA;
}
// The Nodes Definitions ....
Nodes."host1.xyz.com/SystemImages.REGCOR"{}
Nodes."host1.xyz.com/SystemImages.REGION03"{}
Nodes."host2.xyz.com/SystemImages.REGION01"{}
Nodes."host2.xyz.com/SystemImages.REGION02"{}
// The LocalProgramModels Declarations ....
LocalProgramModels.PROGRAM1
{
dynamic = "yes";
load = 0.25;
configured_on->
{
SystemModels.GROUP2
};
}
// The LocalTransactionModels
LocalTransactionModels.TRNA
{
load = 0.25;
configured_on->
{
SystemModels.GROUP2
};
}
}
Definitions ....
123
124
Parameters
Description
cicswlm configure
<config_file>
cicswlm list
none
cicswlm load
wlm.cfg <wap_name>
cicswlm purge
cicswlm start
cicswlm stop
none
cicswlm verify
<wlm_config_file>
cicswlm clean
wlm
cicswlm format
wap.<wap_name>.trc
125
126
127
Contents
Object types that are contained within the definition of an object that is
made for the CICS WLM utility.
Connection
An abstract representation of the communication links between CICS
systems in an environment that is set up for use of the CICS WLM utility.
COR
Data-dependent routing
The ability to make a decision to route a work request to a particular server
based on data that is associated with that item of work. This is usually done
by looking at some portion of the CICS COMMAREA.
Health Monitor (HMON)
An optional component of the CICS WLM utility that reports on the status of
object models that are defined in the CICS WLM environment. It uses three
reporting levels: Level 1, the region is up and can be contacted; Level 2,
the region is not up, but the host on which the region runs can be
contacted; and Level 3, neither the region, or the machine on which it runs,
can be contacted. The HMON must be installed on the same machine as is
the WAP; no code is installed on remote machines to use the HMON
component.
HMON
The acronym for the Health Monitor component of the CICS WLM.
LocalProgramModel
An abstract representation in CICS WLM configuration file that corresponds
to the Program Definition that is used for running a program.
LocalTransactionModel
An abstract representation in CICS WLM configuration file that corresponds
to the Transaction Definition that is used for running a transaction. Usually,
this object contains a pointer to a locally running program.
Node
Object Model
An abstract representation of the resources in your CICS system that can
be defined for use by the CICS WLM utility. The resources that can be
represented include: regions, connections between regions, programs that
are being routed between regions, transactions that are being routed
between regions, data-dependent routing considerations, and machines on
which CICS regions are running.
Partition data
A portion of data defined within a Partition object that identifies the values
to be used from a work request when making a data-dependent routing
decision.
Partition object
An abstract representation that is used to specify a subset of SystemClone
objects that is to be used as potential destinations for data-dependent
routing.
Plex
128
The highest grouping of CICS resources that is defined to the CICS WLM
utility. It is also called a CICSplex. All other objects that are defined for the
CICS WLM utility are contained within a Plex.
Relationship
An object that defines a connection to some other object that is defined to
the CICS WLM utility.
RemoteProgramModel
An abstract representation ina CICS WLM configuration file that
corresponds to the Remote Definition of a CICS resource. This definition is
placed onto a Client Owning Region to identify a program that is running on
an Application Owning Region in a CICS WLM environment. It is for
informational purposes only and does not play a part in routing decisions.
RemoteTransactionModel
An abstract representation in CICS WLM configuration file that corresponds
to the Remote Definition of a CICS resource. This definition is placed onto a
Client Owning Region to identify a program that is running on an Application
Owning Region in a CICS WLM environment. It is for informational
purposes only and does not play a part in routing decisions.
ResourceModel objects
An abstract representation of the CICS programs and transactions that can
be routed by using the CICS WLM utility.
RMON
The acronym for the Routing Monitor component of CICS WLM.
Routing Monitor (RMON)
A component of the CICS WLM that tracks activity in the WCM caches. It
shows the routing decisions that are made for requests from all clients that
are sharing the WCM. RMON is installed on the same machine as is the
WAP.
Separation object
An abstract representation that is used in an environment that is defined to
a CICS WLM utility that groups several Partition objects to enable
data-dependent routing.
SystemClone object
An abstract representation of a particular type of a CICS region. The
SystemClone definition corresponds precisely to the SystemModel definition
that it represents.
SystemImage object
A representation that is placed on a Node object to indicate the presence of
a SystemClone object.
SystemModel object
An abstract representation of a generic type of a CICS region. A
SystemClone object is defined based on a specific instance of a
SystemModel object.
WAP
WCL
WCM
129
updates the WCMs when any change is made to the configuration that is
defined to the utility. The WAP is usually installed on a High Availability
node on a CICS for machine.
Workload Management Local Cache Manager (WCM)
The local cache that is populated and updated by the WAP. It resides on
any machine in the system where a routing decision is made. WCMs can
be installed on a single region on a single node; on one or more regions on
a single node; or on Client machines.
Workload Management Client (WCL)
The WCL receives the incoming processing request and searches the WCM
for information about the status of the AORs; it applies the algorithm that is
designed to optimize the routing determination, and it forwards the request
to the WAP when the WCM does not have the required information.
130
Notices
This information was developed for products and services offered in the U.S.A. IBM
may not offer the products, services, or features discussed in this document in other
countries. Consult your local IBM representative for information on the products and
services currently available in your area. Any reference to an IBM product, program,
or service is not intended to state or imply that only that IBM product, program, or
service may be used. Any functionally equivalent product, program, or service that
does not infringe any IBM intellectual property right may be used instead. However,
it is the users responsibility to evaluate and verify the operation of any non-IBM
product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you any
license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
DOCUMENT AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OR CONDITIONS OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express
or implied warranties in certain transactions, therefore, this statement may not apply
to you.
This information could include technical inaccuracies or typographical errors.
Changes are periodically made to the information herein; these changes will be
incorporated in new editions of the document. IBM may make improvements and/or
changes in the product(s) and/or the program(s) described in this publication at any
time without notice.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those
Web sites. The materials at those Web sites are not part of the materials for this
IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes
appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of
enabling: (i) the exchange of information between independently created programs
Copyright IBM Corp. 1999, 2008
131
and other programs (including this one) and (ii) the mutual use of the information
which has been exchanged, should contact:
IBM Corporation
ATTN: Software Licensing
11 Stanwix Street
Pittsburgh, PA 15222
U.S.A.
Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
The licensed program described in this document and all licensed material available
for it are provided by IBM under terms of the IBM International Program License
Agreement or any equivalent agreement between us.
Any performance data contained herein was determined in a controlled
environment. Therefore, the results obtained in other operating environments may
vary significantly. Some measurements may have been made on development-level
systems and there is no guarantee that these measurements will be the same on
generally available systems. Furthermore, some measurements may have been
estimated through extrapolation. Actual results may vary. Users of this document
should verify the applicable data for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of those
products, their published announcements or other publicly available sources. IBM
has not tested those products and cannot confirm the accuracy of performance,
compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those
products.
All statements regarding IBMs future direction or intent are subject to change or
withdrawal without notice, and represent goals and objectives only.
This information contains examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples may include
the names of individuals, companies, brands, and products. All of these names are
fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
If you are viewing this information softcopy, the photographs and color illustrations
may not appear.
CICS/400
132
AIX
CICS
CICS/6000
CICS/ESA
CICS/MVS
CICS/VSE
CICSPlex
C-ISAM
Database 2
DB2
GDDM
IBM Registry
IBM
IMS
Informix
Language Environment
MVS
MVS/ESA
OS/390
OS/2
OS/400
RACF
RETAIN
RISC System/6000
RS/6000
SOM
System/390
TXSeries
TCS
VisualAge
VSE/ESA
VTAM
WebSphere
z/OS
Other company, product, and service names may be trademarks or service marks
of others.
Notices
133
134
Index
A
add
command 78
adding
CICS system 92
program 91
resource 91
adding resource
sample 95
Administration
Console 83
affinities
environment 25
analysis
information-gathering
AOR
sample 51
applications
setup 49
attributes
connection 87
objects 12
plex 85
program 87
region 87
transaction 87
21
B
benefits
C
cache
WAP cache 6
WCM 6
CICS definitions
establishing 27
modify 34
CICS system
adding 92
CICSplex
cpx1 28
cicssm
environment variables
group 39
PATH 39
userid 39
cicssm.config
initialization file 8
cicswlmcfg
command 73
return codes 88
Client Owning Region
COR 47
command
add 78
command (continued)
cicswlmcfg 73
delete 79
list 82
modify 80
verify 81
command list 125
commands
configuration 76
WLM commands 8
Communications Definitions
sample 48
components
definitions 5
install 24
list 70
plan location 24
start 69
stop 69
configuration
WLM 75
configuration commands 76
configuration file
customizing 21, 27
defining resources 11
environment definition 11
load 42
multiple 28
sample 64
verify 41
wlm.cfg 8
connection
attributes 87
Connection
object 16
Console
Administration 83
contents
objects 12
COR
Client Owning Region 47
sample 50
customizing
configuration file 21, 27
initialization file 21, 27, 33
39
D
database definitions
requirements 25
default naming
Plex naming 39
defining resources
configuration file 11
delete
command 79
directory structure
installation 113
135
displays
RMON 104
Distributed Program Links
DPL 36
DPL
Distributed Program Links 36
issue request 53
source code 55
user exits 8
DTR
Dynamic Transaction Routing 37
issue request 54
source code 55
user exits 8
Dynamic Transaction Routing
DTR 37
E
ECI
issue request 54
source code 56
user exits 8
empty resources 71
environment
high-level review 21
requirements 25
sample 47
environment definition
configuration file 11
environment example
single machine 23
using Windows Client 22
environment variables
cicssm 39
EPI
issue request 54
source code 59
user exits 8
establish
Resource Definitions 35
user exits 36
establishing
CICS definitions 27
user exits 27
F
flow of work request
planning concept 24
forced health value
HMON 45
functions 1
Health Monitor
HMON 7
hierarchy
object model 13
high-level review
environment 21
HMON
forced health value
Health Monitor 7
start 44
global cache
cache 6
group
cicssm 39
45
I
information-gathering
analysis 21
initial activation sequence 40
initial configuration
WAP 34
initial start 39
initialization file
cicssm.config 8
customization 21
customizing 27, 33
sample 64
install
components 24
installation
directory structure 113
space requirements 113
issue request
DPL 53
DTR 54
ECI 54
EPI 54
L
list
command 82
components 70
load
configuration file 42
verify 33
loader
parser 9
local cache
cache 6
LocalProgramModel
object 17
LocalTransactionModel
object 17
136
modify
CICS definitions
command 80
user exits 34
34
multiple
configuration file
28
N
Node
object
16
O
object
Connection 16
LocalProgramModel 17
LocalTransactionModel 17
Node 16
Plex 13
RemoteProgramModel 17
RemoteTransactionModel 17
ResourceModel 17
SystemClone 15
SystemImage 16
SystemModel 15
object model 12
hierarchy 13
objects
attributes 12
contents 12
relationships 12
P
parser
loader 9
PATH
cicssm 39
placing
WAP 33
plan location
components 24
planning concept
flow of work request 24
Planning considerations 3
plex
attributes 85
Plex
CICSplex 28
object 13
Plex naming
default naming 39
program
adding 91
attributes 87
purge resources 71
R
region
attributes 87
relationships
objects 12
RemoteProgramModel
object 17
RemoteTransactionModel
object 17
requirements
environments 25
resource
adding 91
Resource Definitions
establish 35
ResourceModel
object 17
return codes
cicswlmcfg 88
RMON
displays 104
Routing Monitor 7
start 45
Routing Monitor
RMON 7
S
sample
adding resource 95
AOR 51
Communications Definitions
configuration file 64
COR 50
environment 47
initialization file 64
start 52
WAP 52
scheduled housekeeping 72
setup
applications 49
single machine
environment example 23
source code
DPL 55
DTR 55
ECI 56
EPI 59
space requirements
installations 113
start
components 69
HMON 44
RMON 45
sample 52
start WAP
WAP 41
start WCM
WCM 41
stop
components 69
WAP 69
WCM 69
SystemClone
object 15
48
Index
137
SystemImage
object 16
SystemModel
object 15
wlm.cfg
configuration file 8
work requests
validate 54
Workload Management Client
WCL 6
T
testing 43
volume 101
transaction
attributes 87
troubleshooting 107
U
user exits
DPL 8
DTR 8
ECI 8
EPI 8
establish 36
establishing 27
modify 34
userid
cicssm 39
using Windows Client
environment example
22
V
validate
work requests 54
verify
command 81
configuration file 41
load 33
volume
testing 101
W
WAP
initial configuration 34
placing 33
sample 52
start 41
stop 69
WAP cache
cache 6
WCL
Workload Management Client
WCM
start 41
stop 69
WCM cache
cache 6
WLM
configuration 75
WLM commands
commands 8
138
SC34-6638-02
TXSeries for Multiplatforms
Spine information:
Version 6.2
SC34-6638-02