Académique Documents
Professionnel Documents
Culture Documents
IMS Version 8
Implementation Guide
A Technical Overview of the New Features
Explore IMSplex components and
discover the new IMS architecture
Utilize your Java skills with IMS
for Java and WebSphere support
Get familiar with all the new
features
Jouko Jntti
Henry Kiesslich
Roddy Munro
John Schlatweiler
Bill Stillwell
ibm.com/redbooks
SG24-6594-00
Note: Before using this information and the product it supports, read the information in Notices on
page xi.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
......
......
......
......
.......
.......
.......
.......
xiii
xiii
.xv
.xv
Part 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapter 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Introduction to the enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Availability and recoverability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Database Recovery Control (DBRC) enhancements . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Database Image Copy 2 enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 HALDB enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.4 Batch Resource Recovery Service (RRS) support . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.5 Remote Site Recovery (RSR) enhancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.6 Enhanced availability by using the Resource Manager (RM) . . . . . . . . . . . . . . . . . 7
1.2.7 Common Queue Server (CQS) enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.8 APPC and OTMA enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.9 APPC/IMS enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.10 IMS Online Recovery Service (ORS) support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.11 System Log Data Set (SLDS) dynamic backout processing . . . . . . . . . . . . . . . . . 9
1.3 Performance and capacity enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 Fast Path enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Parallel database processing enhancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.3 IMS MSC FICON CTC support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.4 Virtual storage constraint relief . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Systems management enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.1 BPE enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.2 Common Service Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.3 Installation and configuration enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.4 Syntax Checker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.5 Transaction trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 Application enablement enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.1 Java enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Part 2. IMS Version 8 base enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Chapter 2. Packaging and installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Product packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Installation changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Changes in target and distribution data sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 SMP/E processing changes in IMS Version 8. . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4 User exits in IMS Version 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 IVP changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Execution steps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 IMS Java IVP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
22
22
22
24
24
24
24
26
iii
iv
29
30
30
31
38
41
44
47
48
48
51
52
53
53
54
55
55
55
56
56
57
60
61
61
61
61
62
63
64
65
66
67
69
70
70
71
72
73
74
74
74
75
76
77
79
80
80
83
84
84
86
87
89
90
90
91
92
93
109
110
110
111
113
113
114
117
118
122
125
125
125
126
126
127
130
131
132
133
v
137
138
139
140
140
140
141
141
141
143
144
144
145
145
146
146
Chapter 12. Shared queues support for APPC and OTMA synchronous messages
12.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3 Migration considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.1 Synchronous messages and program-to-program switches. . . . . . . . . . . . . . .
12.3.2 Error conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.3 Other miscellaneous migration considerations . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.4 Support considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
147
148
148
150
150
151
151
152
vi
155
156
160
161
161
161
162
163
164
164
165
168
168
170
171
172
172
173
174
174
175
176
Contents
177
178
179
179
183
183
185
186
188
189
189
190
191
191
192
192
193
193
193
195
195
197
201
202
202
202
202
203
203
203
203
204
204
204
205
206
206
208
208
209
209
209
210
210
211
211
211
211
212
213
213
214
vii
viii
215
216
216
219
219
220
220
221
221
221
222
222
223
223
225
226
228
229
229
229
230
230
231
232
232
233
234
235
236
238
238
239
242
243
246
246
248
249
253
253
255
256
257
258
260
265
266
267
267
268
269
279
280
280
281
282
282
282
283
283
284
284
285
286
286
289
290
290
291
292
293
294
295
296
296
298
298
298
299
300
301
301
301
303
307
308
308
308
308
308
308
308
309
309
309
309
310
311
311
Contents
ix
311
311
312
312
312
315
316
316
317
318
318
319
321
321
321
321
......
......
......
......
......
......
.......
.......
.......
.......
.......
.......
......
......
......
......
......
......
......
......
......
......
......
......
325
325
325
326
327
327
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
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 user's 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.
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 PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 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 publication. 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.
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.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples 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.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrates programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and
distribute these sample programs in any form without payment to IBM for the purposes of developing, using,
marketing, or distributing application programs conforming to IBM's application programming interfaces.
xi
Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
AIX
AT
C/MVS
CICS
CUA
DATABASE 2
DB2
DFS
DFSMSdss
ES/9000
ESCON
FICON
IBM
IMS
IMS/ESA
Language Environment
MQSeries
MVS
NetView
NetView
OS/390
Parallel Sysplex
RACF
Redbooks
Redbooks(logo)
RMF
S/390
Sequent
SP
System/370
VM/ESA
VSE/ESA
VTAM
WebSphere
z/OS
zSeries
The following terms are trademarks of International Business Machines Corporation and Lotus Development
Corporation in the United States, other countries, or both:
Lotus
Word Pro
xii
Preface
In this IBM Redbook, we describe the new features and functions in IMS Version 8. We
document the tasks necessary to exploit the features, and identify migration, coexistence, and
fallback considerations. We also identify specific hardware and software requirements that
are needed to exploit certain enhancements.
First we provide an overview, where we have grouped the various enhancements and their
discussion into the categories availability and recoverability, performance and capacity,
systems management, and application enablement. Then we have more detailed chapters for
describing the individual enhancements.
The base enhancements part of the book describes the base product enhancements that
apply to all users migrating to IMS Version 8. The Parallel Sysplex enhancements part of the
book describes enhancements in IMS Version 8 that apply to both existing users of IMS
Version 6 or IMS Version 7 in a Parallel Sysplex environment and users that are considering
sysplex functionality.
The Common Service Layer part documents the Common Service Layer (CSL), new in IMS
Version 8, which is the next step in IMS Parallel Sysplex evolution. The CSL enables IMS
systems to operate in unison in an OS/390 Parallel Sysplex. The CSL components provide
the infrastructure for an IMSplex.
xiii
systems programming group leader at the Hursley lab, providing test systems to the
development projects on-site.
John Schlatweiler is a Systems Manager with SBC Services, Inc. in St. Louis Missouri
where he is a member of the IMS Support Group's IMS Development Team. He has 17 years
of experience in the IT fields. His areas of expertise include CICS, DB2, IMS, and OS/390.
John has worked as an applications developer, application architect, technical leader,
database administrator, and systems programmer. Prior to joining SBC, John was
responsible for database and transaction processing systems in a large banking environment.
Bill Stillwell is a Senior Consulting I/T Specialist and has been providing technical support
and consulting services to IMS customers as a member of the Dallas Systems Center for 20
years. During that time, he developed expertise in application and database design, IMS
performance, Fast Path, data sharing, shared queues, planning for IMS Parallel Sysplex
exploitation and migration, DBRC, and database control (DBCTL). He also develops and
teaches IBM Education and Training courses, and is a regular speaker at the annual IMS
Technical Conferences in the United States and Europe.
Thanks to the following people for their contributions to this project:
Yvonne Lyon
Deanna Polm
International Technical Support Organization, San Jose Center
Rich Conway
Bob Haimowitz
International Technical Support Organization, Poughkeepsie Center
Barbara Klein
Jim Bahls
Thomas Bridges
Kyle Charlet
Richard Cooper
Vince Henley
Rose Levin
Bob Love
Tom Morrison
Bruce Naylor
Khiet Nguyen
David Ormsby
Bovorit Pibulsonggram
Karen Ranson
Patrick Schroeck
Richard Schneider
Sandy Stoob
Don Terry
Judy Tse
Pedro Vera
Jack Wiedlin
IBM Silicon Valley Laboratory
Alonia Lonnie Coleman
IBM Dallas Systems Center, USA
Alan Cooper
IBM EMEA Technical Sales, UK
xiv
Alison Coughtrie
IBM EMEA Product Introduction Centre, UK
Comments welcome
Your comments are important to us!
We want our Redbooks to be as helpful as possible. Send us your comments about this or
other Redbooks in one of the following ways:
Use the online Contact us review redbook form found at:
ibm.com/redbooks
Preface
xv
xvi
Part 1
Part
Introduction
In this part of the book we provide an introduction to the enhancements included in IMS
Version 8. This part consists of an overview chapter that provides a summary the new
features and enhancements in preparation for a more detailed review of each major item in
the other parts of the book.
Chapter 1.
Overview
In this chapter we provide an overview of the general structure for the materials to be
presented in this IBM Redbook. We introduce the enhancements made to Information
Management System (IMS) Version 8 at the highlight level. All the major enhancements are
then fully discussed in their own chapters later in this book. The following items are only
described in this overview chapter:
IBM IMS Online Recovery Service (ORS) product support
System log data set (SLDS) dynamic backout processing
Virtual storage constraint relief (VSCR)
In the overview chapter, we have grouped the various enhancements and their discussion
into the categories of availability and recoverability, performance and capacity, systems
management, and application enablement.
PRILOG compression
The efficiency of PRILOG record compression has been improved. Compression will now be
attempted more frequently than was the case prior to IMS Version 8. Compression will be
attempted whenever an online log data set (OLDS) archive job is run. For Remote Site
Recovery (RSR), this is when the tracking log data set is opened.
Deallocation processing
Chapter 1. Overview
For details on DBRC enhancements applicable to all operating environments, see Chapter 5,
Database Recovery Control enhancements on page 69. For more information on Automatic
RECON loss notification (ARLN), refer to Chapter 18, Automatic RECON loss notification on
page 265.
For more information on Database Image Copy 2 enhancements, see 4.1, Database Image
Copy 2 enhancements on page 48.
In this statement: nnn = the nth DBPCB (required) and pppppppp = partition name (required).
This enhancement is available also for IMS Version 7 users as an APAR PQ57313.
Resume work for VTAM terminals and users if their local IMS fails
Eliminate VTAM generic resources terminal affinities
Provide resource type consistency
Provide name uniqueness
Provide global callable services for NODE, LTERM, and user resources
For more information on Resource Manager as part of the CSL architecture, see Chapter 13,
Common Service Layer (CSL) architecture on page 155.
For more detailed information on resource structures and Resource Manager see
Chapter 14, Sysplex terminal management on page 177
For Resource Manager and CSL configuration information see Chapter 20, Common Service
Layer configuration and operation on page 289.
In addition to the functional enhancements for IMS Version 8, the Common Queue Server
(CQS) information is now in a separate book from that of BPE information. For IMS Version 8,
you will find all the information pertaining to CQS in the IMS Version 8: Common Queue
Server Guide and Reference, SC27-1292.
Chapter 1. Overview
For more information on Coupling Facility structure processing see Chapter 10, Coupling
Facility structure management on page 137.
For more information on CQS as part of the CSL architecture, see Chapter 13, Common
Service Layer (CSL) architecture on page 155. For more detailed information on resource
structures and Resource Manager see Chapter 14, Sysplex terminal management on
page 177
To learn more about Online Recovery Service, please see the IBM Redbook A DBAs View of
IMS Online Recovery Service, SG24-6112.
Example 1-2 shows the messages that are issued when SLDS is required for backout.
Example 1-2 /DISPLAY OLDS -command output showing SLDS required for backout
DFS000I
DFS000I
Chapter 1. Overview
The interface to DBRC has been enhanced, allowing SLDS read to allocate the exact SLDS
requested on the first read request. Subsequent log allocations (within the same set of
requests) will still need to be contiguous with previously allocated logs. This eliminates much
dataspace use when reads are for very old log data, which may happen if SLDS read is
turned off until a time of less contention for storage. Turning SLDS read on later and issuing
/START DB to redrive backout will not cause IMS to read unnecessary log data between point
of failure and the current OLDS.
The DBRC enhancement added field SLDLBKID to the PRISLD record in the RECON data
set. SLDLBKID is not maintained by RSR, so the SLDS read function will not operate
successfully on log data migrated from a remote site by RSR. After a remote takeover,
deferred or restartable backouts may require the Batch Backout utility.
10
Chapter 1. Overview
11
Note: The QSAV and AWE storage pools can expand during high volume processing.
Thus, the CSA saving shown in the following table is a minimum value of 8K (for QSAV)
and 12K (for AWE) per IMS subsystem. During high volume processing, these pools could
be significantly expanded, resulting in exhausting CSA and causing problems. By moving
these areas above the line the CSA problems may be avoided, thereby helping prevent
operating system crashes. So while the base system with no activity saves 8K and 12K,
the actual savings in the previously described situation, would be more.
Table 1-1 Estimated virtual storage constraint relief provided by IMS Version 8
Item
Moved from
CSA to
Private
Moved from
ECSA to
Eprivate
Moved from
Private to
Eprivate
Checkpoint processor
54 KB
Restart processor
286 KB
FDBR modules
378 KB
420 KB
12 KB
8 KB
92 KB
- or 28 KB
AWEs
12 KB
Total
378 KB
420 KB
352 KB
Chapter 1. Overview
13
Resource Manager
The Resource Manager (RM) helps manage IMSplex resources that are shared by multiple
IMS systems in an IMSplex. The RM provides an infrastructure for managing global network
resources and coordinating processes across the IMSplex. The RM maintains resource
information using a resource structure on a Coupling Facility.
For more information on Resource Manager as part of the CSL architecture, see Chapter 13,
Common Service Layer (CSL) architecture on page 155.
For RM and CSL configuration information, see Chapter 20, Common Service Layer
configuration and operation on page 289.
For more detailed information on resource structures and Resource Manager, see
Chapter 14, Sysplex terminal management on page 177
Operations Manager
The Operations Manager (OM) provides the interface for a single system image for system
operations in an IMS Version 8 IMSplex. The OM provides an application programming
interface (API) for the distribution of commands and responses within the IMSplex. The OM:
Routes IMS commands to IMSplex members that are registered to process those
commands.
Consolidates command responses from individual IMSplex members into a single
response for presentation to the command originator.
Provides user exits for command and response edit and command security.
For more information on Operations Manager as part of the CSL architecture, see
Chapter 13, Common Service Layer (CSL) architecture on page 155.
14
For OM and CSL configuration information see Chapter 20, Common Service Layer
configuration and operation on page 289.
15
Java standards
IMS provides support for the new Java standards as they evolve. JDBC 2.0 enhancements
include support for Updatable ResultSet and limited reverse cursors. SQL enhancements to
IMS DB data includes support for aggregate functions (MIN, MAX, and so forth) and scalars.
16
Java Tooling introduces a new IMS utility called DLIModel, which automatically generates the
required IMS Java metadata class from IMS PSB and DBD source, eliminating the previously
existing manual task of preparing these classes.
For more information on the Java enhancements, see Chapter 8, Application enablement on
page 95. For details on accessing IMS data from WebSphere Application Server, see
Chapter 9, Java enhancements for IMS and WebSphere on page 109.
Chapter 1. Overview
17
18
Part 2
Part
19
20
Chapter 2.
21
HMK8800
Database Manager
JMK8801
JMK8802
JMK8803
JMK8804
JMK8805
JMK8806
IRLM V2 R1
HIR2101
22
SDFSBASE
SDFSSMPL
SDFSDATA
SDFSSRC
usr/lpp/ims/imsjava81/samples/jdbc/IBM/
usr/lpp/ims/imsjava81/samples/jdbc/IBM/
usr/lpp/ims/imsjava81/samples/jdbc/IBM/
usr/lpp/ims/imsjava81/samples/jdbc/IBM/
Note: You may want a separate HFS and path for the IMS Version 8 HFS, as this allows
greater flexibility with maintenance and the coexistence of multiple IMS releases if
required. This can be implemented by setting up an IMS V8 specific mount point, for
example /usr/lpp/ims81, and by changing all references from /usr/lpp/ims to /usr/lpp/ims81
for the various DDDEFS, during the installation of IMS Java.
SDFSJJCL
SDFSJDOC
SDFSJHFS
SDFSJIVP
23
ADFSJIVP
should be completed to thoroughly test the IMS system. The changes in Version 8 are listed
under the following paragraphs.
Removed Bx - steps
The Bx -series of jobs and tasks that were used to build the SMP/E distribution libraries for
the previous IMS versions, are removed in IMS Version 8.
Changed Cx - steps
The Cx -series of job and tasks are used for IMS system definition. For IMS version 8, a new
APPLCTN macro has been added for application DFSIVP37 with the TRANSACT macro for
transaction code IVTCM. This is for IMS Java IVP. IMS Java IVP is not executed using the IVP
dialog. For more information about IMS Java IVP, refer to 2.2.2, IMS Java IVP on page 26.
Changed Dx - steps
The Dx -series of jobs and tasks are used to define the IMSs interfaces to OS/390 and
VTAM. For IMS version 8, the following change has been made:
Task IV_D208T - Update PPT entries, added BPEINI00 for Common Service Layer (CSL).
Task IV_D209T - Updated to have the scatter (SCTR) parameter in the parameter list for
the link step. Without the parameter, IPL fails with wait status: x'054'.
25
2.3.1 Changed minimum and default values for RECLNG in MSGQUEUE macro
The MSGQUEUE macro RECLNG minimum and default values have been modified for the
short and large message queue data sets. The minimum values are now 392 and 1176, and
the default values are 504 and 2520. The old minimum values were 112 and 672, and the old
defaults were 224 and 2240. If you have been using the values that are less than the new
minimum values, you should adjust those values accordingly, otherwise you will receive a
return code 04 from stage 1 while running the minimum of CTLBLKS type of system
definition.
26
CSLG=
IOVFI=
OTMAASY=
Note: With the introduction of OTMAASY parameter, IMS has changed the way it
schedules a non-response transaction originating from a program-to-program switch. This
could affect existing applications.
When migrating from IMS Version 7, the CHTS parameter (number of CCB hash table slots)
is obsolete for IMS Version 8. If it is specified in the DFSPBxxx, IMS Version 8 issues the
following message during the start:
DFS1921I - PARAMETER KEYWORD INVALID, CHTS
IMS
IMS Version 8 ignores the CHTS parameter and the processing continues.
27
28
Chapter 3.
Syntax Checker
In this chapter, we introduce the new TSO/ISPF Syntax Checker application. We describe the
functions and benefits of the Syntax Checker, and the Syntax Checker allocation
requirements. We then provide a brief overview and examples of the various functions
through a sample Syntax Checker session.
29
3.1 Introduction
The IMS Syntax Checker is a new ISPF application delivered with IMS Version 8. The Syntax
Checker only runs in an ISPF environment on TSO/E.
Syntax Checker provides the capability to define, verify, and validate the parameters (and
their value specifications) of the DFSPBxxx member of IMS.PROCLIB before restarting the
IMS control region to activate the startup parameters.
The Syntax Checker application performs the following functions:
Syntax Checker aids you in maintaining PROCLIB members by minimizing the need to edit
them directly, reducing the chance for typographical errors. It also aids in the migration
between versions, by identifying all parameters that are new in a release, and parameters that
are obsolete. This reduces IMS setup and configuration time.
The Syntax Checker supports IMS Version 6, 7, and 8, and provides specific validation of
DFSPBxxx members for:
DBCTL initialization parameters
DCCTL initialization parameters
DB/DC initialization parameters
For detailed information on the DFSPBxxx and other parameter members, see IMS Version 8:
Installation Volume 2: System Definition and Tailoring, GC27-1298.
Data set
ISPLLIB
IMS.SDFSRESL
ISPPLIB
IMS.SDFSPLIB
ISPMLIB
IMS.SDFSMLIB
ISPTLIB
IMS.SDFSTLIB
30
This will allocate the libraries and invoke the TSO Syntax Checker application, and will place
you on the Syntax Checker member and data set name panel. Figure 3-2 shows the hierarchy
of the Syntax Checker application menu options, and their functions.
Table 3-2 Syntax Checker application menu structure
Menu item
Sub-menu item
Function
File
1. Save
2. Save as
3. Cancel
4. Change release
Allows you to select the IMS release that the parameters and
values should be validated against.
5. Exit
1. Comment
2. Delete
3. Delete all
1. Display all
2. Display selected
3. Display New
2. Extended help
3. Keys help
4. Help Index
5. About
Edit
View
Help
31
After you have responded with the data set and member name, Syntax Checker reads the
input file and tries to determine, from specially formatted comments, the IMS version and type
of control region. These comments are generated by the Syntax Checker application when
the member has been saved once.
Example 3-1 shows the special Syntax Checker comments in the DFSPBxxx member. The
comments begin with the characters '*<':
Example 3-1 Syntax Checker version and region control comments
*<SYSUID>JOUKO3
*<VERSION>8.1
*<IMSCR>DB/DC
*<DATE>02/06/07
*<TIME>17:35
ALOT=10
...
When a new DFSPBxxx member is created, the IMS procedure library name and member
name must be specified; and the IMS release (for example, IMS 8.1) and type of control
region (for example, DB/DC Control Region) must also be specified. The IMS release and
type of control region is saved as a comment in the DFSPBxxx member. After the DFSPBxxx
member has been saved, the next time the member is accessed, the Syntax Checker can
determine the IMS release and type of control region from the comments in the member.
32
The version of IMS and the type of control region are necessary to correctly process the
member. If Syntax Checker cannot determine the information it requires from the comments
in the member, it will prompt the user for the release and type of control region information as
shown in Figure 3-2. When IMS is able to determine this information, this screen is not
displayed.
After the necessary information is determined or provided, Syntax Checker displays a list of
parameters read from the input member.
The keywords displayed in the list will be determined as follows:
If the member is new or empty then a list of all possible keywords for the member will be
displayed in alphabetical order. A message will be displayed to inform the user that the
member is new or empty.
If the member is not new nor empty then the list will contain the current parameters
defined in the member. The list will be shown in alphabetical order by keyword name. A
display of all possible keywords for the member can be obtained selecting by View>1.
Display all from the action bar.
If there are parameter errors, the parameter is highlighted. Press the enter key without any
other inputs to display the first keyword with a value error at the top of the keyword display.
Figure 3-3 shows the colors used to highlight various parameter keywords while Figure 3-4
shows the colors used to highlight various parameter values.
Table 3-3 Keyword color highlighting
Color
Description
Green
Blue
Yellow
Red
Keyword error
Turquoise
Keyword is a template. It has no value and will not be saved. These keywords are
only displayed using the display all view.
33
Description
Turquoise
Value is correct
Red
Value error
In Figure 3-3, AAAA=1234 and APPLID keywords are invalid. After entering updates; and
pressing Enter, press Enter again to display any other keywords in error.
If no errors are found, a message indicating that no errors have been detected, is displayed.
Invalid keywords are always displayed at the top of the first screen. To delete an invalid
keyword, enter a 'd' in the SEL field of the keyword.
The values of each of the parameters in the display are modifiable. New parameters may be
added and existing parameters may be deleted.
34
As shown in Figure 3-4, after pressing Enter to check the syntax, Syntax Checker indicates
that the ALOT keyword has an invalid parameter value assigned.
35
Detailed help information is provided for each parameter member and each keyword
parameter within the member. To obtain the help screen place the cursor on the line
containing the value and hit the PF1 key. Figure 3-5 shows the help text that is displayed for
the ALOT keyword that contained an invalid value.
36
After correcting the parameter value and again checking the syntax, the Syntax Checker
display a message indicating there were no errors found as shown in Figure 3-6.
37
38
This option validates the member being processed against the release selected. Invalid and
obsolete parameters are identified. Syntax Checker provides a selection of supported IMS
releases as shown in Figure 3-8.
39
The IMS Execution parameter Display - Current Parameters panel is displayed. The new and
obsolete keywords are highlighted. In our example, the CHTS parameter appears highlighted.
Pressing Enter would display the message indicating CHTS is invalid for IMS Version 8 as
shown in Figure 3-9.
40
Selecting option View>1. Display all, from the action bar, which displays all of the valid
keywords for the selected IMS release as shown in Figure 3-11.
41
Select option View>1. Display new, from the action bar, which displays all of the new
keywords that were added for an IMS release, as shown in Figure 3-12. New keywords for
IMS Version 8 are:
CSLG
IOVFI
OTMAASY
For the description of these parameters, refer to 2.4, New and obsolete execution
parameters on page 26 and the manual IMS Version 8: Installation Volume 2: System
Definition and Tailoring, GC27-1298.
42
Select option View>1. Display selected, from the action bar, which displays only the
keywords that have been specified in the DFSPBxxx member that is being viewed as shown
in Figure 3-13.
To add a comment in the DFSPBxxx member, enter a 'C' in the SEL field where you would like
the comment line added as shown in Figure 3-13. After pressing Enter, a comment line is
created in the DFSPBxxx member for you to enter a comment, as shown in Figure 3-14.
Type your comment and press Enter.
Comments can also be added to the same line with the parameter by overtyping the
Description field. If there are comments on the same line in the DFSPBxxx member, they are
displayed in place of the Syntax Checker's description. If there are no same line Comments
then the description will be displayed. The same line comments cannot exceed 42 characters.
43
44
Syntax Checker will prompt for the library and member name for the new DFSPBxxx member,
as shown in Figure 3-16. Type the name of the IMS member where you want the DFSPBxxx
member for IMS Version 8 to be saved and press Enter.
45
Additional information on the parameters and parameter values for the DFSPBxxx member
can be found in IMS Version 8: Installation Volume 2: System Definition and Tailoring,
GC27-1298, and IMS Version 8: Release Planning Guide, GC27-1305.
46
Chapter 4.
Database management
enhancements
In this chapter we introduce IMS Database Manager (IMS DB) enhancements in IMS Version
8. This chapter contains information relating to the following items:
47
Some changes concern the Image Copy 2 utility (DFSUDMT0) itself. Since the IC2 is running
in AMODE(31) and additional control blocks are allocated above the line, the storage use
below the line (below 16 MB) is minimized, which is an important improvement, for example if
multiple copies are running in parallel.
Also, any DBDS level errors do not force the termination of the utility. Instead, there is a return
code of 8 issued. The possible Image Copy 2 return codes are listed in Table 4-1.
Table 4-1 Return codes of the Image Copy 2 utility
Return code
Meaning
0000
0004
0008
0012
0016
The physical output is processed in parallel using multiple TCBs - as long as no other
limitations or constraints exist.
Note: Without DFSMSdss APAR OW54614, DFSMSdss would serialize multiple dump or
restore tasks that are using the same DASD volume, even if the PARALLEL keyword was
specified. APAR OW54614 allows multiple dump tasks to execute in parallel while
dumping to the same DASD volume. The serialization still applies for multiple dump tasks
dumping to the same tape volume.
For further information about the DFSMSdss feature of Concurrent Copy, refer to the IBM
Redbook, Implementing ESS Copy Services on S/390, SG24-5680, Chapter 5, Concurrent
Copy.
There are changed and new messages in IMS Version 8 for image copy completion and
failure notification:
If all the database data sets (DBDS) for a database or HALDB partitions are logically
complete (or those that failed, also notified with this message), the following message is
issued to the system console and the sysprint:
DFS3121A LOGICAL COPY COMPLETE FOR GROUP | DB/AREA groupname |dbname;
n OF m DATA SETS FAILED
The message DFS3121A will only appear if a logical (XL) option was coded, not for any
other option like XP or S. The groupname appears if it is used in the control statements to
group the DBDS and indicates that this group is logically complete. Please refer to the
section about Group name support on page 51.
If the Image Copy is logically complete for each individual database data set (DBDS), the
following message is issued to the sysprint:
DFS3121I COPIED DB/AREA dbname DDN ddname DSN dsname
This message will follow the preceding alert message to list each successfully processed
DBDS (otherwise, in case of unsuccessful process the DFS3122A will be issued for each
failing DBDS).
If all the DBDS for a database or HALDB partitions are physically complete (or for those
that failed, also specified with this message), the following message is issued to the
system console and the sysprint:
DFS3141A PHYSICAL COPY COMPLETE FOR GROUP | DB/AREA groupname | dbname;
n OF m DATA SETS FAILED
The message DFS3141A will only appear if a physical (XP) option was coded, not for any
other option like XL or S. The groupname appears if it is used in the control statements to
group the DBDS and indicates that this group is physically complete. Please refer to the
section about Group name support on page 51.
If the Image Copy is physically complete for each individual DBDS, the following
message is issued to the sysprint:
DFS3141I COPIED DB/AREA dbname DDN ddname DSN dsname
49
Example 4-1 shows utility control statements to copy DBDSs for 4 different databases
(CUSTDB1,..2,..3,..4). Please note the different processing options (S | XL | XP) specified for
the DBDSs. When the image copies for the DBDSs for CUSTDB1 are all logically complete, a
DFS3121A message is issued for CUSTDB1. The DFS3121I message is issued for each of
the five DBDSs processed belonging to CUSTDB1.
When the image copies for the DBDSs for CUSTDB3 are all physically complete, a
DFS3141A message for CUSTDB3 is issued. The DFS3141I message is issued for each of
the three DBDSs processed belonging to CUSTDB3. Copy completion messages are not
issued for CUSTDB2 or CUSTDB4 since a fuzzy image copy was requested.
As you can see the option XL specified for the third DBDS of CUSTDB3 is ignored. The
Image Copy uses the highest level of consistency specified for any of the DBDSs belonging
to the database. This will also apply if you dont specify the options for all DBDSs of a
database. The utility considers processing the database by the following levels of
consistency:
XP
XL
Here are some additional points of interest about the Image Copy options:
With KSDS organized DBDS, take care if you are using the S - option (fuzzy, correlates to
SMSCIC). If the KSDS is being copied along with other DBDSs the utility only makes one
attempt at attaining a logical copy. This one attempt can easily fail, for example if any CI or
CA split happens during the process. If the KSDS is the only data set being copied, the
utility re-attempts the dump process up to 10 times.
The copy completion messages for the XL | XP options as issued in IMS Version 8 are
intended to indicate that the databases may be restarted and available for further
database authorizations. That is why the S - option in use for fuzzy copies does not issue
any completion message.
If some automation steps in your environment are based on any message issued (for
example, DFS3121A) please note the changes. In IMS Version 7, you got the DFS3121A
for all copy types, now the DFS3121I is issuing for each DBDS preceded by the
DFS3121A message for the entire database (or group). Also, there was no indication for
physical copy completion (DFS3141A) in previous versions (job step ending implicitly
indicated the physical copy completion).
50
In the use of the XL | XLC option be aware that the RECON (notification of the Image
Copies) will be updated after the physical process of dump and output data set is finished.
At this time the DFS3121A message has already been issued and may trigger your
automation to perform /STA DATABASE activity. If the physical copy fails after any DBDS
is authorized (intended for update) and an ALLOC entry is created for this DBDS, the
Image Copy is unusable and thus cannot be used for recoveries for any timestamp before
the ALLOC timestamps (allocation or log start time). You should consider if the change to
XP option is the better solution - if this is really critical for your recovery scenario.
Tip: For full exploitation of multiple DBDS and AREA copies and parallel processing
ensure different tape output volumes, otherwise the dump processing is serialized. Also,
please consider that tape processing needs longer execution time. Users who want to
stack image copies on the same output tape volumes should consider using the SAMEDS
option, refer to 4.1.3, Single output data set on page 52.
The generated IC JCL will include a group name statement for DBGRP1A followed by
statements for any DBDS member of the predefined DBDS group named DBGRP1A.
Please refer to GENJCL support on page 53 for discussion on the GENJCL.IC command
support as they relate to Image Copy 2 enhancements.
The new messages mentioned in the previous section will notify the completion for the
processed group and will be followed by the individual DFS3121I or DFS3141I message for
every DBDS. Example 4-2 shows the Image Copy 2 statements, and the corresponding
completion messages.
Example 4-2 Image Copy 2 completion messages
|...+....1....+....2....+....3....+....4....+....5....+....6...
//SYSIN
DD *
G DBGRP1A
XL
2 CUSTDB1 DDNAME1A ICOUT1A1 ICOUT1A2
2 CUSTDB1 DDNAME1B ICOUT1B1 ICOUT1B2
2 CUSTDB1 DDNAME1C ICOUT1C1 ICOUT1C2
2 CUSTDB2 DDNAME2A ICOUT2A1 ICOUT2A2
S
2 CUSTDB2 DDNAME2B ICOUT2B1 ICOUT2B2
2 CUSTDB3 DDNAME3A ICOUT3A1 ICOUT3A2
XP
/*
Output messages:
DFS3121A LOGICAL COPY COMPLETE FOR GROUP DBGRP1A; 0 OF 6 DATA SETS FAILED
51
DFS3121I
DFS3121I
DFS3121I
DFS3121I
DFS3121I
DFS3121I
COPIED
COPIED
COPIED
COPIED
COPIED
COPIED
DB/AREA
DB/AREA
DB/AREA
DB/AREA
DB/AREA
DB/AREA
CUSTDB1
CUSTDB1
CUSTDB1
CUSTDB2
CUSTDB2
CUSTDB3
DDN
DDN
DDN
DDN
DDN
DDN
DDNAME1A
DDNAME1B
DDNAME1C
DDNAME2A
DDNAME2B
DDNAME3A
DSN
DSN
DSN
DSN
DSN
DSN
IMSPROD.CUSTDB1.DD1A
IMSPROD.CUSTDB1.DD1B
IMSPROD.CUSTDB1.DD1C
IMSPROD.CUSTDB2.DD2A
IMSPROD.CUSTDB2.DD2B
IMSPROD.CUSTDB3.DD3A
Please note the option stated on the group statement overrides any option for the following
DBDS statements. If there is no option specified for the group, the default S will be used for
all nested DBDSs. In our example the specified options, S for the first DBDS of CUSTDB2
and XP for the DBDS for CUSTDB3, will be overridden by the XL option of the group
statement.
Note: Processing options S | XL | XP, COMPRESS, OPTIMIZE() on the group statement
override the options specified for the imbedded DBDS statements.
52
S
2
S
S
2
2
/*
CUSTDB1
CUSTDB2
CUSTDB2
CUSTDB3
CUSTDB4
CUSTDB4
DDNAME1C
DDNAME2A ICOUT21 ICOUT22
DDNAME2B
DDNAME3A
DDNAME4A ICOUT4A1 ICOUT4A2
DDNAME4B ICOUT4B1 ICOUT4B2
In Example 4-3 we are using the same DBGRP1A group combined with statements for same
output data set. All three DBDSs for CUSTDB1 data base are to be dumped to the ICOUT11
and ICOUT12 data sets. The two DBDSs for CUSTDB2 together with the one DBDS for
CUSTDB3 are to be dumped to the ICOUT21 and ICOUT22 data sets. Each DBDS for
CUSTDB4 is to be dumped to its own two output data sets. The group is processed logically
and the message DFS3121A will be issued for the group.
You can specify the optimization level 1|2|3|4 on the GROUP or DBDS control statement at
column 61.
Another option that is not really new in IMS Version 8, but is worth mentioning is
COMPRESS. Since IMS Version 7 the DFSMSdss COMPRESS option (at column 60) is
available to reduce the storage space required to hold the Image Copy. However, these
savings costs more CPU time for execution.
Note: If you are taking advantage of the capability to have the Image Copy 2 utility specify
SET PATCH commands to customize DFSMSdss processing, be aware that the zap now
has to be applied in module DFSUDMT2 instead of DFSUDMT0. (APARs PQ63048 and
PQ50832 contain information about the support for SET PATCH commands.)
GROUP(DBGRP1A)
with SMSCIC | SMSNOCIC (*)
DBD(name)
with SMSCIC | SMSNOCIC (*)
53
DBREL( L | P ) if SMSNOCIC is
specified
SAMEDS
COMPRESS
n [1,2,3,4]
Assuming that database CUSTDB1 has 3 DBDS defined for (as pictured in Example 4-3),
consider the following GENJCL input:
GENJCL.IC DBD(CUSTDB1) COPIES(2) SMSNOCIC(4,S,C) ONEJOB DBREL(L)
This invokes the Image Copy 2 tool with the control statements in one execution step as
shown in Example 4-4.
Example 4-4 IC2 control cards
|...+....1....+....2....+....3....+....4....+....5....+....6...
//SYSIN
DD *
2 CUSTDB1 DDNAME1A ICOUT11 ICOUT12
XLC4
S CUSTDB1 DDNAME1B
S CUSTDB1 DDNAME1C
If you leave column one and column 61 blank, you are invoking the Image Copy 2 utility
without any use of the new features. However, you can use the existing skeletal JCL as
provided for exploiting as well as omitting the enhancements.
Note: IMS Database Image Copy 2 enhancements require concurrent-copy capable DASD
controllers.
54
local DMB number, distribute and assign each database to one of the 10 TCBs. At IMS
initialization, after the 10th TCB has begun its open processing, warm start (/NRE or /ERE)
processing is resumed.
This enhancement is very beneficial in when it is necessary to authorize multiple databases
and allocate and open multiple DBDSs during restart processing to return your systems to a
steady state.
4.2.3 Considerations
Since the database allocation and open processing is performed during initialization of a
warm (/NRE and /ERE) started IMS (as well as database deallocation is done during IMS
termination) now the DFS2500I message will not be issued during warm starts nor
terminations when the database is successfully allocated or deallocated.
Also, please check your installation for any additional planning that might be required for DL/I
batch processing. If you are dependent on jobs scheduled during times the online system is
already brought up, but you expect the databases to not yet have been accessed (databases
available, but not open, and transactions, applications not started), the pre-open processing
in IMS Version 8 may require additional planning.
You will now need to ensure that any batch DBRC authorization requests will not fail, since
your IMS Version 8 subsystems are started (and has opened/authorized your databases).
In this case your databases can be taken off-line to the IMS online system through use of the
/DBR command. Alternatively, the installation can implement data sharing to allow the IMS
online system and batch jobs to share databases.
Some installations run a job for a so called pre-open processing to ensure that these
databases have already been allocated and opened when online users start to use them.
This is done to ensure the availability of the databases or to provide a faster startup for the
applications and to avoid any constraints if most of the online activity would be starting at the
Chapter 4. Database management enhancements
55
same time (for example, after network open). Now you are able to eliminate running these
types of jobs since the database allocation and open processing occur during the warm start
of the system (these jobs may still remain necessary for the times IMS has to be cold started).
For databases that are not successfully allocated or deallocated the message DFS2503W will
continue to appear.
There are enhancements relating to IMS in a Parallel Sysplex environment. You will find more
information about these enhancements in Part 3, IMS Version 8 Parallel Sysplex
enhancements on page 135.
Using IRLM there is no change to the lock token formats for DEDBs whose internal AREA
number is 1 through 240.
The message indicates that DEDB authorization has determined that DEDB contains SDEPs.
Note: Nonrecoverable DEDBs are not supported by Concurrent Image Copy.
57
These writes do not occur with VSO DEDBs flagged as nonrecoverable. Updated CIs for
nonrecoverable DEDBs are written to DASD at:
IMS shutdown
when an area is closed (/DBR, /STO, /VUNLOAD)
when the VSO CF structure is out of data entries
The last condition occurs when IMS is running in shared mode using VSO structures and
needs to write an updated CI and there are no entries available in the structure (assuming it is
a non-preloaded shared area). You can get more information about shared VSO in Coupling
Facility support for DEDB VSO on page 60.
Error handling
If any DEDB marked as nonrecoverable gets an error IMS Version 8 will behave as follows:
Read error:
Status code AO will be returned to the application.
Write error to at least one more good MADS:
Tolerating 10 errors (as EQEs) before switching to continue.
Write error to a single ADS or a last good MADS:
Tolerating 10 errors (as EQEs) before the AREA will be stopped and marked as
recovery needed status.
IMS failure and output thread to a nonrecoverable DEDB did not complete:
The next /ERE or XRF takeover will issue a message (and will reissue at each data set
open call until reinitialization or restore of the ADS is done)
DFS3711W Nonrecoverable DEDB integrity warning DEDB=name AREA=name
and during later processing an error can happen causing normal error processing as
an IMS user abend 1026.
Considerations
Nonrecoverable DEDBs (NRDEDB) may not be used by prior IMS systems (IMS Version 7
and earlier). Your DEDBs eligible for nonrecoverable may be changed after you have finished
the migration to IMS Version 8. The DBRC Migration SPE will enforce this. If you try to access
a DEDB marked as nonrecoverable from an IMS system running on a lower version the
allocation will fail and you will get the message DSP0079I in DBRC as shown in Example 4-5.
Example 4-5 IMS Version 7 job logs with failed access to nonrecoverable DEDB
12.08.39
12.08.39
12.08.39
12.08.39
12.09.18
12.09.18
12.09.18
12.09.19
12.09.19
12.09.18
12.09.19
Your operational procedures may need to be changed to catch any database error on a
nonrecoverable DEDB and to restore or reinitialize the affected DEDB using automation
processes.
58
In case of a fallback situation, be aware that before performing the fallback, improperly closed
nonrecoverable DEDBs must be:
1. Restored or reinitialized
2. Changed to recoverable
3. Image copied
You can use the following command with RESTORE option to generate the JCL using the last
Image Copy, just in case you have to recover your DEDB or any other database marked as
nonrecoverable:
GENJCL.RECOV DBD(fpname) [AREA(name)] ... RESTORE
Properly closed nonrecoverable DEDBs (Shutdown, /DBR, /STO) are usable by a prior IMS
version after they have been:
1. Changed back to recoverable
2. Image copied
This is also forced by setting the Image Copy Needed flag (to ensure that DBRC can
generate the proper recovery JCL) when the database is changed to recoverable
(Example 4-6).
Example 4-6 IC needed after change NONRECOV back to RECOV
LIST.DB DBD(DISTDB) DBDS
2002.169 12:06:39.5 -04:00
LISTING OF RECON
PAGE 0003
------------------------------------------------------------------------------DB
DBD=DISTDB
DMB#=2
TYPE=FP
SHARE LEVEL=3
FLAGS:
COUNTERS:
RECOVERY NEEDED COUNT
=0
IMAGE COPY NEEDED COUNT =0
PROHIBIT AUTHORIZATION=OFF
AUTHORIZED AREAS
=1
RECOVERABLE
=NO
EEQE COUNT
=0
...
DBDS
DBD=DISTDB
AREA=AREADI01
TYPE=FP
SHARE LEVEL=3
DSID=00001 DBORG=DEDB
DSORG=VSAM
GSGNAME=**NULL**
USID=0000000019
...
FLAGS:
COUNTERS:
PROHIBIT AUTHORIZATION=OFF
AUTHORIZED SUBSYSTEMS
=1
HELD AUTHORIZATION STATE=3
IC NEEDED
=OFF
ADS AVAIL #
=1
...(CHANGE.DB ... NONRECOV done)...
DB
DBD=DISTDB
SHARE LEVEL=3
FLAGS:
PROHIBIT AUTHORIZATION=OFF
RECOVERABLE
=YES
DMB#=2
COUNTERS:
RECOVERY NEEDED COUNT
IMAGE COPY NEEDED COUNT
AUTHORIZED AREAS
EEQE COUNT
DBDS
DBD=DISTDB
AREA=AREADI01
SHARE LEVEL=3
DSID=00001 DBORG=DEDB
GSGNAME=**NULL**
USID=0000000019
TYPE=FP
=0
=1
=0
=0
TYPE=FP
DSORG=VSAM
59
60
This enhancement is retrofitted to IMS Version 7 by APAR PQ50661. IMS Version 6 does not
support duplexed structures. The management of any IMS structure in the Coupling Facility
as a whole is discussed in Coupling Facility structure management on page 137.
61
During a batch run when the application program issues either a CHKP or a ROLB call, IMS
will determine whether it should coordinate the subsequent syncpoint itself or participate in
the syncpoint coordinated by RRS.
It determines this by expressing interest in the current UOW, and then retrieving the count of
interests expressed. If the count is one, then the lone interest must be IMS's itself and it then
deletes its own interest and coordinates the syncpoint itself.
However, if there has been more than one interest expressed, then batch will initiate the RRS
syncpoint via the ATRCMIT (or ATRBACK) call and assume the role of a syncpoint participant
to RRS.
IM S
A ctive S ite
A PP C
IM S Log R eco rd s
IM S
R S R Tra cke r
IM S Lo gs
IM S D a ta ba ses
S ha do w IM S D atab ase s
(option al)
XRC is a function of DASD storage servers (3990 control units and Enterprise Storage Server
(ESS)) and is using DFSMS System Data Mover (SDM) for asynchronous mirroring of the
necessary DB2 logs and boot strap data sets as shown in Figure 4-2.
62
DFSMS
System Data Mover
ESCON with
DASD Channel Extenders
Storage Server
Storage Server
For more information about XRC please refer to IBM Redbook Implementing ESS Copy
Services on S/390, SG24-5680, Chapter 3, XRC.
Coordinated recovery operations now allow users to recover IMS and DB2 data to a
consistent point in time. The highlights are:
This support is especially interesting for environments with limited bandwidth for XRC
transmissions. Those environments probably cannot support the transmission of the entire
DB2 databases and their updates. Instead, only the logged DB2 and IMS data and the DB2
BSDSs are transmitted.
IMS TM Version 8 can be connected to the DB2 Version 6 and Version 7. The DB2 logs and
BSDSs must reside on devices supporting XRC. DB2 must be running in data sharing mode
since this mode provides timestamps in the DB2 log. Without data sharing mode the DB2
subsystem would use RBAs instead.
63
The XRC tracking cannot be initially started by the /START command (see Operations on
page 65).
You have to specify the session id of the XRC session that is to be tracked because there is
no default value that can be used. The HLQ value specifies the XRC control data set prefix.
There is a default of SYS1 if nothing is specified.
Some prerequisites
Since the log router of the RSR tracker getting log information stays in conversation with any
active transport manager system (TMS) from the isolated log sender (ILS) and maybe from
several IMS subsystems in an IMSplex, the log router will merge these log records in STCK
time order. To do this in a consistent way (in the right creation-time sequence) it requires a
9037 Sysplex timer (or equivalent) for multi-CPC environments (as well as for the DB2
subsystems running in data sharing).
The SDM must be running on the same OS/390 system as the IMS RSR tracking subsystem.
Note: The IMS RSR tracking subsystem must have authority to make XRC requests, for
example a RACF read access to following FACILITY profile:
STGADMIN.ANT.XRC.COMMANDS
64
To create or update your DB2 conditional restart record you should use following options:
DEFER=ALL,
FORWARD=YES,
BACKOUT=YES,
ENDLRSN=timestamp
Specifying DEFER=ALL will eliminate database processing during restart.
DB2 objects must be recovered. The procedures for doing these recoveries are
documented in the DB2 UDB for OS/390 and z/OS V7 Utility Guide and Reference,
SC26-9945.
Tip: To reduce the amount of time required to recover your DB2 tables, you might run
periodic timestamp recoveries (LOGONLY) during tracking. This provides databases that
have been shadowed up to the time of the timestamp recovery.
Figure 4-3 shows the determination of the log truncation points (log synchronization) for
various log streams.
DB2 logs:
DB2A log
t3
DB2B log
t3
IMS logs:
IMSA log
t2
IMSB log
t1
4.5.3 Operations
There are several commands available to operate with the XRC tracking facility:
/STOP XRCTRACK
Note: The stopped status will be persistent across tracking subsystem restarts.
65
/START XRCTRACK
STATUS
ROUTING-STCK
XRC00DB2
ACTIVE
B8848134
5A6D6603
There are several reasons that may appear in the DFS4035A message. For example the
reason:
"XRC CONSISTENCY TIME IS NOT ADVANCING"
This reason indicates that consecutive checking of the XRC time returned the same time and
IMS log tracking is being held up. This message is sent after XRC has not updated its time for
about two minutes. It is sent again about every 10 minutes until the time is updated. It is only
sent when IMS tracking is waiting on XRC.
In addition the IMS user abend 0381 is changed to issue a new reason code in case IMS
tracking subsystem is
26 - unable to create XRC tracking itask.
66
x'4900'
The milestone log record (changed for IMS Version 8) includes flags
and fields which will be used now to capture XRC tracking status and
routing STCK value.
The log record layout can be found in member DFSLOG49 of the macro library (ADFSMAC).
Especially fields and flags of the MPB - the log router milestone position block - are now used.
Note: Requirements for the coordinated IMS/DB2 disaster recovery support are:
The IMS Version 8 RSR Record Level Tracking (RLT) feature is necessary.
The DB2 logs and BSDS must reside on devices supporting eXtended Remote Copy.
4.5.5 Coexistence
IMS Version 8 tracking subsystem with XRC tracking enabled supports Version 6, Version 7,
and Version 8 active systems. However, it is necessary to ensure that all required
coexistence SPEs for IMS systems on previous versions have been addressed.
In an RSR environment, there are some important actions you have to consider if you are
planning to upgrade your RECONs, (active and the tracking RECON). Please refer to IMS
Version 8: Release Planning Guide, GC27-1305 and IMS Version 8: DBRC Guide and
Reference, SC27-1295.
67
68
Chapter 5.
This chapter contains information related to DBRC enhancements and some migration
considerations. The last two bullets in the previous list are discussed only in the overview
chapter. Refer to 1.2.1, Database Recovery Control (DBRC) enhancements on page 4.
69
There is still a limit you could reach, for example, a subsystem record could reach the limit
due to a lot of database authorizations, but there is a long way to go before that limit is
reached.
RECON record spanning and segmenting is transparent. The segments can only be seen if
you print your RECON cluster in an IDCAMS print. At the end of any key the segment number
is assigned. A data Prefix follows the key of the first physical segment and includes the
segment number of the last segment at its end. The Prefix is not included for subsequent
physical segments for that logical record.
Hence some requirements for the RECON cluster definition previous IMS versions are
obsolete now. You can redefine your RECON cluster with the following options:
NONSPANNED: You dont need to change from SPANNED into NONSPANNED, but
anytime after you have finished the migration process for all your subsystems to IMS
Version 8, you should do so as soon as possible.
RECORDSIZE values are not required to be large, up to the maximum value for the VSAM
logical record size. Usable values would be 32K for the CI size and 32K - 7 bytes for
maximum VSAM record size.
The recommendation is for the changes to be made after you have migrated all of your
subsystems to IMS Version 8, because some restrictions apply as long as you are running in
coexistence with IMS Version 6 or IMS Version 7 (see 5.6, IMS version coexistence for
DBRC on page 80).
70
You probably want to issue the messages much earlier, so the value settings may need to be
readjusted. Another example shown in Example 5-2 demonstrates a more useful setting of
these values. To get warning messages when a PRILOG record length reaches 0.5 MB,
2 MB, and 14 MB, set the values as follows:
Example 5-2 SIZALERT and LOGALERT settings
Set SIZALERT(366,999,3)
DSP0007I issued when record reaches 3% of 16MB (0.48MB)
DSP0387W issued when record reaches (16,777,215 - 14,669,392 = ) 2,107,823 bytes .
Set LOGALERT(52,999)
DSP0287W issued when record reaches (16,777,215 - 2,084,272 = ) 14,692,944 bytes .
71
Since the changes in RECON record segmenting, all prior IMS versions need SPEs for
compatibility reasons to coexist in accessing the RECONs that have been upgraded to IMS
Version 8. Refer to 5.6, IMS version coexistence for DBRC on page 80 for more information
about the coexistence.
304
VERSION=8.1
DSN=IMSPSA.SLDSP.IM1A.D02122.T2130342.V11
UNIT=3390
START = 2002.122 21:30:34.2 -04:00
FIRST DS LSN= 0000000000000001
STOP = 2002.123 18:12:11.7 -04:00
LAST DS LSN= 000000000000012A
FILE SEQ=0001
#VOLUMES=0001
VOLSER=IMS002 STOPTIME = 2002.123 18:12:11.7 -04:00
CKPTCT=2
CHKPT ID = 2002.123 18:12:11.4 -04:00
LOCK SEQUENCE#= 000000000000
LOGALL
START
= 2002.122 21:30:34.2 -04:00
*
EARLIEST ALLOC TIME = 2002.122 21:30:38.7 -04:00
DBDS ALLOC=3
-DBD-DDN-ALLOCDISTDB
AREADI01 1
ITEMDB
AREAIT01 1
WAREDB
AREAWH01 1
The log record compression will be indicated by the DSP0135I message as issued prior to
IMS Version 8. If a compression attempt doesnt remove any data set entries, a new message
DSP1150I is issued:
DSP1150I LOG RECORD(S) COULD NOT BE COMPRESSED,
RECORD TIME = timestamp1
reason type = timestamp2
72
However, in RSR environment, the DSP1150I message is suppressed at the tracker because
the console could get flooded with these messages during gap fill processing.
The messages are shown in Example 5-4 and Example 5-5.
Example 5-4 DSP1150I - no compression during DELETE.LOG INACTIVE
DSP1123I
PAGE 0002
PAGE 0003
The compression is automatically invoked during log archive execution. If there is nothing to
compress the DSP1150I is issued.
Example 5-5 DSP1150I - no compression during archive
******** LOG ARCHIVE UTILITY CONTROL STATEMENT *************************
SLDS FEOV(08000)
DSP1123I DBRC REGISTERED WITH IMSPLEX PLEX1 USING EXIT
SYSTEM CHECKPOINT RECORD
-2002.159 00:17:53.468246 -04:00 02158/201753 (TOTIMA) CHECKPOINT SIMPLE
SYSTEM CHECKPOINT RECORD
-2002.161 07:52:27.960457 -04:00 02161/035227 (TOTIMA) CHECKPOINT SIMPLE
SYSTEM CHECKPOINT RECORD
-2002.162 06:10:18.198227 -04:00 02162/021018 (TOTIMA) CHECKPOINT FREEZE
DSP1150I LOG RECORD(S) COULD NOT BE COMPRESSED,
DSP1150I RECORD TIME = 2002.149 13:59:55.3 -04:00
DSP1150I EARLIEST ALLOC TIME = 2002.149 13:59:59.7 -04:00
***
ARCHIVE UTILITY (DFSUARC0) COPIED LOG RECORDS
***
15:10:
FROM DDNAME=DFSOLP03 VOLSER=IMS001
TO PRIMARY SLDS
DSNAME=IMSPSA.SLDSP.IM1A.D02156.T2025163.V17
VOLSER= TOTIMA
DFS3263I ARCHIVE UTILITY ENDED SUCCESSFULLY
73
Resource type
Resource
CHANGE.PRILOG.OLDS
CHANGE.DB.dbname
GENJCL.RECOV.dbname
CHANGE.SUBSYS.ssid
A complete list of all of the resources in resource name table can be found in Appendix E of
the manual IMS Version 8: DBRC Guide and Reference, SC27-1295.
Invoking the authorization process, these entries will be prefixed by the RECON resource
profile high level qualifier (safhlq) as described in following section.
The safhlq is the RECON resource high level qualifier (one to eight characters), which is
defined using the INIT.RECON CMDAUTH or CHANGE.RECON CMDAUTH command in the RECON.
For example, if the safhlq is PLEX1 and you define the resource CHANGE.PRILOG OLDS,
use the following command:
RDEFINE FACILITY PLEX1.CHANGE.PRILOG.OLDS UACC(NONE)
A user of this protected resource now needs to be permitted to this resource profile for read
access (his/her RACF user ID or a usergroup he/she belongs to):
PERMIT resource CLASS(FACILITY) ID(user_id) ACCESS(READ)
Your security profiles may differ for different RECON sets if you are using different resource
qualifiers (safhlq) within the initial set of CMDAUTH command against the RECON sets (as well
as by the CHANGE.RECON command).
74
If a resource entry in the resource name table cannot be found that matches the DBRC
command that was issued, you would receive the following new message:
DSP1162A DBRC RESOURCE NAME TABLE DEFINITION ERROR FOR
COMMAND VERB cmdname MODIFIER modname
Any user of the DBRC command utility needs to be authorized. The expressions valid for the
the CMDAUTH value in the command:
SAF
EXIT
BOTH
NONE
safhlq
RECON high level qualifier for the resource names (one to eight
characters). The safhlq must be specified with SAF, EXIT, or BOTH
and it cannot be specified with NONE.
Note: To disable command authorization the user issuing this command must be
authorized with the current DBRC command security settings.
If the access to the protected command resource failed (authorization denied) the user will
get the new alert message:
DSP1157A USER userid NOT AUTHORIZED FOR COMMAND RESOURCE
NAME=resource name SAF RC=safrc
RACF RC=racfrc RACF REASON=racfrsn
In the event you are using the command authorization exit (DSPDCAX0) denying
authorization you will get another alert message DSP1154A instead. See also 5.3.5, Usage
of the DBRC command authorization exit (DSPDCAX0) on page 76.
When authorization is denied, the utility itself will finish with following informational message:
DSP0209I
75
The DBRC requests passed from the HALDB partition definition utility will be converted to the
equivalent DBRC commands for the purpose of command authorization. IMS Version 8
supports the following command requests:
From any Query, Set, Change, and Delete request
Treated as LIST, INIT, CHANGE, and DELETE commands
Table 5-1 gives you an idea how the HALDB partition definition utility will express its
command request and what is the equivalent form, passed through the DBRC command
authorization environment.
Table 5-1 HALDB request conversion
HALDB request
Master or Partition
Query
master HALDB
LIST.DB DBD(haldb)
Set
master HALDB
INIT.DB DBD(haldb)
Change
partition name
CHANGE.PART DBD(haldb)
PART(partition) ...
delete
master HALDB
DELETE.DB DBD(haldb)
If the exit denies the authorization for the user, the following new error message is issued:
DSP1154A DBRC COMMAND AUTHORIZATION DENIED BY DSPDCAX0 FOR USER userid
RESOURCE NAME = nnn RC = rc
76
As we have shown, the exit can be used in combination with any security product (RACF, etc.)
if you set the CMDAUTH keyword with the value BOTH. In this case the security product will
be invoked first. The SAF return code and RACF return code/reason code are passed to the
exit routine. Our sample exit is basically coded to provide addressability to the parameter
block (DSPDCABK) and copies the return code set by the security product to register 15. In
your own coded exit you are now able to override the return code set by the security product
and to suppress the DBRC SAF error message (DSP1157A). For further details about the exit
(which fields are passed into the parameter block and which values are passed back) please
refer to the descriptions in IMS Version 8: Customization Guide, SC27-1294.
Note: Any jobs using DBRC must have control-level access to all three RECON data sets
(VSAM) if any RACF data set profile is existent for them.
UACC(NONE) USER(JOUKO1(R),JOUKO4(R))
User JOUKO1 is authorized (listed in access list for the CHANGE.RECON.* generic profile)
to set initially the command authority with the saf profile HLQ PLEX1 (Example 5-6):
Example 5-6 CHANGE.RECON CMDAUTH
IRR010I USERID JOUKO1
IS ASSIGNED TO THIS JOB.
ICH70001I JOUKO1
LAST ACCESS AT 12:39:59 ON WEDNESDAY, JUNE
$HASP373 CHNGRCN STARTED - INIT D
- CLASS A - SYS SC54
IEF403I CHNGRCN - STARTED - TIME=12.58.20 - ASID=005D - SC54
+DSP1123I DBRC REGISTERED WITH IMSPLEX PLEX1 USING EXIT
--TIMINGS (MINS.)--JOBNAME STEPNAME PROCSTEP
RC
EXCP
CPU
SRB CLOCK
-CHNGRCN
D
00
216
.00
.00
.0
...
IMS VERSION 8 RELEASE 1 DATA BASE RECOVERY CONTROL
CHANGE.RECON CMDAUTH(SAF,PLEX1)
DSP0203I COMMAND COMPLETED WITH CONDITION CODE 00
DSP0220I COMMAND COMPLETION TIME 2002.177 12:58:21.9 -04:00
IMS VERSION 8 RELEASE 1 DATA BASE RECOVERY CONTROL
DSP0211I COMMAND PROCESSING COMPLETE
DSP0211I HIGHEST CONDITION CODE = 00
The following RECON listing will show the new cmdauth values listed in Example 5-7.
Example 5-7 RECON listing with cmdauth switched on
2002.172 20:58:41.0 -04:00
LISTING OF RECON
----------------------------------------------------------------RECON
RECOVERY CONTROL DATA SET, IMS V8R1
DMB#=13
INIT TOKEN=02015F0058438F
NOFORCER LOG DSN CHECK=CHECK17
STARTNEW=NO
TAPE UNIT=3480
DASD UNIT=3390
TRACEOFF
SSID=IM1A
LIST DLOG=YES
CA/IC/LOG DATA SETS CATALOGED=YES
MINIMUM VERSION = 6.1
LOG RETENTION PERIOD=00.001 00:00:00.0
COMMAND AUTH=SAF
HLQ=PLEX1
77
SIZALERT DSNUM=15
LOGALERT DSNUM=3
VOLNUM=16
VOLNUM=16
PERCENT= 95
-LABEL- -OFFSETUTC
+00:00
DEFAULT = LOCORG LABEL PUNC YYYY
CURRENT = LOCORG LABEL PUNC YYYY
IMSPLEX = PLEX1
-DDNAME-STATUS-DATA SET NAMERECON1
COPY1
IMSPSA.IM0A.RECON1
RECON2
COPY2
IMSPSA.IM0A.RECON2
RECON3
SPARE
IMSPSA.IM0A.RECON3
DSP0180I NUMBER OF RECORDS LISTED IS
1
Any other user (for example, JOUKO2) has no authority to change the RECON record (and
will fail) as shown in Example 5-8.
Example 5-8 DSP1157A - no command authorization
...
+DSP1123I DBRC REGISTERED WITH IMSPLEX PLEX1 USING EXIT
ICH408I USER(JOUKO2 ) GROUP(SYS1
) NAME(JOUKO JANTTI
PLEX1.CHANGE.RECON.CMDAUTH CL(FACILITY)
INSUFFICIENT ACCESS AUTHORITY
FROM PLEX1.CHANGE.RECON.* (G)
ACCESS INTENT(READ
) ACCESS ALLOWED(NONE
)
-JOBNAME STEPNAME PROCSTEP
RC
EXCP
CPU
SRB CLOCK
-CHNGRCN
D
12
171
.00
.00
.0
...
DSP1123I DBRC REGISTERED WITH IMSPLEX PLEX1 USING EXIT
IMS VERSION 8 RELEASE 1 DATA BASE RECOVERY CONTROL
CHANGE.RECON CMDAUTH(NONE)
DSP1157A USER JOUKO2
NOT AUTHORIZED FOR COMMAND
DSP1157A RESOURCE NAME=PLEX1.CHANGE.RECON.CMDAUTH
DSP1157A SAF RC=00000008 RACF RC=00000008 RACF REASON=00000000
DSP0209I PROCESSING TERMINATED WITH CONDITION CODE = 12
UACC(READ)
UACC(NONE) USER(JOUKO4(R))
UACC(NONE) USER(JOUKO2(R))
The universal access (UACC) READ allows every user to list any RECON record. In addition
to LIST, the user JOUKO4 can change (,delete,...) any database record, but not against ALL
in a row whereas user JOUKO2 is authorized to do so. JOUKO2 can only run against ALL
databases. The combination of profile definition (2),(3) and (4) does not protect any database
record listing, the PLEX1.LIST.* definition profile (2) is predominant.
Here are the more precise definitions:
(5) PLEX1.LIST.DB.* (G)
(6) PLEX1.LIST.DB.DISTDB
UACC(NONE) USER(JOUKO1(R))
UACC(NONE) USER(JOUKO3(R))
These are used to protect any database record listing. Only user JOUKO1 is allowed to list
any (and ALL) database records, except the DISTDB database, which is allowed to list for
user JOUKO3 only.
78
Take care with some of the resource names, for example, LIST, INIT or BACKUP.RECON
command verbs. To protect these resources, you eventually have to define discrete RACF
profiles. In other words, you don't need to specify any qualifier for these command verbs. For
example, if you issue a LIST.RECON command for the listing of the entire RECON, the LIST
command verb resource is not covered by following generic profile:
PLEX1.LIST.RECON.* (G)
However, the LIST command verb resource is covered by the following profile:
PLEX1.LIST.* (G)
Also note that any permission for a command verb with qualifier ALL will of course allow you
to act against ALL possible qualifiers of the intended modifier. This is the case even if there
is defined a discrete profile which excludes the read authority for a certain one of them (if you
specify this particular qualifier, your access will be denied as expected).
79
The default value is set to 61. Once you have finished migrating all IMS systems running
in your shared environment to IMS Version 8 (thats the goal and will exploit all of the
enhancements across your IMSplex), you can change this value to avoid any unintended
RECON access from any DBRC instance running on a lower version than IMS Version 8.
Note: The new shared queue support for APPC and OTMA synchronous messages is
only available for IMS Version 8 and needs a MINVERS value of 81.
Since the Time History Table (THT) was used to support IMS Version 5, this table is no
longer used and the keywords THT | REPTHT will be ignored. The table will be deleted
automatically during the RECON upgrade process.
This RECON upgrade process may be invoked by using the DBRC command utility
DSPURX00 to submit the command:
CHANGE.RECON UPGRADE
If you are running in coexistence mode between the IMS versions there are some restrictions
you need to be aware of the following recommendations:
Keep the values for CI size and VSAM record length consistent for all three RECON data
sets, otherwise you will get messages complaining about record mismatch followed by a
user abend 0048 (Example 5-11 on page 81).
The maintenance for coexistence, the compatibility SPEs, will provide the ability to read
and write segmented RECON records. But the used RECON record size in maximum (for
those subsystems running on a lower version) is actually limited to the cluster attribute
defined as maximum VSAM record size of the RECON data sets, as long as you are
running in mixed version mode. This means that the recommended changes of the
attributes in your RECON cluster definition (NONSPANNED, RECORDSIZE and CI size)
should be implemented only if you are running in IMS Version 8 with all of your
subsystems, in other words the migration into Version 8 is finished completely for all IMS
systems, including batch. Keep in mind the usability of the new keyword MINVERS after
your RECON cluster attribute changes.
If you are trying to start an IMS system running on a lower version than IMS Version 8 without
the coexistence SPEs the access to the migrated RECON will fail and the DBRC address
space will receive a user abend 2480 as shown in Example 5-10.
Example 5-10 IMS user abend 2480 - coexistence SPEs missing
12.15.10 STC26189 IEF695I START IVP7FRC1 WITH JOBNAME IVP7FRC1 IS ASSIGNED TO USER STC
, GROUP SYS1
12.15.10 STC26189 $HASP373 IVP7FRC1 STARTED
12.15.10 STC26189 IEF403I IVP7FRC1 - STARTED - TIME=12.15.10 - ASID=03F9 - SC53
12.15.13 STC26189 DSP0008I VSAM LOGICAL ERROR ON RECON1 DATA SET
12.15.13 STC26189 DSP0008I DSNAME=IMS810F.RECON1
12.15.13 STC26189 DSP0008I VSAM FEEDBACK CODE=044
12.15.13 STC26189
KEY TYPE= RECON
, DBD=**NULL**, DDN=**NULL**,
12.15.13 STC26189
TIME=00.000 00:00:00 +00:00
12.15.13 STC26189 DSP0300I INTERNAL DBRC ERROR DSPURI30(PQ39252 )+X2E66 #22 TERM/DUMP
DIAG=VSAM ERROR
12.15.14 STC26189 DFS3932I IMS DUMP REQUEST COMPLETED - RETURN CODE = 000 IMSF
12.15.14 STC26189 DFS629I IMS
TCB ABEND - IMS 2480
IMSF
12.15.14 STC26189 DFS629I PSW AT ERROR = 077C1000 9065732E IMSF
12.15.15 STC26189 IEF450I IVP7FRC1 IVP7FRC1 - ABEND=S000 U2480 REASON=00000000
TIME=12.15.15
The inconsistent maximum record length between the RECON data sets will cause following
messages and a user abend 0048 as shown in Example 5-11.
Example 5-11 Maximum record length mismatch (DSP0023I) and following U0048
STC12761
STC12761
STC12761
STC12761
STC12761
STC12761
STC12761
STC12761
STC12761
STC12761
STC12761
STC12761
STC12761
81
82
Chapter 6.
Transaction trace
In this chapter we discuss the new IMS transaction trace feature. This feature provides useful
diagnostic information for transactions processed in multiple subsystems.
Transaction trace uses a Workload Manager (WLM) CLASSIFY command to determine
whether or not a particular unit of work is eligible for tracing. If specified, a transaction trace
token is passed along in the message prefix, which affects logging. To accommodate the
token, the IMS message prefix size has been increased by 8 bytes.
The steps involved in tracing a transaction are:
1.
2.
3.
4.
Start the transaction trace with a filter using the OS/390 TRACE command.
Run the transactions.
Stop the transaction trace and dump the transaction trace data space.
Use Interactive Problem Control System (IPCS) to view the transaction trace records.
83
A WLM CLASSIFY call determines whether or not a particular unit of work should be traced.
A transaction trace token is passed along in the message prefix. This affects logging, as a
field has been added to the Workload Manager message prefix segment to store the trace
token. The token is used during calls to create trace entries, and is maintained between IMS
entry and IMS exit trace log entries.
84
When IMS completes transaction processing, an IMS exit transaction or exit DL/I trace record
is recorded, and WLM REPORT service is invoked to report response time for the completed
work request, and its corresponding service class.
ASSOCIATE TRANSACTION
WITH SERVICE CLASS
DL/I
CONNECT TO WLM
CONNECT TO WLM
``
RECEIVE A TRANSACTION
PROCESSING REQUEST
Figure 6-2 shows the interaction of components and the execution of transaction trace in a
sysplex environment. It displays the propagation of the transaction trace command across the
sysplex.
85
TRACE TT,TRAN=TRAN1
SYSPLEX
OS/390 or z/OS
WORKLOAD MANAGER
4
TRAN1 TRACE
TOKEN
TRACE CMD
CLASSIFY
TRANSACTION
TRACE DATA
SPACE
9
TRAN1
OS/390 or z/OS
IMSA
TRAN1 TRACE
5
TOKEN
6
WORKLOAD MANAGER
MSC LINK
TRAN1 TRACE
TOKEN
TRAN1
2
TRAN1
TRACE CMD
CLASSIFY
TRAN1 TRACE
5
TOKEN
TRANSACTION
TRACE DATA
SPACE
9
TRAN1
IMSB
4. Use IPCS to view the transaction trace records. The component trace command with the
component subparameter for system transaction trace, as follows is used to display the
trace records.
ctrace comp(systtrc) full
86
MNEMONIC
--------
ENTRY ID
--------
TIME STAMP
---------------
ECSER49
TTCMD
00000002 00:37:51.579839
CMDID.....0501
COMMAND...TRACE TT,TRAN=TRAN1
DESCRIPTION
------------TRACE TT Command
ECSER49
EVENT
00000003 00:38:00.165441 TRACE EVENT
COMPONENT..IMS
EVENTDESC..Entry to IMS
CMDID.....0501
FUNCTION...DFSICIO0
TCB...007C1E88 ASID..0060
TRACETOKEN..00000001
ECSER49
EVENT
00000003 00:38:10.691232 TRACE EVENT
COMPONENT..IMS
EVENTDESC..Exit from IMS
CMDID.....0501
FUNCTION...DFSFXC40
TCB...007CDC20 ASID..0022
TRACETOKEN..00000001
87
88
Chapter 7.
Another APPC related enhancement in IMS Version 8 is the full shared message queue
support for synchronous APPC and OTMA messages. This is discussed in the Parallel
Sysplex enhancements part of this book. See Chapter 12, Shared queues support for APPC
and OTMA synchronous messages on page 147.
89
The command execution will create the new descriptors by reading this PROCLIB member
and will issue similar messages as issued during IMS initialization (creating the descriptors
that have been read from the default DFS62DTy member). We will show you the process to
create additional descriptors in following examples. An example of a PROCLIB member is
shown in Example 7-1 with two new descriptors. Please note also the use of the new added
synonym L62DESC for the keyword DESCRIPTOR [DESC].
Example 7-1 LU 6.2 descriptors in new built PROCLIB member
EDIT
IMSPSA.IM0A.PROCLIB(DFS62DTY) - 01.01
Member DFS62DTY saved
Command ===>
Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 U USATEAM LUNAME=USERP MODE=LU62P
000002 U EURO
LUNAME=UNKNOWN
****** **************************** Bottom of Data ****************************
The /STA DESCRIPTOR Y. command will read this PROCLIB member DFS62DTY and create
these descriptors. If you are using the same PROCLIB shared between multiple IMSs for the
entire IMSplex, or at least using the same member suffix in several IMS specific PROCLIBs,
you can use the SPOC interface for sending the command to multiple IMSs (see Single point
of control on page 235). In Example 7-2 you can see the added descriptors. The naming
conventions for LU 6.2 descriptors must follow the already known rules, also described in
Resource type consistency on page 183.
Example 7-2 Adding LU 6.2 descriptors
19.58.33
20.07.58
20.07.58
20.07.58
90
20.08.30
20.09.12
20.09.12
20.09.12
20.09.12
20.09.12
20.09.12
20.09.12
20.09.12
MODE
LU62P
SIDE
DFSMODE
SYNCLEVEL TYPE
CONFIRM
MAPPED
CONFIRM
MAPPED
SYNCLEVEL TYPE
CONFIRM
MAPPED
Example 7-4 shows the DFS3647W message issued for any duplicate descriptor found in the
DFS62DTY PROCLIB member. Duplicate entries will be ignored. However, successfully
added descriptors are ready to change, as well as existing descriptors since initialization.
Example 7-4 Duplicate descriptors; new descriptors ready to change
20.26.11 STC14179 *419 DFS996I *IMS READY* IM1A
21.07.44 STC14179 R 419,/STA L62DESC Y.
21.07.44 STC14179 DFS3647W MISPLACED OR DUPLICATE DESCRIPTOR USATEAM .
CONTENTS ARE IGNORED.
21.07.44 STC14179 DFS0578I - READ SUCCESSFUL FOR DDNAME PROCLIB MEMBER = DFS62DTY
21.07.44 STC14179 DFS058I 21:07:44 START COMMAND COMPLETED
IM1A
21.11.01 STC14179 R 420,/DIS DESC ALL
21.11.02 STC14179 DFS000I
DESC
LUNAME
MODE
SIDE
SYNCLEVEL
21.11.02 STC14179 DFS000I
USATEAM USERP
LU62P
CONFIRM
21.11.02 STC14179 DFS000I
TPNAME: DFSASYNC
21.11.02 STC14179 DFS000I
EURO
UNKNOWN
DFSMODE
CONFIRM
21.11.02 STC14179 DFS000I
TPNAME: DFSASYNC
21.11.02 STC14179 DFS000I
*2002169/211101*
IM1A
21.11.02 STC14179 *421 DFS996I *IMS READY* IM1A
21.11.51 STC14179 R 421,/CHANGE DESC EURO LUNAME=WELLKNWN.
21.11.51 STC14179 DFS058I 21:11:51 CHANGE COMMAND COMPLETED
IM1A
21.11.51 STC14179 *422 DFS996I *IMS READY* IM1A
21.12.02 STC14179 R 422,/DIS DESC ALL.
21.12.03 STC14179 DFS000I
DESC
LUNAME
MODE
SIDE
SYNCLEVEL
21.12.03 STC14179 DFS000I
USATEAM USERP
LU62P
CONFIRM
21.12.03 STC14179 DFS000I
TPNAME: DFSASYNC
21.12.03 STC14179 DFS000I
EURO
WELLKNWN
DFSMODE
CONFIRM
21.12.03 STC14179 DFS000I
TPNAME: DFSASYNC
21.12.03 STC14179 DFS000I
*2002169/211202*
IM1A
TYPE
MAPPED
MAPPED
TYPE
MAPPED
MAPPED
91
Note: Any descriptor changes are not saved across any IMS restart.
The effect of the /STA and /DEL L62DESC commands are applicable only during the life of an
IMS system and are not persistent across any IMS restart. To ensure that the appropriate
descriptors are added or deleted also for the next restart, you have to update also the
DFS62DTx member which is used during IMS initialization (where x is suffix of the IMS
nucleus).
The value specified is the number of CPU seconds before a time-out occurs. The valid values
are in a range of 0 to 1440. CPUTIME = 0 is the default and it has the special meaning of no
time-out. You can see the use of the new parameter in Example 7-5 in a job invoking the
APPC definition utility ATBSDFMU.
Example 7-5 CPUTIME used in TPADD; JCL, SYSPRINT and SYSSDOUT messages
//IMSTPADD EXEC PGM=ATBSDFMU
//SYSPRINT DD SYSOUT=*
//STEPLIB DD DISP=SHR,DSN=SYS1.MIGLIB
//
DD DISP=SHR,DSN=IMS810.SDFSRESL
//SYSSDLIB DD DSN=SYS1.APPCTP,DISP=SHR
//SYSSDOUT DD SYSOUT=*
/*TPADD TPSCHED_EXIT(DFSTPPE0)
TPNAME(HUGO2)
SYSTEM
ACTIVE(YES)
TPSCHED_DELIMITER(##)
TRANCODE=CPIHUGO2
CLASS=5
MAXRGN=2
CPUTIME=300
##
The new definition in the APPC TP_Profile data set can be displayed also using the APPC
administration utility under TSO (Example 7-6). Editing the TP_Profile entry is also possible
by invoking the IMS edit routine DFSTPROF.
92
The RACF value will be displayed if set to another value than the default CHECK.
Example 7-6 TSO screen browsing certain TP_Profile
ICQASE60 IMSADMIN.TEMP.SYSSDATA --------------------- Line 00000000 Col 001 080
BROWSE DATA FOR TP PROFILE
Command ===>
PF01 = Help
PF07 = Up
PF08 = Down
TP Name: HUGO2
Level : SYSTEM
ID . . . :
********************************* Top of Data **********************************
TRANCODE=CPIHUGO2
CLASS=5
MAXRGN=2
CPUTIME=300
******************************** Bottom of Data ********************************
If the time limit is exceeded when processing a message, this CPI-C transaction abends in a
way consistent to non CPI-C transaction time-outs. A user abend 0240 occurs and the
message DFS554A is issued.
APPC/MVS continues to allow dynamic updates and activation of TP_Profile entries. So you
should be able to react on demand, meaning the definition and activation at once.
The DFSDCxxx PROCLIB member is read during initialization whereas the /CHA command
applies changes dynamically. Any IMS restart will revert to the OUTBND value in DFSDCxxx
member. If a DFSDCxxx member is absent or doesnt include an OUTBND=luname
statement, the BASE LU defined in APPCPMxx member is used instead, which is also the
default value for the outbound LU.
You can issue a /DISPLAY APPC command to list all the APPC/IMS LUs defined to the system
and to figure out which one is being used for outbound processing and/or is defined as the
BASE LU, as shown in Example 7-7.
93
TYPE
BASE
TYPE
BASE
OUTB
TYPE
BASE
OUTB
There are two new IMS messages for outbound APPC/IMS LUs in IMS Version 8:
DFS1985I APPC/IMS OUTBOUND LU xxxxxxxx ACTIVE
DFS1983W APPC/IMS OUTBOUND LU xxxxxxxx NOT DEFINED
The active message is issued if your definitions are correct and the IMS system is accepting
your changes. The not defined message is issued if your outbound LU definition (defined in
the DFSDCxxx member or by the /CHANGE APPC OUTBND= command) is not predefined in
APPC/MVS.
94
Chapter 8.
Application enablement
In this chapter we provide a brief discussion of enhancements to IMS that support new
environments for Java applications.
Support the execution of a Java application in a standalone Java Virtual Machine (JVM)
environment in two new IMS dependent region types:
Java Message Processing (JMP) region type for message driven JVM applications
Java Batch Processing (JBP) region type for non-message driven JVM applications
Java standards enhancements
JDBC DL/I access enhancements
XML and IMS
Many of new features have been retrofitted to IMS Version 7 through the service process.
We recommend reviewing the IBM Redbook IMS Version 7 Java Update, SG24-6536. This
book discusses installation, tailoring and configuration of IMS, CICS, and DB2 environments
to use JDBC to access IMS databases. JDBC access from WebSphere environment is
covered in Chapter 9, Java enhancements for IMS and WebSphere on page 109.
95
8.1 Overview
The following illustration, Figure 8-1, shows an overview of the additional IMS Java
processing environments available for you to run your Java application programs. In addition
to the IMS Java dependent regions, you can access data in IMS databases using Java
application programs running in other OS/390 subsystems.
CICS supports Java application programs using the JDBC API interface to get to IMS data.
The IMS Java Classes use the database resource adapter (DRA) interface to IMS.
DB2 stored procedures using Java can access IMS databases through JDBC application
programming interface (API). The IMS Java Classes use the open database access (ODBA)
interface to IMS.
WebSphere Application Server (WAS) can use Enterprise Java Beans (EJBs) to access IMS
databases through the JDBC API. The IMS Java classes use the ODBA interface to IMS.
JVM
LE
DB2
WAS
Stored
Procedure
EJB
CICS
JCICS
ODBA
IMS/
TM
MPP BMP IFP
JMP JBP
IMS/DBCTL
DLI
Database
View
IMS Java
App
A
P
P
DRA
JDBC / SQL
DB
Base
JNI
AIB Interface
96
The following URL is for the document New IBM Technology featuring Persistent Reusable
Java Virtual Machines, SC34-6034, which describes the Persistent Reusable JVM:
http://www.ibm.com/servers/eserver/zseries/software/java/pdf/jtc0a100.pdf
97
The DFSJBP procedure is the launcher for non-message-driven JVM applications. DFSJBP
is similar to IMSBATCH, and introduces the following parameters: JVMOPMAS and
ENVIRON. The following IMSBATCH parameters are not supported: IN=, PRLD=, and,
SSM=.
Example 8-2 shows a sample DFSJBP procedure that starts a JBP dependent region. This
procedure is created in the IMS PROCLIB as a result of IMS system definition.
Example 8-2 DFSJBP procedure
//
PROC MBR=TEMPNAME,PSB=,JVMOPMAS=,OUT=,
//
OPT=N,SPIE=0,TEST=0,DIRCA=000,
//
STIMER=,CKPTID=,PARDLI=,
//
CPUTIME=,NBA=,OBA=,IMSID=,AGN=,
//
PREINIT=,RGN=512K,SOUT=A,
//
SYS2=,ALTID=,APARM=,ENVIRON=,LOCKMAX=
//*
//JBPRGN EXEC PGM=DFSRRC00,REGION=&RGN,
//
PARM=(JBP,&MBR,&PSB,&JVMOPMAS,&OUT,
//
&OPT&SPIE&TEST&DIRCA,
98
//
//
//
//
//STEPLIB
//
//
//
//
//PROCLIB
//SYSUDUMP
//
//
&STIMER,&CKPTID,&PARDLI,&CPUTIME,
&NBA,&OBA,&IMSID,&AGN,
&PREINIT,&ALTID,
'&APARM',&ENVIRON,&LOCKMAX)
DD DSN=IMS810C.&SYS2.SDFSRESL,DISP=SHR
DD DSN=IMS810C.&SYS2.SDFSJLIB,DISP=SHR
DD DSN=IMS810C.&SYS2.PGMLIB,DISP=SHR
DD DSN=CEE.SCEERUN,DISP=SHR
DD DSN=SYS1.CSSLIB,DISP=SHR
DD DSN=IMS810C.&SYS2.PROCLIB,DISP=SHR
DD SYSOUT=&SOUT,
DCB=(LRECL=121,RECFM=VBA,BLKSIZE=3129),
SPACE=(125,(2500,100),RLSE,,ROUND)
Master JVM
The master JVM controls the set of JVMs within an address space. To ensure isolation
between transactions, each JVM processes only one program at a time, and each JVM is
created in its own Language Environment (LE) enclave to ensure isolation between JVMs
running in parallel.
The JVM manages storage by specifying a heap size. The following JVM options are for the
heap:
-Xinitacsh
-Xinitsh
-Xmaxf
-Xminf
-Xmx
-Xoss
The master JVM is involved only during JVM initialization. It gets initialized under the region
controller and does the following:
Provides the system heap which is shared by all the worker JVMs
Sets up the class-loading environment to be used for loading classes into the system heap
Chapter 8. Application enablement
99
Worker JVM
The worker JVM gets initialized under the IMS program controller.
Sample members
Examples of simple option settings are shown in this section. Example 8-3 shows the JVM
options used in the master JVM member in IMS.PROCLIB (referred by the parameter
JVMOPMAS= in DFSJMP and DFSJBP procedures). The IBM shipped sample member
DFSJVMMS can be found in the target IMS sample library, SDFSSMPL.
Note: The class needs to be in the sharable application path.
Example 8-4 shows the JVM options in the worker JVM member in IMS.PROCLIB (referred
by the parameter JVMOPWKR= in DFSJMP procedure). The IBM shipped sample member
DFSJVMWK can be found in the target IMS sample library, SDFSSMPL.
Example 8-4 Sample JVMOPWKR member in PROCLIB
********************************************************************
* Sample JVMOPWKR= member
*
********************************************************************
********************************************************************
********************************************************************
*
********************************************************************
* The following JVM options are a subset of the options allowed
*
* under JDK 1.3.1S
*
********************************************************************
-Xmaxf0.6
-Xminf0.3
-Xmx64M
-Xoss400k
100
DFSJVMAP
DFSJVMAP maps an 8-byte or less uppercase IMS application name with the fully qualified
Java class name for that application class file as shown in Example 8-4.
The application name is specified to IMS in one of the following ways:
LANG=JAVA, GPSB= parameter on the APPLCTN system definition macro. The
APPLCTN macro has been changed to allow LANG=JAVA for GPSBs.
LANG=JAVA, PSB= parameter on the PSBGEN macro
MBR= parameter on the DFSJBP procedure
Example 8-5 shows application mapping examples relating to both APPLCTN and PSB
definitions.
Example 8-5 DFSJVMAP member in PROCLIB
**********************************************************************
* The following JVM option is set for both examples:
*
*
*
* -Dibm.jvm.shareable.application.class.path=/ims/java/applications *
*
*
**********************************************************************
* Mapping example for an IMS PSB genned as:
*
*
*
*
APPLCTN GPSB=IMSJAVA1,LANG=JAVA
*
*
APPLCTN GPSB=IMSJAVA2,LANG=JAVA
*
*
*
* With the actual java application class file at pathname:
*
*
*
*
/ims/java/applications/imsjava1.class
*
*
/ims/java/applications/imsjava2.class
*
*
*
**********************************************************************
IMSJAVA1=/ims/java/applications/imsjava1
IMSJAVA2=imsjava2
*
**********************************************************************
* Mapping example for an IMS PSB genned as:
*
*
*
*
PSBGEN PSBNAME=IMSJAVA3,LANG=JAVA
*
*
PSBGEN PSBNAME=IMSJAVA4,LANG=JAVA
*
*
*
* With the actual java application class file at pathname:
*
*
*
*
/ims/java/applications/imsjava3.class
*
*
/ims/java/applications/imsjava4.class
*
**********************************************************************
IMSJAVA3=/ims/java/applications/imsjava3
IMSJAVA4=imsjava4
101
DFSJVMEV
The ENVIRON= member is specified on both procedures. It specifies the library path
information for the IMS Java dependent region to find the IMS Java native code.
Example 8-6 shows the DFSJVMEV sample ENVIRON=member that IMS provides. The
example shows DLLs that are described in more detail in the IMS Version 8: Java Users
Guide, SC27-1296. Typically, an application developer does not need to know much about
these DLLs, except to specify them in the LIBPATH if necessary.
The DLLs libjvm.so and libatoe.so are required for the JVM regardless of JDK 1.3.1S.
libjvm.so, for example, contains the JNI methods for initializing and maintaining a JVM.
IMS loads libjvm.so, and thats why its path needs to be specified on LIBPATH=. Some
libjvm.so functions require libatoe.so too.
The DLL libJavTDLI.so is an IMS Java DLL, not to be confused with the IMS Java jar file
(imsjava.jar). The DLL libJavTDLI.so contains native C methods responsible for the DL/I
calls to IMS (GU, GN, etc.). The applications should not use these methods directly, but
rely on the higher level methods in JDBC, DLIConnection, or as a last resort, JavaToDLI.
The DLLs libjvm.so, libatoe.so, libJavTDLI.so, and imsjava.jar are not new. However,
imsjava.jar is a new name in IMS V8; in IMS Version 8, it is called imsjava.zip.
libJavTDLI.so and imsjava.jar are described in the IMS Version 8: Java Users Guide,
SC27-1296. Explanations of libjvm.so are in the New IBM Technology featuring Persistent
Reusable Java Virtual Machines, SC34-6034.
Example 8-6 DFSJVMEV member in PROCLOB
**********************************************************************
* Sample ENVIRON= member
*
**********************************************************************
**********************************************************************
* LIBPATH environment variable
*
* ---------------------------*
* /usr/J1.3/bin/classic is path to libjvm.so
*
* /usr/J1.3/bin is path to libatoe.so
*
**********************************************************************
LIBPATH=/usr/J1.3/bin/classic:/usr/J1.3/bin:/usr/lpp/ims/imsjava81
102
/DISPLAY TRAN
Example 8-7 shows an example of a /DISPLAY of a transaction JVMTRAN associated with
the Java program named JVMJMP1. This /DISPLAY is identical in format to a display of a
program that executes in a MPP (Message Processing Region).
Example 8-7 /DIS TRAN
R 17,/DIS TRAN JVMTRAN1
IEE600I REPLY TO 17 IS;/DIS TRAN JVMTRAN1
DFS000I
TRAN
CLS ENQCT
QCT
LCT PLCT CP NP LP SEGSZ SEGNO
PARLM
RC
IMS1
DFS000I
JVMTRAN1 1
0
0 65535 65535 1 1 1
0
0
NONE
0
IMS1
DFS000I
PSBNAME: JVMJMP1
IMS1
DFS000I
*01144/112828*
IMS1
18 DFS996I *IMS READY* IMS1
ACTIVE REGION
TYPE TRAN/STEP PROGRAM
STATUS
JMP
WAITING
TP
NONE
JBP
NONE
BMP
NONE
FP
NONE
DBT
NONE
DBRC
DLS
IMS1
IMS1
IMS1
IMS1
IMS1
IMS1
IMS1
IMS1
103
/DISPLAY PROGRAM
Example 8-9 shows the region type JBP in a /DIS PROGRAM command.
Example 8-9 /DISPLAY PROGRAM
DIS PGM JVMJBPA
DFS4445I CMD FROM MCS/E-MCS CONSOLE USERID=01: DIS PGM JVMJBPA IMS1
DFS000I MESSAGE(S) FROM ID=IMS1 413
PROGRAM
TRAN
TYPE
JVMJBPA
JBP
*01144/143955*
104
Sensitive
Insensitive
ForwardOnly
Forward-Only
(ResultSets are
iterated in
only one direction)
Scrollable
Scroll-Sensitive
(not supported)
(ResultSets are
iterated in
both directions)
Scroll-Insensitive
Forward-Only which is scroll sensitive and was previously supported (this is the default result
set type)
TYPE_FORWARD_ONLY (scroll sensitive)
Each next() call retrieves data from the database
Calls:
ResultSet.next()
Scroll-Insensitive
executeQuery accesses the database, and caches all results
TYPE_SCROLL_INSENSITIVE
Calls:
ResultSet.next()
ResultSet.previous()
ResultSet.absolute(int)
ResultSet.relative(int)
CONCUR_READ_ONLY
Does not allow updates using the ResultSet interface
Updatable
CONCUR_UPDATABLE
Allows updates using the ResultSet interface
Once database data is returned in the result set the application can update, insert or delete
the data. The PROCOPT in the PCB specifies the processing capability. This cannot be
dynamically changed via the interface.
105
If the application uses a PCB with PROCOPT of read only then it will not be able to make
updates to the database
Figure 8-10 is an example Java statement specifying scroll and concurrency attributes.
Example 8-10 Result set attributes
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)
Field renaming
AS
Aggregates
Ordering
Scalar functions
Unions
UNION
The field renaming SQL statement in Example 8-12 returns all the values in EMPNO in a
column labeled Employee Number.
Example 8-12 SQL field renaming
SELECT EMPNO AS 'Employee Number'
FROM EMPLPCB.Employees
The SQL statement in Example 8-13 returns the average age per department using the AVG
aggregate function.
Example 8-13 SQL aggregates
SELECT AVG(age), department
FROM EMPLPCB. Employees
GROUP BY department
106
The ordering SQL statement in Example 8-14 will return rows ordered by lastName in
ascending order, followed by firstName in ascending order in the case of a tie.
Example 8-14 SQL ORDER BY
SELECT firstName, lastName, department
FROM EMPLPCB.Employees
ORDER BY lastName ASC, firstName
Example 8-15 lists employees' last names in all capitals, into a field named lastCaps
Example 8-15 SQL scalar functions
SELECT UPPER(lastName) AS lastCaps
FROM EMPLPCB.Employees
Example 8-16 lists all employees working for IBM and SUN.
Example 8-16 SQL union
SELECT firstName, lastName
FROM EMPLPCB.IBMEmployees
UNION
SELECT firstName, lastName
FROM EMPLPCB.SUNEmployees
107
108
Chapter 9.
The following Java enhancements are also available in IMS Version 8 (and in many cases
retrofitted to IMS Version 7) and most are covered in the IBM Redbook IMS Version 7 Java
Update, SG24-6536.
109
DB2
S t ore d
P ro c ed u re
C IC S
H
P
J
H
P
J
M P P B M P IF P
JBP
EJB
J
V
M
OD BA
J
V
M
J
V
M
D RA
IM S /D B C T L
JM P
D LI
D ata ba se
V ie w
IM S Ja va
A pp
A
P
P
W AS
J
V
M
JC IC S
IM S / H
P
TM J
J
V
M
JD B C /
SQL
DB
Ba se
IM S
To o - J
l in g
D B D LIB
P S B LIB
EN
DBDG N
E
PSBG N
E
G
B
C
A
JN I
C E E TD LI Interfa ce
C O P Y L IB
110
Applet
Container
Applet
Web Container
HTTP
SSL
JSP
EJB
Servlet
JAF
JDBC
Java
Mail
RMI/IIOP
JTA
JMS
J2SE
JNDI
JAF
JDBC
Java
Mail
RMI/IIOP
JTA
Application
Client Container
JMS
HTTP
SSL
JNDI
J2SE
EJB Container
J2SE
Database
Application
Client
JDBC
RMI/IIOP
JMS
JNDI
J2SE
9.3 DataSource
The DataSource is a factory for connections to a physical data source and is the only way to
obtain a connection using the J2EE architecture in a managed environment (WebSphere with
IMS always uses a managed environment). There is an alternative to the DriverManager
facility in unmanaged environments.
Typically the DataSource is registered with a naming service based on the Java Naming and
Directory Interface (JNDI) API; as shown in Figure 9-3.
The DataSource objects have properties that can be modified when necessary, so code
accessing the data source does not need to be changed.
111
OtherDB
JNDI
PhonebookDB
B"
kD
rce
ou
aS
DRA Name:
IMSC
Lookup
o
bo
ne
t
Da
Admin
tool
b
ne
"
DB
l.
.sq
ax
jav
ho
"P
k
oo
ho
"P
Deploy
AnotherName
Database View:
DFSIVP37DatabaseView
As mentioned earlier the WebSphere IMS application runs as a managed environment. The
DataSource is deployed in JNDI namespace using the WebSphere Application Server for
z/OS and OS/390 Administration tool.
The application (EJB) makes a request for the DataSource and acquires a Connection from it,
see Example 9-1.
Example 9-1 Request for connection
Context ctx = new InitialContext();
DataSource dataSource = (DataSource)ctx.lookup("PhonebookDB");
Connection con = dataSource.getConnection();
For the WebSphere IMS application running in the JVM, the required Java Development Kit
(JDK) and JDBC levels are:
JDK 1.3
JDBC 2.1
The application is run as Enterprise Java Beans (EJBs), using J2EE Connection Architecture
and accessing IMS through ODBA using the DRA.
112
Enterprise Archive
(.ear)
Web Archive
(.war)
HTML
Java Archive
(.jar)
Servlet
Remote
Home
EJB
JSP
JNDI
A
P
P
JDBC /
SQL
DB
Base
JNI
CEETDLI Interface
The IMS WebSphere phone book sample consists of the following major components:
113
To deploy an application in WebSphere for z/OS that uses this resource adapter, you need to
do the following:
1.
2.
3.
4.
5.
Configure the WebSphere server region for access to a particular IMS system
Obtain the WebSphere for z/OS System Administration tool
Install an IMS JDBC Resource Adapter into a WebSphere J2EE server region
Configure and deploy an instance of the IMS JDBC Resource Adapter
Configure and deploy an Enterprise Archive containing an EJB that references an
instance of the IMS JDBC Resource Adapter and bind that reference to a resource
adapter installed in the J2EE server
Note: The instructions following assume that you have installed and correctly configured a
WebSphere for z/OS and OS/390 4.0.1 or later system and have successfully executed
the WebSphere IVP program. It also assumes that your environment in Unix System
Services has been configured to access tools (the Java jar utility) in the IBM Developer Kit
for OS/390 Java Technology Edition.
Restrictions
The EJB that you build to access IMS data is restricted in several ways:
Resource Adapter requires that a global transaction exist prior to you creating a JDBC
Connection, therefore the EJB must use Connection objects in a Get-Use-Close model.
That is, the java.sql.Connection object must be acquired (via
javax.sql.DataSource.getConnection), used, and closed (via java.sql.Connection) within
the scope of a transactional method. You accomplish this either by specifying
container-demarcated transactions in the EJB deployment descriptor, so that the
transaction is started by the EJB container prior to dispatching the EJB method, or by
explicitly beginning a global transaction by calling
javax.transaction.UserTransaction.begin within the EJB method prior to getting a
Connection from a DataSource.
As in the other IMS supported environments, local transactions are not supported,
therefore you cannot use the JDBC Connection methods commit, rollback, or
setAutoCommit.
Component-managed signon is not supported. See the section 9.5.1, Configure the
WebSphere server region for IMS access on page 114 for further details concerning
security.
For further information in building applications that execute in a WebSphere for z/OS
environment, see WebSphere Application Server V4.0.1 for z/OS and OS/390: Assembling
J2EE Applications, SA22-7836. For further information regarding installing the IMS JDBC
Resource Adapter in WebSphere for z/OS, see WebSphere Application Server V4.0.1 for
z/OS and OS/390: Installation and Customization, GA22-7834.
114
DRA startup table that identifies the particular IMS you will be using and characteristics of the
connection to that IMS. This process is described in the topics Accessing IMS Databases via
the ODBA Interface and The DRA Startup Table in IMS Version 8: Installation Volume 2:
System Definition and Tailoring, GC27-1298. See Example 9-3 for an example of a DRA
startup table.
Example 9-3 DRA startup table
//DFSPZPIV EXEC PROC=ASMDRA,MBR=DFSIMSC0
//ASM.SYSIN DD *
PZP
TITLE 'DATABASE RESOURCE ADAPTER STARTUP PARAMETER TABLE'
DFSPZP00 CSECT
*******************************************************************
EJECT
DFSPRP DSECT=NO,
X
FUNCLV=1,
X
CCTL FUNCTION LEVEL
X
DDNAME=CCTLDD,
XXXXXXXX DDN FOR CCTL RESLIB DYNALOC X
DSNME=IMS810C.SDFSRESL,
X
DBCTLID=IMSC,
NAME OF DBCTL REGION
X
USERID=,
XXXXXXXX NAME OF USER REGION
X
MINTHRD=001,
XXX
MINIMUM THREADS
X
MAXTHRD=005,
XXX
MAXIMUM THREADS
X
TIMER=60,
XX
IDENTIFY TIMER VALUE - SECS X
FPBUF=000,
XXX
FP FIXED BFRS PER THREAD
X
FPBOF=000,
XXX
FP OVFLW BFRS PER THREAD
X
SOD=X,
X
SNAP DUMP CLASS
X
TIMEOUT=060,
XXX
DRATERM TIMEOUT IN SECONDS X
CNBA=001,
XXX
TOTAL FP NBA BFRS FOR CCTL X
AGN=IVP
XXXXXXXX APPLICATION GROUP NAME
END
//*
Note: The DRA for ODBA is linked as module name that is based on the following naming
conventions:
Characters 1-3 = DFS
Characters 4 - 7 = specified 1 to 4-byte ID
Character 8 = 0
The recommendation for the 1 to 4 byte ID is that it should be the same as the IMSID of the
IMS system to which you connect. However, this is not a requirement. Ensure that the DRA
startup table module name is not the same as the name of an existing IMS module.
In our example, the DRA module name is DFSIMSC0. This is important when deploying
application as the DRA suffix will be defined to WebSphere as IMSC. After you have
assembled a DRA startup table and linked it into a load library, you must update the started
task JCL for the WebSphere J2EE server region where your EJB executes so that it has
access to the following libraries:
Load library containing the DRA startup table
Load library containing the DRA startup and router routines (usually SDFSRESL)
Partitioned data set (SDFSJLIB) containing the IMS Java native libraries (DFSCLIB)
You provide this access by concatenating the appropriate load libraries to the STEPLIB in the
JCL that starts the J2EE server region of the J2EE server instance. The J2EE server instance
consists of:
A control region that receives and queues client requests to the z/OS or OS/390 workload
manager (WLM).
115
One or more server regions (z/OS or OS/390 address spaces). A server region consists of
several functions that work together to run and manage your applications code. A Java
virtual machine (JVM) runs in a server region address space; your application
components will run in this JVM. WLM starts additional server regions depending on the
volume of incoming requests. Add the appropriate libraries to the STEPLIB of this JCL.
See Example 9-4 for an example of the J2EE server instance JCLs for the control and the
server regions. The required additions are highlighted in the example. We placed our IMS
DRA module into the IMS810C.SDFSRESL. If a different load library is used for the DRA
module, it also has to be concatenated to the STEPLIB and make sure that the library is APF
authorized.
Example 9-4 The control region and the related server region JCL for J2EE server instance
J2EE server instance control region JCL:
//IMOASR2 PROC SRVNAME='IMOASR2A',
//
PARMS=''
// SET RELPATH='controlinfo/envfile'
// SET CBCONFIG='/WebSphereIM/CB390'
//IMOASR2 EXEC PGM=BBOCTL,REGION=0M,
// PARM='/ -ORBsrvname &SRVNAME &PARMS'
//STEPLIB DD DISP=SHR,DSN=DB7L7.SDSNEXIT
//
DD DISP=SHR,DSN=DB7L7.SDSNLOAD
//BBOENV DD PATH='&CBCONFIG/&RELPATH/&SYSPLEX/&SRVNAME/current.env'
//CEEDUMP DD SYSOUT=*,SPIN=UNALLOC,FREE=CLOSE
//SYSOUT
DD SYSOUT=*,SPIN=UNALLOC,FREE=CLOSE
//SYSPRINT DD SYSOUT=*,SPIN=UNALLOC,FREE=CLOSE
//
The related J2EE server region JCL:
//IMOASR2S PROC IWMSSNM='IMOASR2A',PARMS='-ORBsrvname '
// SET CBCONFIG='/WebSphereIM/CB390'
// SET RELPATH='controlinfo/envfile'
//IMOASR2S EXEC PGM=BBOSR,REGION=0M,TIME=NOLIMIT,
// PARM='/ &PARMS &IWMSSNM'
//STEPLIB DD DISP=SHR,DSN=BBO53.SBBOULIB
//
DD DISP=SHR,DSN=IMS810C.SDFSRESL
//
DD DISP=SHR,DSN=IMS810C.SDFSJLIB
//
DD DISP=SHR,DSN=DB7L7.SDSNEXIT
//
DD DISP=SHR,DSN=DB7L7.SDSNLOAD
//BBOENV DD PATH='&CBCONFIG/&RELPATH/&SYSPLEX/&IWMSSNM/current.env'
//CEEDUMP DD SYSOUT=*
//SYSOUT
DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SOUT
DD SYSOUT=*
//
In addition to providing access to the DRA startup table and the DRA code, you must
establish and define the connection security and PSB security to use for security control. See
Establishing and Defining Security in IMS Version 8: Installation Volume 2: System
Definition and Tailoring, GC27-1298. Also, reference IMS APAR PQ50230 for further
information on security in an ODBA environment.
116
Once the above file is on the workstation, click bboninst.exe, and it will install itself. To invoke
the tool:
Click Select>Programs>WebSphere for z/OS>Administration
Figure 9-5 shows the WebSphere administration tool startup window.
After the startup window, the Login window is presented. Enter your user ID and password.
The user ID and password must be valid for your z/OS system. In addition, the user ID must
have been previously defined as an administrator to WebSphere for z/OS. See WebSphere
Application Server V4.0.1 for z/OS and OS/390: Installation and Customization, GA22-7834,
for the details on how to define an administrator user ID. The manual also contains the
description of the other options, that you can modify by selecting the options push button from
the Login window. Figure 9-6 shows the Login window.
117
The tool is operated by creating a new conversation consisting of the desired components.
The conversation is then validated, committed, completed, and activated to implement the
desired changes in WebSphere. Once activated any subsequent changes requires a new
conversation. The tool maintains a trail of these conversations. Figure 9-7 shows the existing
conversation list window.
9.5.3 Install an IMS JDBC Resource Adapter into a WebSphere server region.
The J2EE Connector Architecture defines a Resource Archive (RAR) as the mechanism to
package a resource adapter for deployment into a J2EE Server. As WebSphere for z/OS
does not currently support the automatic deployment of a resource adapter via the Resource
Archive, you are required to manually install the contents of the IMS JDBC Resource Adapter,
imsjava.rar into an Hierarchical File System (HFS) location that the WebSphere for z/OS
J2EE server can access, and configure the J2EE server for access to its contents. To install
and configure the IMS JDBC Resource Adapter, perform the following steps:
118
1. On the same z/OS or OS/390 system on which IMS and WebSphere for z/OS are
installed, create an HFS work directory that permits both read and write authority. Use a
meaningful name for the directory; for example:
/usr/lpp/connectors
2. In the install directory for IMS Java, look for the file imsjava.rar and copy it into the work
directory you created in the previous step. If your installation used the default directory for
installing IMS, you will find the imsjava.rar file in the directory:
/usr/lpp/ims/imsjava81
3. Under the work directory, expand the imsjava.rar file by entering the following command:
jar -xvf imsjava.rar
As a result for the command, number of files are expanded into the directory. The files
include the following:
IMSJdbcCustomService.xml
howto.html
Note: It is highly recommended to read the howto.html file as it contains the latest
information associated with installing the IMS JDBC resource adapter.
4. Using the WebSphere for z/OS System Administration tool, create and activate a
conversation that performs the following steps to define the IMS JDBC Resource Adapter
as a J2EE resource for a WebSphere for z/OS J2EE server.
To add a new conversation, choose Selected>Add, as shown in Figure 9-8.
After clicking add, two fields appear in the window where you are supposed to enter a
name and the description for the conversation. The name can be up to 256 characters
long, and the description is up to 4096 descriptive text. In our example, we give the name
SDM005E to our conversation, as shown in the Figure 9-9.
119
5. Modify the properties for the sysplex containing the J2EE server by checking the box
labelled Connection Management within the Configuration Extensions section. Expand
new conversation (SDM005E) and sysplexes, click Selected>Modify and check box
labelled Connection Management within Configurations Extensions section; see
Figure 9-10.
6. Modify the properties for the J2EE Server to update the CLASSPATH and LIBPATH
environment variable values:
Select CLASSPATH from the Environment Variable List window as shown in
Figure 9-11, and add the full directory name for the file imsjava.jar shipped with IMS
Java. The default path name is the following, if you have not changed it during the IMS
Java installation:
/usr/lpp/ims/imsjava81/imsjava.jar
120
In our example, we have the following path name for imsjava.jar file:
/SC53/imsv8/imsjava81/imsjava.jar)
Clicking the variable opens the Environment Viewing Dialog window as shown in
Figure 9-12. Check that the entered value is correct and then update the LIBPATH
environment variable correspondingly.
Select LIBPATH from the Environment Variable List window as shown in Figure 9-11,
add the full name of the directory containing the file libJavTDLI.so shipped with IMS.
For example:
/usr/lpp/ims/imsjava81
121
location of IMSJdbcCustomService.xml file which you extracted into the work directory
above. If your work directory was /usr/lpp/connectors, then add the following line to the
jvm.properties file as in Example 9-5.
Example 9-5 Update to jvm.properties file
com.ibm.websphere.preconfiguredCustomServices=/usr/lpp/connectors/IMSJdbcCustomService.xml
9.5.4 Configure and deploy an instance of the IMS JDBC Resource Adapter
To access a PSB in IMS from an EJB in WebSphere for z/OS, you need to create and deploy
a configured instance of the IMS JDBC Resource Adapter. Primarily this involves identifying
the IMS system to be accessed, by specifying the DRA Startup Table name, and the PSB and
associated database metadata needed to access that PSB, by specifying the
DLIDatabaseView subclass that provides that information. See IMS Version 8: Java Users
Guide, SC27-1296, for a description of how to build a DLIDatabaseView subclass to access
an IMS database.
Note: If you wish, you may defer specification of the DLIDatabaseView subclass until
runtime, following the lookup of the IMSJdbcDataSource from JNDI. By deferring the
specification of the DLIDatabaseView subclass name, you can use the same resource
adapter instance to access multiple IMS PSBs using the same DRA.
To defer specifying the DLIDatabaseView name, enter any name for the DLIDatabaseView
subclass at deployment and add code similar to shown in Example 9-6 to your EJB to call the
method IMSJdbcDataSource.setDatabaseViewName following the creation of the
connection.
Example 9-6 Code for setting the DLIDatabaseView name at runtime
// Lookup the DataSource in JNDI
IMSJdbcDataSource dataSource =
(IMSJdbcDataSource)(initialContext.lookup("java:comp/env/jdbc/MyResourceAdapter"));
// Update the DatabaseView name in the DataSource
dataSource.setDatabaseViewName("MyDatabaseViewName");
// Create the Connection from the DataSource
Connection connection = dataSource.getConnection();
For the purposes of the IMS IVP sample however we will specify the actual DLIDatabaseView
using the WebSphere for z/OS System Administration tool. We use the following name:
samples.ivp.DFSIVP37DatabaseView
Using the WebSphere for z/OS System Administration tool, create and activate a
conversation that performs the following steps to define and deploy an instance of the IMS
JDBC Resource Adapter into a WebSphere for z/OS J2EE server.
1. Expand the J2EE Resources as shown in Figure 9-13.
122
3. Create a J2EE Resource Instance for the resource created above, Figure 9-15.
123
4. Configure the resource instance with the 1-4 character name identifying the DRA startup
table (IMSC in our case), and the fully qualified name of your DLIDatabaseView subclass.
Optionally, you can enable LogWriter Recording. Figure 9-16 shows the window for these
definitions.
To activate the changes made with the administration tool you need to validate, commit,
complete all, and activate by right clicking the desired conversation. You can do this now, or
you can continue with deploying the EJB part of the application and activate the changes
then. Probably you would like to do it all at the end as once you have activated a conversation
you need to create a new one to make further changes.
Note: At present it is advisable to stop the J2EE server before doing the activate step. This
should no longer be necessary once subsequent maintenance becomes available.
124
/usr/lpp/ims/imsjava81 is the default path name for IMS Java. If you have changed the path
name during the installation, use your own specified path name when locating IMS Java files.
Chapter 9. Java enhancements for IMS and WebSphere
125
Using FTP, transfer the file to a directory on the workstation for use by the WebSphere for
z/OS Administration tool.
9.7.2 Configure an IMS JDBC Resource Adapter instance for the IVP EJB
Changes to a WebSphere Server region are currently accomplished using the WebSphere for
z/OS Administration tool. To install and configure the IMS JDBC Resource Adapter for use by
the IVP program, do the following:
1. Start the WebSphere for z/OS Administration application on the Desktop and connect to
the z/OS server by entering the server machine, user name, and password.
2. Create a new conversation. To create a conversation, highlight Conversations and then
choose Add from the context menu (right mouse) or menu bar (Selected>Add).
In the Conversation window that is displayed, enter a Conversation Name (such as
InstallDataSources) and description (such as Install DataSource for IMS IVP).
Save the changes (Save Icon or Save on Selected menu). You should see the new
conversation listed in the view.
3. Once the new conversation is added, expand the conversation hierarchy (by
double-clicking) down to and including the specific sysplex where the example EJB
application will be installed. You should see the folder J2EE Resources.
4. Define a J2EE Resource for the IVP:
Right-click J2EE Resources and select Add. In the J2EE Resource window displayed on
the right window, add the following: a) J2EE Resource Name: IMSJdbcResource
b) J2EE Resource Type: IMSJdbcDataSource. Save the changes.
5. Define a Resource Instance for the IVP program to associate a target IMS with the
DataSource:
Double-click the J2EE Resources and then double-click the IMSJdbcResource resource
that was added. This will display J2EE Resource Instances. Right-click J2EE Resource
Instances and select Add. In the J2EE Resource Instance window displayed on the right
of the Systems Management EUI window, add the following information:
J2EE Resource Instance Name: IMSJdbcIVPDataSource
System Name: the name of the system where you'll run the server
Input Properties:
Enter the fully qualified name of the DLIDatabaseView subclass that identifies the
metadata for an IMS program status block (PSB).
(Required) DRA Startup Table Name: SYS1 (the 4 character identifier for the DRA
Startup Table)
2. Choose Install J2EE Application from the Selected menu bar as in Figure 9-18. The
Install J2EE Application dialog box appears.
127
Click OK.
4. Click the button Set Default JNDI path and names for all beans from the next window,
as shown in Figure 9-20.
128
JNDI Path
JNDI Name
Use samples.ivp.was.WASIVPSessionHome
7. In the J2EE Resource folder (Figure 9-22) associate the J2EE resource you defined
above, that is, IMSJDBCIVPDataSource, with the resource reference, SDM005ARes.
Click the J2EE Resource field and select your resource instance, in our case SDM005ARes,
as shown in Figure 9-23.
129
Select OK to install IVP. The Systems Management tool will use the Destination FTP
Server you specified to FTP the application into the HFS on that server.
8. Validate, commit, complete all, and activate the conversation to update the J2EE Server.
9.7.5 Update the HTTP Server for access to the IVP Web application
It will make a difference if you have a separate web server as we did. The webcontainer.conf
will be in the J2EE server DDname BBOENV and is path
/SC53/WebSphereIM/CB390/controlinfo/envfile/WTSCPLX1/IMOASR2A
1. Update webcontainer.conf to contain the context root specification for the IVP program.
Add the following string to the end of variable "host.default_host.contextroots":
/IMSJdbcIVPWeb, /IMSJdbcIVPWeb/*
Example 9-7 shows the sample definition for the host.default_host.contextroots variable in
webcontainer.conf after our updates.
Example 9-7 Sample host.default_host.contextroots
host.default_host.contextroots=/IMSJdbcIVPWeb, /IMSJdbcIVPWeb/*, /
2. Add a new Service entry, /IMSJdbcIVPWeb/*, in httpd.conf. (all on one line). This file is in
the Web server you are using, in our case /web/rose/httpd.conf. Example 9-8 shows the
required Service entry in our case.
Example 9-8 Service entry
Service /IMSJdbcIVPWeb/* /usr/lpp/WebSphere/WebServerPlugIn/bin/was400plugin.so:
service_exit
130
Here, host_address is the IP address of the WebSphere HTTP server, and 8080 is the port
address specified in your /path/webcontainer.conf file variable host.default_host.alias, as
shown in Example 9-9.
Remember you can get the path from your J2EE server start task JCL DDname BBOENV.
Example 9-9 host.default_host.alias
host.default_host.alias=wtsc53oe.itso.ibm.com:9808,SC53:9808
You should see the input panel shown in Figure 9-24. Entries can be either displayed, added,
deleted, or updated. The example will display MUNRO, as that entry has already been added
to the phone book database IVPDB2.
First, you enter a last name (MUNRO in our example). Next, you click the radio button
Display an entry and click Submit. You will see the response shown in Figure 9-25.
131
The design of tracing in the J2EE Connection Architecture and that previously defined in the
IMS Java class libraries does not mesh cleanly. In the Connector Architecture, all tracing is
tied to a PrintWriter of a particular ManagedConnectionFactory object. Different
ManagedConnectionFactory objects can use different PrintWriter objects. This is reflected in
the final trace log by headers that identify the ManagedConnectionFactory.
Prior to implementing the Connector Architecture, all tracing in the IMS Java class libraries
occurs on a single Writer object. There is no ability to distinguish trace entries in low-level
service routines based upon which higher-level object, such as ManagedConnectionFactory,
invoked that service routine.
To accommodate these design differences, the IMS Java objects that implement the
Connector Architecture (the com.ibm.connector2.ims.db package), write trace information
(currently minimal) to the PrintWriter associated with a ManagedConnectionFactory and they
write trace information to the IMSTrace object. By default, these trace entries to the IMSTrace
object are independent of the ManagedConnectionFactory and turned off.
132
Using DataSource.setLogWriter, you can merge the tracing that occurs to IMSTrace with that
of the ManagedConnectionFactory PrintWriter object. You do this by calling this method with
the PrintWriter returned from a call to DataSource.getLogWriter as follows:
dataSource.setLogWriter(dataSource.getLogWriter());
The only PrintWriter that can be passed to DataSource.setLogWriter is the one returned from
DataSource.getLogWriter. Any other PrintWriter is ignored.
Here are some other debug options which may provide you better results:
Use IMSTrace to write trace information to a file in HFS. This mechanism should be limited
to debugging and generally should not be used in deployed applications in a production
system.
Use IMSTrace to write trace information to the Java Standard Error stream and configure
WebSphere to put this information into the server region job log. See the discussion of
tracing, and in particular the setting of TRACEBUFFLOC=SYSPRINT, in the WebSphere
Application Server V4.0.1 for z/OS and OS/390: Messages and Diagnosis, GA22-7837
133
134
Part 3
Part
IMS Version 8
Parallel Sysplex
enhancements
In this part of the book we describe the enhancements in IMS Version 8 that are applicable to
the following types of users:
Existing users of IMS Version 6 or Version 7 in a Parallel Sysplex environment
Other users who are considering or planning to exploit sysplex functionality.
135
136
10
Chapter 10.
137
This may be desirable when the structure utilization is approaching its maximum size and
the user wants to make it larger before it fills up.
An example of a structure definition in a CFRM policy is shown in Example 10-1.
Example 10-1 Structure definition in a CFRM policy
STRUCTURE
NAME(IMS_MSGQ_STR0)
SIZE(8192)
INITSIZE(4096)
REBUILDPERCENT(1)
PREFLIST(CF01 CF02)
The structure rebuild command to move a structure from one CF to another is as follows:
SETXCF START,REBUILD,STRUCTURE,STRNAME=IMS_MSGQ_STR0,LOCATION=OTHER
To rebuild a structure without moving it, for example to change its size, the operator would
enter the same command but without the LOCATION=OTHER parameter. Of course one
could do both at the same time, move it and make it larger.
For rebuild to be successful, the structure must have integrity ; that is, it must not be in a
failed state, or on a Coupling Facility which has failed. In addition, user-managed rebuild was
the only type of rebuild supported for these structures. This means that if there was no active
connector to the structure, rebuild would fail. For example, to rebuild (copy) a shared queue
structure, at least one CQS must be active and connected to it.
Prior to IMS Version 8, not all IMS structures supported the rebuild function. For example, a
shared VSO structure could not be rebuilt. To move it, or resize it, it was necessary to
/VUNLOAD the VSO area and then /START it. When it was restarted, a new structure would
be allocated according to the policy SIZE and PREFLIST. All of the other IMS structures
(VSAM, OSAM, IRLM, CQS) supported the rebuild function.
In IMS Version 8, and in IMS Version 7 with appropriate APARs, system managed rebuild is
supported. The difference between system managed and user managed rebuild is that, with
system managed rebuild, an active connector does not have to be available. For example, if
all the CQSs were down, a structure rebuild command could be used to move the structure.
The only definitional requirement for enabling the system managed rebuild is to update the
CFRM Couple Data Set (CDS) to have the following definition:
ITEM NAME(SMREBLD)
138
NAME(IMS_MSGQ_STR0)
SIZE(8192)
INITSIZE(4096)
MINSIZE(2048)
ALLOWAUTOALT(YES)
FULLTHRESHOLD(60)
REBUILDPERCENT(10)
PREFLIST(CF01 CF02)
An example of a command to change the size of the structure (up or down) to 6120K is:
SETXCF START,ALTER,STRNAME=IMS_MSGQ_STR0,SIZE=6120
The only IMS connector which invokes alter internally is CQS. CQS will alter the size of a
structure up when its CQS-defined overflow threshold is reached. It does not alter the
entry-to-element ratio when it does this.
Autoalter is invoked by the system to change the size of a structure to relieve current
Coupling Facility storage constraints (make the structure smaller) or to avoid a structure full
condition (make the structure larger). While it is doing this, the entry-to-element ratio may
also be changed to more accurately reflect actual usage. Autoalter will not be invoked just to
change this ratio.
There are several user requirements to enable autoalter for a structure:
The connector must allow alter when connecting to the structure
The policy must allow alter by including both an INITSIZE and a SIZE
The policy must allow autoalter by specifying ALLOWAUTOALT(YES)
139
10.3.1 Background
Although structures generally do not contain data that is as critical as (for example) a
database, it is nonetheless desirable to be able to recover from a structure failure, Coupling
Facility failure, or connectivity failure. This was especially true for the IMS shared queue
structures which contain the IMS message queues (not a disaster if they are lost, but certainly
painful), and the shared VSO structures (could be recovered through the standard database
recovery process, but could be very time consuming, and painful).
For the shared queue structures, CQS implemented a recovery mechanism which requires
the user to take a structure checkpoint to a structure recovery data set (SRDS), similar to a
SNAPQ, periodically, and then CQS logs all changes to the shared queue structure in a
system logger logstream (which had its own technique for failure recovery). If a structure fails,
CQS can recover it using the SRDS and the logs. While this is effective, it is not very efficient
- lots of overhead creating the structure checkpoint and then logging all the changes.
Fast Paths solution for shared VSO was to implement user duplexing. That is, Fast Path will
create and maintain two copies of a VSO structure. If one fails, then the other remains
available and database recovery is not required. Of course, since shared VSO areas are
recoverable using standard database recovery techniques, user duplexing is optional.
Other IMS structures can be rebuilt by their connectors if they fail. Each IRLM, for example,
knows the locks it holds and so can rebuild its part of the lock structure, and for OSAM and
VSAM, IMS merely invalidates all the buffers and starts over. No big deal.
10.3.2 Duplexing
IMS Version 8 (and Version 7 with appropriate APARs) supports a new CF and z/OS feature
called system managed duplexing. When enabled, the system will maintain a duplicate
copy of the structure on another Coupling Facility. If one copy fails, then the other remains
available (unless its a disaster) and work continues without the need to recover. When (if)
another Coupling Facility is available, duality is automatically restored.
For shared VSO, this means that the user does not have to define dual structures (user
duplexing) and Fast Path does not have to maintain dual structures. For shared queues, the
SRDS and CQS logging is still in effect, but if the message queue structures are duplexed,
then CQS would not have to go through the (perhaps extensive) structure recovery scenario.
For the new resource structure, which has no recoverability of its own (only repopulation,
which is not a complete recovery), duplexing provides for recovery from a structure failure or
loss of connectivity. Duplexing does not make sense for the data sharing structures (OSAM,
VSAM and IRLM) since they can be completely rebuilt without the overhead of duplexing.
140
NAME(IMS_RSRC_STR0)
SIZE(8192)
INITSIZE(4096)
MINSIZE(2048)
DUPLEX(ALLOWED -or- ENABLED)
ALLOWAUTOALT(YES)
FULLTHRESHOLD(60)
REBUILDPERCENT(10)
PREFLIST(CF01 CF02)
When a structure is being duplexed, rebuild is not supported. So, to move a structure to
another Coupling Facility:
1. Stop duplexing, keeping the one that you want. This may require the CFRM policy to be
changed from ENABLED to ALLOWED.
2. Change the PREFLIST on the policy to include the CF to where you want to move the
structure (if not already in the policy). Remove the CF where you dont want the structure.
Activate the updated policy.
3. Start duplexing again, either by command or by changing the policy back to ENABLED.
Shared VSO, Shared Queues, FP EMHQ, IRLM, Resource, OSAM, and VSAM
System managed duplexing is supported for the following structures:
Shared VSO, Shared Queues, FP EMHQ, IRLM, and Resource (same as rebuild)
141
142
11
Chapter 11.
143
Almost all of BPE is object code only (OCO) and many of the enhancements are internal (like
Buffer pool compression) so that they do not require any user action to get the benefits of
them. Some of the enhancements, like BPEPARSE and hash table services, are intended for
use by the people writing IMS components on BPE. The following paragraphs shortly
describe the enhancements concentrating on the externals.
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
The new CSL components, Operations Manager (OM), Resource Manager (RM), and
Structured Call Interface (SCI) all use BPEINI00 to start. CQS can use either BPEINI00 or the
144
existing CQSINIT0. To start a CQS address space using the new BPEINI00 module, code the
following into CQSs start procedure:
//CQS
EXEC PGM=BPEINI00,PARM='BPEINIT=CQSINI00,...'
Initialization and termination exit. The exit is called during early BPE
initialization and late normal BPE termination, it is not called if CSL
address space abends.
STATS
Statistics exit. The exit is called periodically with BPE and IMS
component statistics. Exit call frequency is determined by BPECFG
PROCLIB member STATINTV= parameter.
These exits are available to any address space using BPE 1.4. The INITTERM exit is
provided as a way for user exits to get control when a BPE address space starts and when it
ends. The STATS exit gets called periodically to provide BPE statistics and optionally, IMS
component statistics. The statistics services of BPE has been enhanced to provide the exit
with the information that includes:
New fields are added to the standard BPE user exit parameter list. There are changes in the
way user exits are defined to allow a single PROCLIB member to be used for multiple
component user exits. The BPE environment and the exits are defined in the following
PROCLIB members:
BPE configuration parameters member
BPE user exit list member
Neither one of these PROCLIB members are required, because you can use default values
for the parameters and none of the user exits are required for BPE.
See IMS Version 8: Base Primitive Environment Guide and Reference, SC27-1290 for the
detailed description of these PROCLIB members and information on the coding and use of
the user exits. This manual is a new manual for IMS Version 8 and it is provided in softcopy
only. In IMS Version 7, the BPE information was included in the book IMS Version 7 Common
Queue Server Guide and Reference, SC26-9426.
145
146
12
Chapter 12.
147
12.1 Background
When the shared queues feature was introduced in IMS Version 6, transactions entered to
IMS from an APPC or OTMA client could be processed only on the front-end IMS - the IMS
which received that input message. To enforce this, IMS appended its own IMSID to the end
of the queue name. For example, if transaction TRANABCD were entered into IMS1 from a
LU2 device, its transaction queue name would be 1TRANABCD. That transaction could be
processed on any IMS with registered interest in TRANABCD. If that same transaction were
entered from APPC or OTMA to IMS1, it would be queued with the name of
1TRANABCDIMS1. Only IMS1 would register interest in transactions queued with the
transaction name suffixed with the IMSID of IMS1 (TRANABCDIMS1), so only IMS1 was able
to process it. This restriction limited severely the benefits of shared queues for systems in
which APPC or OTMA was used.
In IMS Version 7, the support for sysplex-wide processing of asynchronous APPC and
OTMA transactions was introduced. Asynchronous APPC transactions are those whose
command sequence is ALLOCATE-SEND-DEALLOCATE. For OTMA, the corresponding
sequence is COMMIT-THEN-SEND (also known as commit mode 0). These are transactions
for which the unit of work is committed before the response is sent to the end-user. The
response is sent asynchronously, whenever it becomes available. With asynchronous
transactions, it was only necessary for a back-end IMS to inform the front-end when the
message was available on the APPC or OTMA output queue. So, in IMS Version 7, these
transactions were queued with the regular transaction queue name (no IMSID appended). If
it was scheduled on a back-end IMS, when the response was available, a message was sent
to a special queue which the front-end monitored and then knew when to go look for the
response.
However, this still left the synchronous APPC (ALLOCATE-SEND-RECEIVE) and OTMA
(SEND-THEN-COMMIT or Commit mode 1) transactions without shared queues support. The
problem with this is that IMS does not put uncommitted messages on the shared queue.
Synchronous APPC and OTMA messages are sent before they are committed, so if the
transaction were scheduled in a back-end IMS, how could the front-end deliver the
uncommitted response? This problem has been addressed and resolved in IMS Version 8,
which now offers full shared queues support to all APPC and OTMA transactions. The new
support uses the z/OS Resource Recovery Service (RRS) multi-system cascaded
transactions support.
12.2 Implementation
Prerequisites for the shared queues support for asynchronous APPC and OTMA messages
are:
All IMSs are at the Version 8 level and the RECONs specify MINVERS(81)
z/OS 1.2 (or higher) with RRS APAR OW50627
RRS must be enabled in all environments where IMS shared queues is running
If any of these are not met, then synchronous APPC and OTMA transactions will be
processed only on the front-end IMS.
When an input message is received from an OTMA or APPC client, the receiving IMS
determines whether the environment is shared queues capable and whether the request is
asynchronous or synchronous. If it is asynchronous, then the actions described above are
taken. If the message is synchronous then IMS also checks to see if the synchronous support
is enabled. IMS stores information about the requester (TPIPE token or remote LU token)
along with the SMQ name, e.g., IMSID, in the input message prefix.
148
If the IMS system processing the message is the front-end IMS, then the IOPCB reply is not
put on the shared queues but rather sent directly to the partner client prior to syncpoint
processing. This is business-as-usual processing.
If the message is processed on a back-end system, then the IOPCB reply must be routed
back to the front-end IMS for delivery since it is the front-end that maintains the connection to
the client. The routing is done prior to syncpoint processing with the back-end holding the IMS
resources until an indication of a commit or abort. Note the following:
All conversational IOPCB reply messages, and messages where all segments added
together are greater than 61K, are routed through the shared queues with a special
notify sent to the front-end via XCF. A specialized OTMA/APPC task in the front-end
reads the notify message which contains the message output queue name, and notifies
the appropriate task to retrieve the message from the shared queues.
All non-conversational IOPCB reply messages less than 61K are sent directly (not through
the shared queues structure) to the front-end using XCF services.
Figure 12-1 shows the general flow of a synchronous message as it is processed in an IMS
shared queue environment.
Shared
Message
Queues
IOPCB reply
IMS2
IMS1
XCF
IMS3
Non-conversational IOPCB reply messages (less than 61K) are sent to the
front-end using XCF services
Conversational IOPCB reply messages or any messages greater than 61K are
sent to the front-end using Shared Queues along with a special NOTIFY message
that is sent using XCF
Figure 12-1 General flow of synchronous APPC or OTMA transaction in shared queues
When an input message is received, IMS determines if the message is synchronous, checks
to see if the shared queues capability is enabled, and invokes RRS callable services to
establish the RRS working environment.
The input message is placed on the global transaction ready queue to be processed by an
available IMS with registered interest. In this example, the back-end system is immediately
available to process the transaction. The back-end IMS invokes RRS callable services to
establish the RRS environment and perform message synchronization.
Chapter 12. Shared queues support for APPC and OTMA synchronous messages
149
The message is processed in the back-end and the IOPCB reply sent to the front-end. All
IMS resources are held pending syncpoint processing until either a commit or backout
indicator is received. Depending on the size of the IOPCB reply and whether or not this is
a conversational transaction, the message is either sent via XCF services or routed
through shared queues.
The front-end IMS delivers the message and interfaces with the partner client following the
rules of sync_level processing - either none, confirm, or syncpoint. Based on the success
or failure of partner interaction, the front-end IMS invokes RRS to either commit or
backout.
The RRS commit or backout is communicated to the back-end for the corresponding
commit or backout. RRS on both sides provide the support for the synchronization of
commit or backout.
At the completion of commit or backout, the front-end IMS interacts with the partner
program to either terminate the connection or to get the next message.
150
The other exception involves a unique situation where a message processed in a back-end
IMS issues multiple program-to-program switches: one or more to a local transaction(s) that
will be processed in the shared queues environment and at least one to a remote transaction
that will be sent across an multiple systems coupling (MSC) link. In this situation, the local
transaction(s) must be processed in the front-end IMS, which has the connection to the APPC
or OTMA partner. It should also be noted that any replies that come back across the MSC link
from the remote IMS system will be sent to the front-end IMS for delivery.
Additionally, if the transaction is processing in a back-end system and the back-end fails, the
front-end is notified and a message is sent to the client which releases the synchronous wait:
DFS2224 BACK-END SYSTEM ABENDED
DFSCMUX0 continues to be invoked on the front-end and back-end when the output reply
cannot be sent. The exit can change the default abort action (except for sync-level of
syncpoint which must continue with the abort).
Chapter 12. Shared queues support for APPC and OTMA synchronous messages
151
When the synchronous support is enabled, it is worth noting that RRS performance directly
impacts IMS performance. The primary areas to consider are the dispatching priority of the
address space as well as the setup of the logstream. Refer to: z/OS V1R2.0 MVS Setting Up
a Sysplex, SA22-7625 for more information.
152
Part 4
Part
Common Service
Layer
In this part of the book we discuss a significant architectural evolution in IMS Version 8.
The Common Service Layer (CSL) is a major progression in the management and operation
of the IMS Parallel Sysplex. The components of the CSL lay the groundwork for an IMSplex.
153
154
13
Chapter 13.
More detailed information on configuring and managing the CSL environment can be found in
Chapter 20, Common Service Layer configuration and operation on page 289.
Detailed examples and discussions of a number of the topics introduced in this chapter can
be found in Chapter 14, Sysplex terminal management on page 177.
155
13.1 Background
IMS has evolved over the years, from Version 1 days where there was no data sharing, to the
current state of IMSplex enablement.
Before IMS Version 1 Release 2:
There was no data sharing capability.
In order to process the database in the batch or utility region, the databases had to be
DBRed.
DBRC was used for recovery only.
Figure 13-1 shows IMS before Version 1 Release 2, and the some of the early processing
restrictions.
IMS
DBRC
No data sharing
Only one IMS at a time could access
the data
Databases protected by user
(DISP=OLD)
To process database in batch or
utility region
/DBR database - PROCESS /START database online
DBRC used for recovery only
No authorization processing
DBs
BATCH
DBRC
UTILITY
DBRC
RECON
Figure 13-2 shows IMS Version 1.2, and the addition of DBRC for database authorization
processing, and the IRLM added as the global lock manager (maximum of two IRLMs) and for
buffer invalidation. The IRLMs communicated via VTAM or CTC links and used pass-the-buck
processing (requiring significant overhead for lock requests.)
156
PTB
IMS
DBRC
IRLM
IRLM
DBs
BATCH
DBRC
IMS
DBRC
BATCH
DBRC
UTILITY
DBRC
UTILITY
DBRC
RECON
IMS Version 5 started to exploit XCF and the MVS Parallel Sysplex by utilizing:
Figure 13-3 is an example of IMS Version 5 exploitation of Parallel Sysplex features. Coupling
Facility utilization (lock and cache structures), along with the very efficient XCF lock
communication utilized by the new version of IRLM (2.1).
Coupling
Facility
OSAM
VSAM
LOCK
IMS
DBRC
XCF
IRLM
DBs
BATCH
DBRC
IRLM
IMS
DBRC
BATCH
DBRC
UTILITY
DBRC
UTILITY
DBRC
RECON
IMS Version 5 increased capacity (more IMSs could participate in data sharing - up to 32
IRLMs and up to 255 IMSs) and improved performance (CF access as opposed to PTB for
lock management and buffer invalidation.)
157
Use of CRC from E-MCS console to send commands to all IMSs in the sysplex and
receive responses
Automatic Restart Manager (ARM) support
Figure 13-4 shows the addition of Coupling Facility cache structure management of DEDB
with VSO, and OSAM buffers. As you can see, IMS is expanding to take advantage of todays
sysplex technology.
SVSO
OSAM
VSAM
LOCK
IMS
DBRC
IRLM
XCF
IRLM
IMS
DBRC
OSAM
BATCH
DBRC
DEDB
BATCH
DBRC
UTILITY
DBRC
UTILITY
DBRC
RECON
As shown in Figure 13-5, IMS Version 6 also added VTAM generic resources support (VGR).
This provided a single system image to the end user, and allowed VTAM to route logon
requests to any IMS in the VGR group. Sysplex wide commands were also enabled using a
common command recognition character for all related IMS systems.
IMS shared queues was added to enable any suitable IMS participating in the shared queues
group to process transactions. IMS now could have a single set of message queues for all
IMSs with the queues stored in CF list structures. A new New Common Queue Server (CQS)
address space was added to manage the queue structure.
158
@START DB
E-MCS
@START DB
LOG
SMQ
OSAM
VSAM
SVSO
LOCK
VGR
LOGR
CQS
LOGR
CQS
IMSA
DBRC
IMSB
DBRC
VTAM
VTAM
Network
LOGON IMS
Figure 13-5 Version 6 VTAM generic resources, and sysplex command routing
IMS Version 7 added shared queues support for asynchronous OTMA and APPC
transactions and support for VTAM multinode persistent sessions (MNPS). The only thing
missing is synchronous OTMA and APPC shared queues transaction support to complete the
shared queues implementation for IMS. This functionality is provided with IMS Version 8.
LOG
SMQ
OSAM
VSAM
SVSO
LOCK
VGR
MNPS
LOGR
CQS1
IMS3
IMS1
DBRC
DBRC
VTAM
TCP/IP
Network
LOGR
CQS2
IMS2
DBRC
VTAM
TCP/IP
APPC/OTMA
159
Shared queues
With a shared queues implementation, messages are placed on a shared queues list
structure according to destination. IMS registers interest in the queues it can process, and the
CQS (common queues server) monitors these queues and informs IMS when there is work to
process. However, some issues remain:
Resource type consistency is not enforced within an IMSplex. There is no guarantee that
destination names are defined consistently on each IMS member (transactions, LTERMs,
etc.)
Resource name uniqueness is not enforced within the IMSplex. The same resource
(name) may be active on more than one IMS (NODE, LTERM, user, user ID).
Global callable services is not supported. IMS user exits cannot determine whether a
terminal or a user resource is already in use in the IMSplex.
Users with significant status cannot resume status on another IMS in the event of an IMS
or other failure.
Conversation mode: If a conversation fails on IMS1 it cannot resume the
conversation on IMS2 if there is a failure on IMS1.
Fast Path response mode: If a transaction is processing in Fast Path response mode
on IMS1, the user cannot retrieve the response on IMS2 in the event of a failure on
IMS1.
Set and Test Sequence Number (STSN) from IMS1 will not be restored if operations
resume on IMS2 in the event of an error on IMS1.
Command significant status such as STOPped, TESTMFS and EXCLUSIVE cannot
be resumed if the session moves from IMS1 to IMS2.
Users with significant status at session termination cannot use VGR to logon to
another IMS if the session or IMS fails, hence the availability benefits are lost.
If the user bypasses VGR and logs directly onto another IMS the significant status is
not resumed on the new IMS.
If VTAM manages the affinities:
All affinities, apart from LU 6.1, are deleted maintaining availability benefits, but forcing
the user to reestablish the desired state, which may not always be possible.
User may develop their own SPOC application using the provided APIs.
The components of the CSL, the Structured Call Interface (SCI), the Operations Manager
(OM), and the Resource Manager (RM) are described individually in the following sections.
161
The intra-IMSplex communication between components are handled by the Structured Call
Interface. For the resource management, a new resource structure can be defined in the
Coupling Facility. Resource Manager uses CQS to manage the resource structure.
Figure 13-7 describes the CSL components and shows their relationship to each other. All the
address spaces above use the SCI to communicate as required. It is the SCI that provides the
mechanism for the intercommunication. You require one SCI per OS/390 or z/OS which has
one or more IMSs taking part in the IMSplex. You only require one OM and if using the RM,
one RM per IMSplex (because the SCI allows communication as required). However for
performance and availability it is better to also have one OM and one RM per OS/390 or
z/OS.
CSL Configuration
SPOC
Automation
SPOC
Automatic RECON
Loss Notification
Automation
Operations
Manager
(OM)
Structured
Call
Interface
Resource
Manager
(RM)
SCI
SCI
SCI
Shared
Queues
SCI
Communications
Master
Terminal
IMS
Control
Region
S
C
I
S
C
I
Common
Queue
Server
(CQS)
End User
Terminal
DBRC
162
SCI
CF
IMS
CQS
SCI
New CSL
address spaces
CQS
Online DBRC
DBRC Batch Utility
Batch with DBRC
Utility with DBRC
SCI
IMS
Figure 13-8 depicts an IMSplex running on a four operating systems image sysplex, each with
the CSL address spaces (SCI, OM, RM), a CQS address space, data sharing, and with VTAM
generic resources.
IMSplex Configuration
OM
SCI
RM
RM
SCI
OM
SCI
SCI
S CI
SCI
SCI
SCI
XCF
SCI
IMS
CTL
S
C
I
S
C
I
SCI
S
C
I
CQ
S
CF
XCF
IMS
CTL
CQ
S
S
C
I
XCF
Resource
List Structure
LOGR
List Structures
SMQ
List Structures
OSAM
Cache Structure
VSAM
Cache Structure
Shared VSO
Cache Structures
IMS
CTL
S
C
I
S
C
I
CQ
S
SCI
S
C
I
CQ
S
XCF
IMS
CTL
S
C
I
SCI
OM
SCI
RM
RM
SCI
OM
SCI
SCI
SCI
SCI
SCI
SCI
IRLM
Lock Structure
VGR
List Structure
Automatic RECON loss notification requires at a minimum that there is an SCI on each
OS/390 image and that each IMS DBRC or utility or batch job using the RECONs has
specified the same IMSPLEX= value, either via an execution parameter or a user exit.
Single point of control, global online change, and sysplex terminal management require the
full CSL environment, that is in addition to the SCI as above, at least one OM and one RM in
the IMSplex.
Sysplex terminal management also requires a resource structure.
Global online change can be implemented without a resource structure, but to have
consistency checking of the online change ACBLIB, FORMAT, MODBLKS, and MATRIX data
sets, including all concatenations, you require a resource structure. Otherwise you must
ensure consistency of the data sets involved.
163
The structured call interface services are used by SCI clients to register and deregister as
members of the IMSplex, and to communicate with other members. The SCI client issues
CSL macros to execute code in the SCI address space, cross memory services under its own
TCB, or scheduling an SRB in SCI address space.
The SCI configuration is that one SCI address space is required on each OS/390 or z/OS
image with IMSplex members.
The other address spaces in the IMSplex register with the SCI. The following components all
register and interact with SCI.
CSL address spaces - Operations manager (OM) and the Resource Manager (RM).
Common Queue Server (CQS)
IMS - DB/DC, DBCTL, DCCTL, FDBR
Automated Operator Programs (AOP) such as single point of control (SPOC)
DBRC
Batch with DBRC
Others - the CSL (SCI) interface is documented, and may be accessed by vendor or user
programs.
13.4.1 Today
Todays sysplex operations management does not provide an IMS single image. Commands
can be routed to multiple IMS systems using the E-MCS console function that requires a
common command recognition character (CRC) defined in IMS.PROCLIB member
DFSPBxxx. Also, to direct a command to a specific IMS system you need to know the OS/390
system name and the IMS name. The CMD and ICMD DL/I calls of the Automated Operator
Interface only affect the IMS system they are using. They cannot manage other IMS systems.
RACF can be used to secure commands entered from MCS/E-MCS but DFSCCMD0 is
needed to secure command at the verb, keyword, and resource levels.
Commands may be entered by each MTO but most commands and automation processes
today can only affect an individual IMS. Some commands have a GLOBAL parameter, but
asynchronous responses (e.g., DFS0488I message) from other IMSs are not returned to the
MTO entering command see Example 13-1.
Example 13-1 Command with both synchronous and asynchronous responses
/DBR DATABASE XYZ GLOBAL
DFS058I DBR COMMAND IN PROGRESS
DFS0488I DBR COMMAND COMPLETED DBN XYZ
RC=nn
164
@ DBR DB XYZ
MTO
M TO
E-M CS
/STA DB
IMS1
IM S2
SM Q
MTO
/STOP NODE
DB
N etwork
IM S3
/STO P TRAN
Shared Resources
IMS4
MTO
/DIS STATUS
13.4.2 OM infrastructure
The OM utilizes BPE services and provides an API allowing single point of command entry
into the IMSplex. Communication with other IMS address spaces is via the SCI. OM is a focal
point for operations management and automation, and consolidates command responses
from multiple IMSs.
The following services are provided to members and clients of an IMSplex:
Route commands to IMSplex members registered for the command
Consolidate command responses from individual IMSplex members into a single response
to present to the command originator
Provide an API for IMS command automation
Provide a general use interface for command registration to support any command
processing client
Provide user exit capability for command and response editing, and for command security
Supports existing IMS commands (classic commands) and introduces new IMSplex
commands
The CSL configuration requires one OM address space per IMSplex, but one per OS/390 or
z/OS image is recommended for performance and availability.
Figure 13-10 shows an IMS Version 8 CSL environment which has the ability to issue IMSplex
wide commands and receive their responses from one place via SPOC.
165
SPOC
Operations
Manager
(OM)
Structured
Call
Interface
Resource
Manager
(RM)
Resource
List Structure
SCI
SCI
SCI
Transactions
Lterms
SCI
Communications
Automation
Msnames
IMS
Control
Region
MTO
S
C
I
S
C
I
Common
Queue
Server
(CQS)
Users
Nodes
Userids
VTAM
(TCP/IP)
Processes
.....
End
Users
Figure 13-10 CSL with OM and SPOC issuing IMSplex wide commands
Figure 13-11 shows a much larger IMSplex with four OS/390 images in the sysplex and one
IMS on each of these OS/390s. OM is routing commands and consolidating responses
centrally throughout the IMSplex.
166
Automation
SPOC
SCI
SCI
OM
OM
IMS2
IMS1
OM routes command
to one or more IMSs
CF
SCI
IMS3
OM consolidates
responses for SPOC
OM
RM
IMS4
OM
SCI
Consolidated response
OM consolidates the command responses from the individual IMSplex members into a single
response which is presented to the command originator. You can also specify a time-out
value for the response which represents the maximum amount of time you would like to wait
for the response before the request times out.
Command security
Authorization is performed within OM before sending the commands to IMS using RACF (or
equivalent security product). There is also the option of calling a user written exit to perform
command security.
OM APIs
OM provides two types of API support for Automated Operator Program (AOPs).
CSLOMI API:
The CSLOMI API is used to support command string built by workstations. IMS Connect
could use CSLOMI. Command strings are passed to OM and command responses are
returned to the client in XML format.
167
CSLOMCMD API:
The CSLOMCMD API is used by IMS TSO/SPOC. Command keywords are passed to OM
and command response are again returned in XML format.
OM command processing support:
OM does not distribute unsolicited output messages to an AOP. You can use Netview or
another automation product to trap IMS messages and then send them to an automation
program (communication external to IMS). The automation program could then issue a
command on behalf of the event. Also, OM does call the output user exit routine passing
the unsolicited message. The user exit routine can then provide its own technique to
distribute the message. For example, an OS/390 write to operator (WTO) macro could be
used to write the message to the system console. OM does not support command
recovery, except in cases that will be changed for RM processing (discussed in RM
section later), nor does OM support restart.
These are clients which process commands entered from other address spaces. IMS and
RM are command processing clients.
Command entry (CE) AO clients
These are clients through which commands are entered to the OM and then to the
command processing clients. SPOC is an example of such a client.
These clients use the CSLOMCMD macro interface to OM.
Command forwarding (CF) AO clients
These are clients which are forwarding commands strings built elsewhere, probably by a
workstation SPOC (GUI) and processing the returned responses.
These clients used the CSLOMI macro interface to OM.
All OM services are invoked by CSLOMxxx macros. OM Macro coding and use is described
in IMS Version 8:Common Service Layer Guide and Reference, SC27-1293.
13.4.4 Commands
With the new CSL architecture, new commands and command syntax has been created to
operate on IMS systems at the IMSplex level.
Sysplex commands
The following commands are new with IMS version 8 and can only be processed via the OM:
168
INIT
INITiate process
INIT OLC
TERM
TERMinate process
TERM OLC
DEL
DELete resource
DEL LE
UPD
UPDate resource
UPD LE
UPD TRAN
QRY
QueRY resource
QRY IMSPLEX
QRY LE
QRY MEMBER
QRY OLC
QRY TRAN
QRY STRUCTURE
For complete details on the new IMS commands, see IMS Version 8: Command Reference,
SC27-1291.
Classic commands
Most classic IMS commands can be entered through the OM API.
IMS commands specific to an input LTERM are not supported by OM, such as those in
Example 13-2.
Example 13-2 Classic commands which cannot be issued through OM
/EXC, /EXIT, /FORMAT
/HOLD, /(UN)LOCK node, pterm,lterm
/SET, /SIGN
/TEST MFS, /RCL, /REL
169
NODE XYZ is flagged as stopped in the resource structure, now NODE ABC cannot log on to
any IMS in IMSplex.
The above command will execute in each IMS where the command is routed, and all will
return the same value (global queue count).
Most commands depend on several factors:
OM and BPE definition is addressed in more detail in Chapter 20, Common Service Layer
configuration and operation on page 289.
The available OM exits consist of the Client Connection User Exit, the
Initialization/Termination User Exit, the Input User Exit, the Output User Exit and the Security
User Exit. Detailed information on these exits can be found in IMS Version 8:Common
Service Layer Guide and Reference, SC27-1293, and IMS Version 8: Base Primitive
Environment Guide and Reference, SC27-1290.
The following is a brief description of the exits and their function.
170
171
IMSplex
Resources are
Shared
Shared
Queues
Data
Sharing
CF
Descriptor
Name
APPC
CPI-C
Transaction
Static
Node
(Static node
user)
Lterm
Userid
IMSplex
IMS1
IMS2
ISC
Parallel Sessions
Dynamic
Node
User
Lterm
Userid
Single Session
IMS3
MSC
Msname
ISC
Online Change
Libraries
Node
User
Lterm
Userid
172
started on one OS/390 image in the IMSplex, although multiples are recommended for
availability and performance.
Operations
Manager
(OM)
Structured
Call
Interface
Resource
Manager
(RM)
SCI
SCI
SCI
SCI
Communications
IMS
Control
Region
S
C
I
S
C
I
Common
Queue
Server
(CQS)
Resource
List Structure
LOGR
List Structures
SMQ
List Structures
OSAM
Cache Structure
VSAM
Cache Structure
Shared VSO
Cache
Structures
IRLM
Lock Structure
VGR
List Structure
MNPS
List Structure
173
IMS
Control
Region
(CTL)
SCI
Resource
Manager
(RM)
Common
Queue Svr
(CQS)
SCI
SCI
CQS
CF
Resource
Structure
CQS
Transactions
Nodes, LTERMs, MSNAMEs, APPC descriptors, users, user IDs
Global processes such as online change
IMSplex global and local information
Although the structure is optional, if it does not exist, then there is no global repository for
sysplex terminal information and the sysplex terminal management function of IMS is
disabled. Global online change, while it makes use of the structure for recovery from some
error conditions, does not require the structure. More information about the resource structure
and how its contents can be found in 14.7, Resources and the resource structure on
page 195.
174
a single IMS control region. In IMS Version 7 CQS was enhanced to support multiple IMS
control regions as long as they are on the same OS/390 image and belong to the same
shared queues group.
In IMS Version 8 CQS has been further enhanced to also support the interface between RM
and the resource structure while continuing to support shared queues. That is, a single CQS
can support both shared queues and the resource manager. However, CQS shipped with IMS
Version 8 does not support IMS Version 6 or IMS Version 7 shared queues. For example, if
you have both IMS Version 7 and IMS Version 8 in the same shared queues group, they
require different CQSs. Figure 13-15 shows one CQS supporting both IMS shared queues
and RM.
These are some of the CQS enhancements delivered with IMS Version 8:
Support for list structures with programmable list entry ids (LEIDs) to guarantee
uniqueness
Support for structure alter and autoalter, system-managed rebuild, and system-managed
duplexing
Ability to initiate structure repopulation to rebuild a failed resource structure
Resource
OS
Shared
Queues
IMS
Control
Region
(CTL)
Operations
Manager
(OM)
Structured
Call
Interface
SCI
SCI
SCI
IMS
Control
Region
(CTL)
Resource
Manager
(RM)
Common
Queue Svr
(CQS)
SCI
SCI
SCI
CF
CQS
SCI
IMS
SCI Interface
CQS
interface
175
At least one RM address space is required within the IMSplex. If a resource structure exists,
then multiple RMs can be started and is recommended for performance and availability. If
there is no resource structure then there can be only one RM in the IMSplex. Like other
IMSplex components, RM registers with SCI and uses SCI to communicate with its clients
(IMS control regions). A single RM can support multiple IMS Version 8 control regions if they
are in the same IMSplex. This is true even if those control regions are on different OS/390
images. Figure 13-16 shows one RM providing support for two IMS control regions on the
same OS/390 image and one IMS control region on another OS/390 image. A total of 32 IMS
control regions can be supported by a single RM. Note that, if a resource structure is being
used, each RM requires a local (same OS/390 image) CQS to access the structure.
Resource
z/OS
Shared
Queues
IMS
Control
Region
(CTL)
Operations
Manager
(OM)
Structured
Call
Interface
SCI
SCI
SCI
IMS
Control
Region
(CTL)
Resource
Manager
(RM)
Common
Queue Svr
(CQS)
SCI
SCI
SCI
CF
CQS
SCI
IMS
SCI Interface
CQS
interface
13.5.7 RM characteristics
The IMS Version 8 Resource Manager is both a client and a server within the IMSplex. It has
the following characteristics:
RM is a client if the Structured Call Interface (SCI) and registers with SCI as a member of
the IMSplex, enabling SCI communications with other members of the IMSplex.
RM is a client of the Operations Manager (OM) and registers RM-related commands for
which RM is a command processing client. At this time, the only command RM registers
with OM is QUERY STRUCTURE, which display resource structure statistics.
RM is a client of the Common Queue Server (CQS) and uses CQS to manage the
resource structure. The RM interface with CQS uses the CQS interface, not the SCI
interface.
RM is a server to the IMS control region. The control region registers with RM to perform
sysplex terminal management and to coordinate global online change.
176
14
Chapter 14.
STM objectives
STM environment
IMSplex resources
STM terms and concepts
Resource type consistency
Resource name uniqueness
Resource status recovery
Resource ownership and affinities
Impact of STM on IMS exits
Examples of STM in action
Global callable services
177
Sysplex terminal management addresses these and similar resource management issues of
the IMSplex. Specifically, STMs objectives are to accomplish the following:
Provide for resource type consistency:
Do not allow a resource to be active on more than one IMS at a time. Resources managed
by this function are single session VTAM NODEs, Extended Terminal Option (ETO)
USERs, LTERMs, and (if requested) USERIDs. For example, do not let LTERMA be active
on IMS1 and IMS2 at the same time. Do not allow USERA to be signed on to both IMS1
and IMS2.
Support global resource status recovery:
Allow a terminal user to terminate a session on one IMS (normally or abnormally) and
resume (or recover) that users status on another session with another IMS. A status for
which recovery is supported is called significant status. For example, if USERX is in a
conversation on IMS1, and IMS1 fails, that user may resume the conversation after
reestablishing a new session on IMS2.
Support global callable services:
Allow an IMS exit using callable services to determine the status of a resource anywhere
within the IMSplex. For example, the Signon Exit (DFSSGNX0) should be able to
determine if a USER is signed on anywhere within the IMSplex.
178
Operations
Manager
(OM)
Structured
Call
Interface
Resource
Manager
(RM)
SCI
SCI
SCI
SCI
Communications
IMS
Control
Region
S
C
I
S
C
I
Common
Queue
Server
(CQS)
Resource
List Structure
LOGR
List Structures
SMQ
List Structures
OSAM
Cache Structure
VSAM
Cache Structure
Shared VSO
Cache Structures
IRLM
Lock Structure
VGR
List Structure
MNPS
List Structure
179
dependent regions running application programs, VTAM and OTMA network resources, batch
and utility address spaces, and probably several more. Most of these resources have names
by which they are known to IMS. When IMS systems are cloned, or have similar definitions,
many (or all) of these names are the same throughout the IMSplex and can form the basis for
IMSplex-wide system management functions.
Sysplex terminal management addresses the management of a subset of these resources,
primarily those defined as part of the VTAM network. These resources, and the names they
are known by, are shown in Figure 14-2. Note that STM supports neither BTAM nor OTMA
resources.
SQ
STM-managed
resources
Descriptor
Name
Rsrc
CF
APPC
CPI-C
Transaction
Static
Node
(Static node user)
Lterm
Userid
IMSplex
Transaction
ISC
Parallel Sessions
Dynamic
Node
User
Lterm
Userid
Single Session
MSC
Msname
Node
User
Lterm
Userid
Node
(Static node user)
Lterm
Userid
ISC
This figure identifies the resources managed by sysplex terminal management. Each of these
resources can be the source or destination of an IMS message, and has one or more names
associated with it. Each name represents an IMS control block. How IMS handles these
messages is determined solely by its message destination name, which usually represents
an anchor block from which to queue the message. Each named resource may be
represented by an entry in the resource structure.
180
These names may be used to create entries in the resource structure. For parallel session
ISC terminals, or for NODEs created dynamically using ETO, another control block (the
SPQB) is created representing the ETO USER. Because there is no USER equivalent for
statically defined single session VTAM resources, a new name is invented to be used strictly
for creating resource structure entries. This new name is the STATIC NODE USER and has
the same name as the NODE name. There is no equivalent IMS control block, and it is used
ONLY for resource structure entries. No IMS command or log record will ever refer to a static
NODE user.
If a user signs on from a static NODE, a USERID is associated with that session for security
(authorization) processing. Although this is optional for static terminals, many IMS shops
require a user to sign on. Users are, by default, prevented from signing on to more than one
session unless the SGN= parameter is coded in PROCLIB member DFSPBxxx. By coding
SGN=M, the user is allowed to sign on multiple times.
UNITYPE=LUTYPE6
NAME=NODEname,SESSION=2
NAME=username1
LTERMname1
NAME=username2
LTERMname2
(defines
(defines
(defines
(defines
(defines
the
the
the
the
the
NODE resource)
first USER resource)
first LTERM resource)
second USER resource)
second LTERM resource)
NODE name, USER name, and LTERM name are defined during system definition, or during
the ETO logon/signon process. The USERID is also provided during the logon/signon
process. Because parallel sessions have been defined, there may be multiple sessions
181
between a NODE and IMS, with the NODE logged on multiple times. In this case, there must
be a different USER (SUBPOOL) and LTERMs (NAMEs) associated with each logon. Each
USER may have a distinct signon USERID.
name
MSPLINK
MSLINK
MSNAME
Static transactions
Transactions are defined to IMS with the TRANSACT macro and represent message
destinations. The TRANSACT macro generates an SMB control block which may be used in
a non-shared queues environment for queuing input messages for scheduling. In a shared
queues environment, the transaction message is queued on the Transaction Ready Queue in
the shared queues structure. Again, because they are a destination for queuing messages,
they must be distinguishable from the other destinations.
TRANSACT CODE=trancode
Other than keeping track of defined transactions, there is no other support for transactions in
STM. Transaction characteristics are not kept in the resource structure.
IMS treats the APPC descriptor name in the same way it treats an LTERM name - to
determine the destination of a message entered, for example, from a program issuing a
CHNG call. It is therefore necessary to be able to distinguish between a real LTERM and an
APPC descriptor LTERM.
Except for keeping track of the defined APPC descriptor names, there is currently no other
support in STM for APPC sessions. No status is kept for APPC descriptors.
Message destinations
Not all of these names are message destination anchor blocks. For example, although a
message may be sent to a NODE, the message is queued off the control block (the CNT)
representing an LTERM assigned to that NODE. Four of the above names are considered
message destinations for purposes of queuing messages:
182
Transaction codes:
Transaction codes
LTERM names
MSNAMEs
APPC descriptor names
Other resource types are not checked for consistency since they are not used for message
queuing. For example, it is perfectly alright to have the same name for a NODE, a USER, an
LTERM, and a USERID.
In an IMSplex, each IMS system has its own system definition, although certainly a single
system definition can be shared by all IMSs. When this is done, we say these IMSs are
183
cloned, and the message destinations are obviously consistent. However, since it is not a
requirement, and since each IMS might have its own system definition, it is important that,
when resources are defined to these separate IMSs, resources of the same type are defined
consistently. For example, it would be problematical if IMS1 defined a resource named
PRSNL as a transaction, and IMS2 defined a resource named PRSNL as an LTERM. Since
both transaction codes and LTERM names are message destinations, IMS1 would queue a
message with destination PRSNL on the Transaction Ready Queue, and IMS2 would queue it
on the LTERM Ready Queue. Very confusing.
In a list structure (such as the resource structure) which has been allocated with user
managed list entry IDs (LEIDs), no two entries can have the same LEID - they must be unique
within the structure. When IMS wants the RM to create an entry on the structure, it provides a
LEID consisting of the name type + resource name. This may also be referred to as the
resource ID. In the above example, IMS1 would create a transaction entry with an LEID of
01PRSNL. If IMS2 later tried to create an entry for an LTERM named PRSNL, it would also
provide a LEID of 01PRSNL. Since this LEID already exists in the structure, and since it must
be unique, IMS2 would not be allowed to create a LTERM named PRSNL, and the logon
would fail.
Figure 14-3 shows an example of the same resource name being defined by IMS1 as a
transaction and IMS2 as an LTERM.
Shared Queue
Structure
TRANQ
01PRSNL Data
LOGON
LTERMQ
IMS1
APPLCTN ...
TRANSACT
PRSNL
IMS2
CF
TRAN
01PRSNL
LTERM
01PRSNL
Resource
Structure
TERMINAL
NAME
NAME=PERS2
PRSNL
There is a difference here between statically defined terminals and dynamic ETO terminals.
With a static terminal, the static NODE users (SNUs) and LTERMs are created and activated
at logon time. If any one of the LTERMs defined for a static NODE is not consistent, then the
logon is rejected. Since the SNU name is the same as the NODE name, if the NODE is valid,
so is the SNU.
184
For ETO terminals, the logon process creates the terminal structure (VTRB) and must be
successful before signon is attempted; therefore, before any USER or LTERM entry is
created. If any LTERM is valid (consistent), then the logon is accepted, but any invalid
LTERM is not created. If all LTERMs are invalid, then an attempt is made to create a default
LTERM having the same name as the USER. If this is also rejected, then the signon is
rejected. It may then be necessary for the end-user to log off, signon again with a different
user descriptor, or otherwise correct the problem.
It does not apply to these resource types, which may be active on multiple IMSs concurrently:
Transactions
MSNAMEs
Parallel session ISC NODEs
APPC descriptor names
When a resource (for which the uniqueness requirement is enforced) becomes active
anywhere within the IMSplex, an entry is created in the resource structure identifying the
resource and its owner. The owner is the IMS system on which that resource is active. If that
same resource (or another resource of the same name and type) were to attempt to become
active on this or another IMS in the IMSplex, it would fail. Note that a USERID may be
allowed to be active on multiple IMSs at the same time by coding SGN=G, Z, or M in its
DFSPBxxx PROCLIB member. This is a global (IMSplex-wide) parameter, and the first IMS to
join the IMSplex will set this value in the IMSplex global entry. It then applies to all IMSs
joining the IMSplex later, regardless of the value of SGN set in their DFSPBxxx PROCLIB
members.
Figure 14-4 shows an example with two IMSs both having defined an LTERM resource
named PRSNL. In this example, IMS1 is the first to log on (from NODE PERS1). As a result,
the NODE, SNU, and LTERM resource entries are created in the resource structure (as
shown) with an owner of IMS1. If a user on a different NODE (PERS2) but with the same
LTERM name defined (PRSNL) were to try to log on, that logon would be rejected. This would
be true even if other unique LTERMs were defined for PERS2.
Similar results would happen for ETO terminals, except that if multiple LTERMs are created
and any are successful, then the signon would be successful. Like with resource type
consistency, if no LTERMs are unique, then a default LTERM equal to the USER name is
attempted. If that also fails, then the signon is rejected. If the USER is not unique, then the
signon is rejected. No attempt is made to create a default USER.
185
Shared Queue
Structure
PERS1
PRSNL
USER1
TRANQ
11
12
10
11
8
6
IMS1
TERMINAL PERS1
NAME
PRSNL
3
4
SIGNON
4
7
12
10
LOGON
PERS2
PRSNL
USER2
LOGON
LTERMQ
IMS2
CF
TRAN
NODE
LTERM
SNU
USERID
Resource
Structure
PERS1
PRSNL
PERS1
USER1
Owner
IMS1
IMS1
IMS1
IMS1
Note that for statically defined terminals, the USERID entry is not created until the end-user
signs on. In an ETO environment, the USER (instead of the SNU), LTERM, and USERID
entries are created at signon time.
Command status
Command status is that user status which is set by the entry of an IMS command. Examples
are:
186
End-user status
End-user status is status that is the result of work being done by the user. For example:
Response mode when a user enters a response mode transaction
Conversational mode when the user has entered an IMS conversational transaction
STSN mode sequence numbers updated every time an input message is received
from, or an output message is sent to, a STSN device (for example FINANCE, SLUTYPEP,
or LUTYPE6/ISC)
Recoverable status
Recoverable status is that command or end-user status which, following a successful session
or IMS restart, will be restored by IMS if IMS knows what that status was. Sometimes
recoverable status may not be known to IMS at restart and so is not restored. For example, if
the status was only known locally (that is, not saved in the resource structure) and if IMS is
cold started, then the status would not (could not) be recovered.
This definition applies whether or not IMS is running with STM enabled. When STM is not
enabled, recoverable status is saved and restored from local control blocks and log records
only.
Examples of recoverable status include:
Conversational mode
TEST MFS mode
LTERM assignments made with the SAVE keyword
Fast Path response mode
Note: When a user enters a Fast Path (EMH) transaction, that terminal is put into
response mode. If the session or IMS fails, when it is reestablished, the terminal will be
put back into response mode. See below for the description of non-recoverable full
function response mode.
Non-recoverable status
Non-recoverable status is that command or end-user status which is maintained by IMS only
as long as that user is active. In simple terms, it is whatever status is not in the recoverable
category. If the session terminates, normally or abnormally, that status is discarded by IMS. If
IMS fails, the status will be discarded during emergency restart. This definition applies
whether or not IMS is running with STM enabled. Even when STM is enabled, this status will
not be recovered.
Examples of non-recoverable status include:
187
Applies to NODEs and users; indicates that the terminal is in TEST MFS mode.
/STOP NODE | LTERM | USER xxx:
Applies to NODEs, LTERMs, and users; indicates that the resource is stopped.
/EXCLUSIVE NODE | USER xxx:
Applies to NODEs and users; identifies the NODE or user which is to be used exclusively
for input or output from this terminal.
/TRACE SET ON NODE xxx:
Applies to ETO users; identifies the changed autologon information for that ETO user. This
is not significant unless the SAVE option is specified.
/ASSIGN LTERM | USER xxx TO yyy SAVE:
Applies to LTERMs and users; identifies the assignments for the user or LTERM; this is
not significant unless the SAVE option is specified.
When a user enters a Fast Path transaction (one which is scheduled into an EMH region),
that user is in Fast Path response mode. Note that, while this is considered significant, full
function response mode is not. Recoverable information consists of a Fast Path input
in-progress flag that indicates that a user has entered a Fast Path transaction and no
output response has yet been delivered.
188
STSN status:
STSN devices are those that use the Set and Test Sequence Number instruction to
maintain accountability for input and output messages. Each time an input message
arrives from a STSN device, the input sequence number is incremented. A similar function
exists for output messages. STSN devices include terminal defined to IMS (statically or
dynamically) as FINANCE, SLUTYPEP, LUTYPE6 (ISC). The recoverable information
consists of the input and output sequence numbers.
For each of these, the installation may choose whether or not to save the recoverable
information.
SRM=LOCAL
SRM=NONE
Note: When a resource structure exists, resource entries with their SRM is maintained in
that structure regardless of the SRM setting. That is, even if SRM=LOCAL or NONE, the
SRM setting will be kept in the resource entry in the structure. When no resource structure
exists, the SRM setting is kept in the local control blocks.
189
cold start (sequence numbers set to zero). This is referred to as status recoverability. The
value is set by the RCVYxxxx parameter where xxxx is CONV, STSN, or FP. Section 14.5.1,
Setting SRM and RCVYxxxx on page 191 describes how to set these values.
RCVYCONV=YES | NO
When set to YES, information required to recover a conversation will be kept across a
session termination/restart and IMS termination/restart. Where this information is kept
depends on the status recovery mode.
When set to NO, conversational information is kept locally and only as long as the session
is active. When the session terminates, even without explicitly exiting the conversation
(/EXIT command), the conversational information will be discarded by IMS and the
conversation will be exited. In the case of an IMS failure, emergency restart will do the
same. The last conversational output (SPA) will be passed to the Conversational
Abnormal Termination Exit (DFSCONE0) for processing.
RCVYFP=YES | NO
When set to YES, Fast Path (EMH) response mode is recoverable. This means that if a
session terminates (or IMS terminates) while the terminal is in Fast Path response mode,
when that session is reestablished, it will be returned to response mode. When the
response is available, it can be delivered to the terminal.
When set to NO, Fast Path response mode is not restored after session termination and
restart. Note that for Fast Path transactions, when RCVYFP=NO, the Fast Path response
message is also not recoverable. When the response is discovered by IMS, it will be
discarded. This is not true for full function response mode. Full function response mode is
never recoverable, but the message itself is recoverable. It will not be discarded.
RCVYSTSN=YES | NO
When set to YES, STSN sequence numbers for both input and output messages will be
saved and are recoverable.
When set to NO, they are not recoverable. When a session terminates and then is
restarted, the sequence numbers will revert to zero (cold start). This may have particular
significance for ETO STSN devices. When an ETO STSN session terminates, its control
block structure (VTCB) is NOT collapsed even though it may have no other significant
status. However, if RCVYSTSN is set to NO, then it will be collapsed unless there is some
other significant status.
When a resource structure exists, the RCVYxxxx settings are maintained in that structure
regardless of the SRM setting. That is, even if SRM=LOCAL or NONE, the RCVYxxxx
settings will be kept in the resource entry in the structure. When no resource structure exists,
these settings are kept in the local control blocks. Note that the default for all is YES.
190
This will set SRM=GLOBAL (save recoverable status in the resource structure) and turn on
recoverability for conversations and Fast Path, but not for STSN sequence numbers. There
are three rules that apply when specifying these values:
SRMDEF=GLOBAL cannot be specified without a resource structure
RCVYxxxx=YES cannot be specified if SRM=NONE
RCVYSTSN=YES cannot be specified if RCVYFP=NO
If SRMDEF is not specified in DFSDCxxx, IMS will determine the system default according to
the following rules:
SRMDEF=GLOBAL when using a resource structure and shared queues
SRMDEF=LOCAL when not using a resource structure and shared queues
RCVYxxxx=YES unless SRM=NONE
Note: Other than SRM=GLOBAL, these parameters can be set even when not using the
Common Service Layer (CSL). For example, if RCVYSTSN=NO, then STSN sequence
numbers would be discarded no matter how a STSN session is terminated.
ETO descriptors
For ETO, there is an addition to the user descriptor definitions that allows each of these
parameters to be specified as defaults for that session. They are coded the same as in
DFSDCxxx. They override the values specified in DFSDCxxx but can be overridden by the
Logon or Signon Exit. For example:
U HENRY LTERM=(HENRYSLT) SRMDEF=GLOBAL RCVYCONV=YES RCVYSTSN=NO RCVYFP=NO ...
191
SRM and RCVYxxxx settings), then the exits cannot override them. For example, if a session
has SRM=GLOBAL and RCVYCONV=YES, and then that session terminates with
conversational status, the resource entry is not deleted (resource entries are not deleted
when a session terminates with significant status). When that user logs back on, the Logon or
Signon Exit cannot override these settings. Any attempt to override them is ignored. If,
however, the Logon Exit (or Signon Exit) enters an invalid value, then the logon (or signon)
will be rejected. For example, the Logon Exit cannot specify SRM=GLOBAL if there is no
resource structure. This is invalid and the logon would be rejected.
192
When set to VTAM, the VGR affinity will be deleted whenever the
session terminates, regardless of the status of the user. The next time
that user logs on, VTAM will direct the logon request to any active IMS
in the VGR group. That may or may not be the IMS which has
knowledge of the significant status.
GRAFFIN=IMS
When set to IMS, IMS decides whether or not to delete the VGR
affinity when the session terminates. IMS makes this decision based
on whether or not the terminal has significant status at the time of
session termination. The intent is to force (or at least encourage) the
user to log back on to the same IMS which has knowledge of some
significant status, such as conversational status.
Both of these values were system-wide. That is, for any given IMS, every sessions VGR
affinity was managed either by VTAM (always deleted) or by IMS (deletion depends on
status).
193
GRAFFIN=IMS or GRAFFIN=VTAM
With any combination of the above, the VGR affinity will be deleted at session
termination.
SRM=LOCAL
GRAFFIN=IMS
If significant status exists at session termination, IMS will not delete the VGR affinity.
The next generic logon will go back to the same IMS and its recoverable status will be
restored from local control blocks.
GRAFFIN=VTAM
With or without significant status, VGR affinity will be deleted by VTAM (doesnt know
that significant status exists). It will be shown later, however, that if significant status
does exist for the user, even without VGR affinity, an RM affinity will still exist.
When this is set, VTAM will delete the affinity whenever the session terminates. The next
time the user logs on, VTAM may route the logon request to any available IMS in the VGR
group. VTAM-managed is set for:
All terminals with SRM=GLOBAL or NONE:
In this case, we either have the status in the resource structure, or we dont care about
recovering the status. So, we dont care which IMS the user logs on to.
All ETO non-STSN terminals:
For ETO non-STSN terminals, the SRM is not set until the user signs on. But the VGR
affinity management attribute must be set at logon time. Not knowing what the SRM
value will be, IMS assumes GLOBAL (or NONE) and sets it to VTAM. When the
session terminates, IMS will disconnect the user structure from the terminal structure
and VTAM will delete the affinity. Any end-user significant status stays with the User not the NODE. If SRM had been set to LOCAL, that user could log on to another. This
would be allowed since there is no RM affinity for the NODE. However, when the user
tries to sign on, IMS would find the RM affinity for the User (and LTERM) and reject the
signon.
IMS managed affinities:
When this is set, IMS will decide at session termination whether or not to delete the
affinity. IMS uses end-user significant status to make this determination. If it exists, then
IMS will not delete the VGR affinity. The next generic logon will be routed to the same IMS.
194
SRM
Managed by
Static
Global, None
VTAM
Dynamic STSN
Global, None
VTAM
Dynamic non-STSN
Any
VTAM
Static
Local
IMS
Dynamic STSN
Local
IMS
The existence of command significant status, when a resource structure exists, does not
affect the deletion of a VGR affinity. Because command significant status is always GLOBAL
when a structure exists, command significant status can always be recovered on another IMS
in the IMSplex. When no resource structure exists, then command significant status is always
LOCAL and will prevent the deletion of a VGR affinity.
The resource structure is allocated with 192 list headers. A list header is an anchor point
for list entries.
What type of List Entry (LE)
Each list entry represents one IMSplex or terminal/user resource on the structure. Each
list entry is composed of several parts.
195
Version:
Number incremented by one each time the resource entry is updated. This is used
by RM to ensure that updates to the structure are serialized.
Other:
There are several other fields in the list entry controls that are used by CQS, XES or
the CFCC to manage the structure. They are not of interest for this discussion.
Structure is persistent:
Will not be deleted when all connectors are gone.
Connection is persistent:
Will not be deleted if connector abends.
Supports (new) structure management enhancements. See Chapter 10, Coupling
Facility structure management on page 137 for a description of the following
enhancements.
196
Figure 14-5 is a simple illustration of the resource list structure. Each resource entry on the
structure is composed of one list entry control (LEC), one adjunct area (ADJ) and zero or
more data elements (DE). Whether a data element is needed depends on how much
recoverable data is kept for that resource.
List
Headers
CQS
Private
Lists
Client
Lists
0
1
2
3
4
..
68
69
70
71
72
73
..
190
191
List Entry
List Entry Controls
ENTRYID (LEID)
ENTRYKEY
VERSION
Other ...
Adjunct Area
Owner
Client DATA1
Reserved
Data Entry
0 or more data elements
CQS Prefix
Client DATA2
12
16
8
8
24
32
512
<61k
CQS reserves list headers 0-70 for its own use. Presently, the only LH used by CQS in the
resource structure is list header zero (LH0). LH71 through LH191 are available for use by the
CQS client (Resource Manager). The ENTRYKEY is used by CQS to determine which list
header any particular resource entry (list entry) is to be placed.
197
Resource
Type
Name
Type
Definition
Meaning
01
01
Transaction
02
01
Lterm
03
01
Msname
04
04
User
05
05
Node
11
11
IMSplex
12
01
CPI-C Transaction
CPI-C transaction
14
01
APPC Descriptor
15
15
Userid
26
26
242
242
RM Process
253
253
RM Global
RM global information
IMSplex entries
Several of the resource entries apply to the IMSplex itself. Some of these are global (only one
entry for the IMSplex) and some are local (multiple entries). Only two of these entries play a
significant role in STM. They are the DFSSTMGBL entry (one per IMSplex) and the
DFSSTMLimsid entries (one for each IMS). The others are not discussed here.
DFSSTMGBL
Contains the multiple signon indicator (SGN=). This entry is created when the first IMS
joins the IMSplex. The signon indicator cannot be changed by the second or succeeding
IMSs. This is used to determine whether to enforce resource name uniqueness for
Userids. To change this value for the IMSplex, all IMSs must be shut down. Then the first
to rejoin can reset this value. The entry is never deleted.
DFSSTMLimsid
Created for each IMS that joins the IMSplex. When the entry is created, or when IMS
rejoins the IMSplex, then the ownership of this resource is set to that IMS. When IMS
shuts down normally, the ownership is released. If IMS fails, then it cant release
ownership, so the entry remains with its ownership set to the failed IMS. This is used by
other IMS systems in the IMSplex to determine whether an IMS system has failed, and is
important for cleanup activities after an IMS failure. This entry is deleted only if IMS is shut
down with the LEAVEPLEX keyword:
/CHE FREEZE LEAVEPLEX
When XRF is enabled, both IMSs (active and alternate) have entries. They contain a flag
indicating whether this IMS instance is an XRF active or alternate system, and the
RSENAME. The RSENAME is used as the owner of a terminal resource instead of the
IMSID. If the alternate must take over, then it owns those resources which had been
owned by the old active IMS.
198
NODE entry
Represents a static or dynamic (ETO) NODE.
Entry key = x05 + NODEname; LEID = x05 + NODEname
Created
When NODE first becomes active on any IMS. It will also be created when a command
sets significant status (for example, /STOP NODE). If the NODE does not exist when
this command is entered, it will be created with the stopped status.
Usage and comments
Enforce resource name uniqueness for single session VTAM NODEs. This is not
enforced for parallel session ISC NODEs.
Maintain recoverable status related to the NODE (for example, NODE is stopped)
Used, along with (Static NODE) User entry, to restore recoverable status across
session termination/restart (including IMS termination/restart)
Chapter 14. Sysplex terminal management
199
Deleted
When NODE is no longer active and has no significant status
User entry
Represents an ETO user or a parallel session ISC SUBPOOL.
Entry key = x04 + username (subpool name); LEID = x04 username
Created
For ETO, when user structure (SPQB) is created at signon time.
For parallel session ISC, when parallel session (subpool) becomes active. There will
(probably) be multiple user entries for each NODE.
When command sets significant status (for example, /STOP USER).
Usage and comments
Enforce resource name uniqueness
Maintain user-related recovery information. Most significant status, such as
conversational, Fast Path, and command status is kept here. Also, this entry contains
segments in DATA2 with information about each assigned LTERM and its status. For
example, a /STOP LTERM command would set significant status in the LTERM
segment of this entry, not in the LTERM entry.
Used, along with NODE entry, to restore recoverable status across session
termination/restart (including IMS termination/restart)
Deleted
When the user is no longer active and contains no significant status. Note that, when
SRM=LOCAL and IMS fails, surviving IMSs will not know whether there is significant
status for this entry in the failed (local) IMS, so the resource will not be deleted.
LTERM entry
Represents a static or dynamic logical terminal (LTERM)
Entry key = x02 + LTERMname; LEID = x01 + LTERMname
Created
For static terminals, the same time the NODE is created
For ETO terminals and ISC sessions, the same time the USER is created
Usage and comments
It is used only to enforce resource type consistency and resource name uniqueness.
Contains no recovery related information. Any significant status for an LTERM is kept
in the associated (Static NODE) User entry.
Deleted
For static LTERMs, deleted when the NODE and Static NODE User entries are deleted
For ETO LTERMs, or LTERMs assigned to parallel session ISC NODEs, deleted when
the User entry deleted
200
USERID entry
Represents a signed on user.
Entry key: x0F + USERID; LEID = x0F + USERID
Created
When user signs on, if single signon is being enforced; otherwise, not created
Usage and comments
Enforce resource name uniqueness when single signon specified
There is no recoverable information
Deleted
When user is no longer signed on; even if (Static NODE) User has significant status
MSNAME entry
Represents an MSC logical link as defined on MSNAME macro
Entry key = x03 + MSNAME; LEID = x01 + MSNAME
Created
During IMS initialization
Usage and comments
Enforce resource type consistency. Resource name uniqueness is not enforced for
MSNAMEs. They can be simultaneously active on multiple IMSs in the IMSplex.
There is no recoverable information.
Deleted
Never deleted; must delete (SETXCF FORCE) structure and create new one to delete
a MSNAME
201
Before any IMS joins the IMSplex, no resource structure will exist.
For conversations, the conversational input message in-progress flag is set when the
transaction is entered and reset when the response is delivered.
For Fast Path, the Fast Path input in-progress flag is set when the Fast Path (EMH)
transaction is entered and reset when the response is delivered.
For STSN, the sequence numbers are updated for each input and output message.
203
SRM=LOCAL, then the /EXIT command must be entered from the IMS which owns the
resource. But the same rule would apply - when all significant status is gone, the entries are
deleted.
This is intended to route the users next logon request to the IMS where its significant status is
known. However, that user may elect to log on directly to an active IMS, bypassing VTAM
generic resources. When this happens, the new IMS detects the ownership (RM affinity) in
the resource entry and rejects the logon. That user then has to make a choice.
Wait for the failed IMS to restart.
When the failed IMS is restarted (see 14.8.12, IMS emergency restart on page 205) and
the user logs on, its significant status is restored and work continues.
Log on with user data telling the Logon Exit to steal the NODE if it is owned by an
inactive IMS. Refer to IMS exits on page 211 for more information about the Logon Exit.
The ownership of that resource is changed and the user loses any end-user significant
status that might have existed on the failed IMS. When the failed IMS is restarted, it will
discover that it no longer owns the resource and will delete any local status.
When a user logs on and IMS finds a resource entry without an owner (must have had
significant status and not SRM=LOCAL), then the logon request is accepted, the ownership is
set to that IMS, and the significant status is recovered. All is as it should be.
204
The surviving IMS also does some clean-up work on the shared queues structure. For all
resources which were not SRM=LOCAL, IMS requests CQS to move all output messages
which were locked (on the LOCKQ) by the failing IMS back to the LTERM Ready Queue
(LRQ). These messages would include:
Output messages which were in the process of being delivered by the failed IMS but which
had not completed (Q1 and Q4 messages)
Active SPA+MSG for the last conversational output message for users who were between
iterations of a conversation (Q5 messages).
SPA+MSG for every held conversation (Q5 messages)
These messages may join output messages which were on the LRQ at the time of the failure:
Responses to transactions which had not yet been retrieved by the failing IMS (Q1
messages)
Unsolicited messages not in response to an input transaction (Q4 messages)
Note that input messages (transactions) are not unlocked. This is because only the failed IMS
knows the status of that message. It may have been in-flight, or it had reached sync point but
IMS failed before it was able to delete it from the LOCKQ. The status of that message will not
be known until the failed IMS is emergency restarted.
At the end of this process, all output messages locked by the failed IMS have been returned
to the LTERM Ready Queue, including between iteration conversations and held
conversations. Output messages on the LRQ with destinations previously active on the failed
IMS are still there. Input messages from the failed IMS which had not yet been scheduled are
still on the Transaction Ready Queue and can be scheduled anywhere. Responses to these
messages will be put on the LRQ. This concludes the work of the clean-up IMS.
Sometimes an IMS may fail and there is no surviving IMS to clean up. In this case, of course,
no clean up work is done until the next IMS restart - either the failed IMS or another. When
restart completes, that IMS will query RM for any IMSs which need to be cleaned up (see
DFSSTMLimsid on page 198 to see how RM knows) and then performs the clean up.
205
Normal operation
Users logs on and signs on successfully to IMS1 (logon IMS0)
NODE, Static NODE User, and LTERM entries created; owner=IMS1
SRM=GLOBAL; RCVYCONV=YES
VGR affinity set to IMS1; VTAM-managed affinity
User enters conversational transaction (TRANC)
IMS1 creates SPA and puts SPA+MSG on Transaction Ready Queue (TRQ)
IMS1 updates Static NODE User entry
Conversation ID
Transaction code
CONV-IP ON
TRANC is scheduled and processed by IMS2 (or any IMS in SQGROUP)
Response (SPA+MSG) is put on LTERM Ready Queue (LRQ) and IMS1 is notified
IMS1 retrieves response from LRQ and sends to LTERMA (NODEA)
SPA+MSG moved to LOCKQ
CONV-IP flag turned OFF when NODEA acknowledges receipt
Static NODE User still has significant status
SPA+MSG still on LOCKQ
User enters another transaction and process is repeated
Static NODE User entry gets updated for each input and output (CONV-IP flag)
206
these three states the user is in can be determined from the (Static NODE) User entry in the
resource structure and the messages on the shared queue structure.
User is between iterations of conversation
Last SPA+MSG are on LOCKQ
CONV-IP flag is OFF
Transaction was processing in IMS when IMS failed
Input SPA+MSG are on LOCKQ
No output messages for this LTERM on LOCKQ
CONV-IP flag is ON
IMS was in the process of delivering the response
Transaction has committed
Input SPA+MSG has been deleted
Output SPA+MSG is on LOCKQ
CONV-IP flag is ON
Last input is still on TRQ, last input is currently processing on IMS2, or response to last
input is available on LRQ; in each case, response to last input will eventually get to LRQ
Response SPA+MSG are on LRQ
CONV-IP flag is ON
When user logs and signs back on (using IMS0), VTAM routes logon request to IMS2:
IMS2 checks resource structure and finds entries for NODEA, Static NODE UserA, and
LTERMA
Conversation active; no ownership
CONV-IP flag is OFF
Logon accepted; user not in response mode
Response mode not recoverable for full function transactions
IMS2 finds SPA+MSG on LRQ; moves it back to LOCKQ (locked by IMS2); also saves
locally on Q5
User must retrieve last output message to refresh screen and continue conversation
/HOLD
Conversation held; Static NODE UserA entry updated
DFS999I HELD CONVERSATION ID IS 0001
/RELEASE CONVERSATION 0001
Conversation released; Static NODE UserA updated
207
For example, if IMS sent a message to a terminal but did not get an acknowledgment, IMS
does not know whether the message was received or not. By informing the STSN device of
the sequence number of the last output message, the device can ask IMS to resend it, or it
can tell IMS to dequeue it. A similar function applies to an input message when the STSN
device does not know if it was received by IMS.
By supporting STSN recovery, the user can log on to another IMS. Using the sequence
numbers in the resource entry, that IMS can resynchronize its input and output messages
with the STSN device.
Sets initial, maximum, and minimum size for structure. Appendix B, Resource structure
sizing on page 315 describes a technique for sizing a resource structure using the
CFSIZER tool on the web at URL:
http://www.ibm.com/servers/eserver/zseries/cfsizer/ims.html
Determines whether the system can alter the size and entry-to-element ratio of the
structure
FULLTHRESHOLD(80 | nn)
209
Structure repopulation
Structure repopulation is the responsibility of CQS, RM, and IMS. When any structure fails, it
is the connector that first discovers it.
When CQS discovers that a resource structure has failed, it begins the repopulation process
by reallocating the structure and then creating any CQS global and local entries. Currently,
there are no CQS entries. It then notifies all of the RMs (using SCI services) to begin their
own repopulation. At this time, a message is written indicating that structure repopulation has
been requested:
CQS210I STRUCTURE strname REPOPULATION REQUESTED
Each Resource Manager will repopulate the structure with its own information. RM entries
include a RM Global entry (CSLRGBL) which contains the IMSplex name, local RM entries
(CSLRLrmid) which contain local RM information, such as the RM version number, and a
resource type table entry (CSLRRTYP) which identifies the supported resource types and
names types. This is done by each RM, but only the first will add the global entries. As each
RM completes, it will issue the message:
CSL2020I STRUCTURE strname REPOPULATION SUCCEEDED
Note that this does not mean that structure repopulation has completed. It only means that
RM has completed it piece of it. RM then directs each of its registered IMSs to repopulate the
structure with whatever local information they have.
Each active IMS will then add its own entries. This is not a robust process. There are several
cases where resource entries will not be repopulated. If it is important to the user that the
resource structure be immune from structure failure, then the structure should be duplexed.
Causes for resource entries not being repopulated include:
One or more IMSs are not active
If an IMS is not active, then it cannot repopulate. IMS will not attempt to repopulate if it is
started later.
A resource became inactive with command significant status or end-user significant status
with SRM=GLOBAL
210
In this case, when the resource became inactive, the local IMS deleted all of its knowledge
about the resource. It was available only in the resource entry.
Global online change is never repopulated
If a structure fails during a global process, that process is not repopulated to the structure.
In the case of global online change, each IMS must terminate the online change process
and then reinitiate it, either at the PREPARE phase or COMMIT phase, depending on
whether or not all IMSs had completed commit phase 2. See Global online change on
page 215 for a description of how global online change works.
After the repopulation is completed, IMS issues the following message:
DFS4450 RESOURCE STRUCTURE REPOPULATION COMPLETE
As noted above, not all resource information is repopulated. If a user with SRM=GLOBAL
were in a conversation, and the session were terminated while still in that conversation, then
that users status would not be repopulated and the conversation would, in effect, not exist.
When the SPA+MSG is found on the LRQ, it will be passed to DFSCONE0 for processing.
211
queried. If the resource is found on the structure, then the address returned will be that of
hidden control blocks with global information contained in the structure. These are mapped
the same as the real control blocks, but contain only that information known to the structure. If
the resource is active on another IMS, that IMS is NOT queried for more information. One
example of the use of this capability is for a signon exit. The exit may issue a FIND or SCAN
for an LTERM name for purposes of assigning a name to an ETO user during the signon
process. If that LTERM is registered anywhere in the IMSplex, the exit will find it and can use
a different name to build a CNT control block.
Note: The default is global. If the user wants only to FIND or SCAN local control blocks,
the exit must be changed to set a flag in the function specific parameter list. This is
documented in IMS Version 8: Customization Guide, SC27-1294.
Class 1 terminals
A backup session is maintained with a class 1 terminal. When the alternate takes over,
the session is automatically reestablished with the new active. Any session status that
existed on the old IMS is determined from the log records - not from the structure. The
SRM option only applies if a session is terminated - not if IMS fails. If global and local
status differ, then local status prevails. And, even if SRM=NONE, terminal/user status
is recovered (based on log records, not on the resource entry).
Class 2 terminals
For class 2 terminals, the new active will reacquire the session (OPNDST). In this case,
status recovery is determined by the SRM value. Whatever is in the resource entries
prevails. If SRM=NONE, then the status will be deleted.
Class 3 terminals
Class 3 terminals are treated like any terminal in a non-XRF environment. Ownership
(RM affinity) is released only if SRM=GLOBAL or NONE. Status is recovered globally
or locally, depending on SRM. If SRM=LOCAL, the user must log on to the new active.
213
214
15
Chapter 15.
215
APPLCTN
DATABASE
RTCODE
TRANSACT
Online change switches online libraries between an active library and an inactive library that
contains the changes to be implemented for the following libraries.
The libraries in use by the running IMS (active libraries) are recorded in MODSTAT data set.
In an IMS Parallel Sysplex environment, online change poses some operational problems.
The online change must be coordinated between the multiple systems in the sysplex.
216
The IMS resources are generated with the appropriate utility process:
Figure 15-1 shows the various preparation of resources for the online change process. The
staging libraries are updated with the changed resources.
DBDLIB
MODBLKS
Gen
SMU
Gen
MATRIX
MODBLKS
ACBGEN
ACBLIB
MFS
Gen
FMTLIB
PSBLIB
MFS
Source
Online Change
Staging Libraries
Figure 15-1 Online change preparation
Before the online change may be done, the updated staging libraries must be copied to the
inactive libraries. This is done with the online change copy utility (DFSUOCU0). The utility
reads a MODSTAT status data set to determine the inactive libraries to updated. The
changed resources are then copied to the inactive library.
Figure 15-2 shows the staged changes, in a Parallel Sysplex. After the changes have been
staged to the inactive IMS libraries, a /MODIFY PREPARE is issued for IMS1, to prepare the
changes for implementation in the online system. A /DISPLAY MODIFY command is issued
to display work in progress for resources to be changed or deleted. If there is no work in
progress, a subsequent /MODIFY COMMIT on IMS1 completes the online change. The
inactive and active libraries are switched, the MODSTAT data set is updated to indicate the
new active libraries, and processing continues.
217
Inactive libraries
Active libraries
OLC
Utility
Staging
Libraries
IMS1
A
MODSTAT
for IMS1
IMS2
/MODIFY PREPARE
/DIS MODIFY - OK
/MODIFY COMMIT
/MODIFY PREPARE
/DIS MODIFY - OK
/MODIFY COMMIT
Successful
Switch libraries
Resume processing
B
MODSTAT
for IMS2
Unsuccessful
What to do?
To coordinate the online change with IMS2 in this sysplex environment, a /MODIFY
PREPARE, /DISPLAY MODIFY, and /MODIFY COMMIT are issued on IMS2. Unfortunately
the online change can fail and leave you with the IMS systems in the example using different
libraries and therefore different resources as shown in Figure 15-3.
Active libraries
Staging
Libraries
A
Active libraries
IMS1
MODSTAT
for IMS1
IMS2
Choices
1. Correct problem with IMS2
and redo OLC
2. Backout OLC for IMS1
MODSTAT
for IMS2
OLCSTAT=
Data set name, required with OLC=GLOBAL and it must be the same
for all IMSs in IMSplex
NORSCCC=
Data set name consistency checking not done for specified libraries
(ACBLIB,FORMAT,MODBLKS), MODBLKS also does not check for
MATRIX)
219
Before the online change may be done, the updated staging libraries must be copied to the
inactive libraries. This is done with the online change copy utility (DFSUOCU0). It is the
same utility that is used with local online change. It is available with previous IMS releases,
and has been enhanced to support global online change. It reads OLCSTAT to determine
inactive libraries.
220
After the prepare has completed, the actual changes are invoked with the INIT OLC
PHASE(COMMIT) command. This is similar to the /MODIFY COMMIT command used with
local online change.
An online change may be aborted by issuing a TERMINATE OLC command. It coordinates
the online change abort phase across all the IMSs in the IMSplex. TERMINATE OLC is
similar to the /MODIFY ABORT command used with local online change.
A QUERY MEMBER command may be used to show online change status of IMSs. It reports
the current status of each IMS participating in the online change.
Sequential
V
5200
5204
The OLCSTAT data set is initialized by using the new global online change utility. Later, we
will see how this is done.
The OLCSTAT data set is dynamically allocated by IMS using the data set name defined in
the DFSCGxxx PROCLIB member (OLCSTAT=data set name). An OLCSTAT DD statement
should not be defined in the IMS procedure.
221
FUNC=INI,ACBS=,MDBS=,FMTS=,MDID=,PLEX=,SOUT=A
PGM=DFSUOLC0,PARM=(&FUNC,&ACBS,&MDBS,&FMTS,&MDID,&PLEX)
DSN=IMSPSA.IMA0.&SYS2.SDFSRESL,DISP=SHR
DSN=IMSPSA.IMA0.OLCSTAT,DISP=OLD
SYSOUT=&SOUT
SYSOUT=&SOUT
DUMMY
The procedure contains the following symbolics and in turn program parameters:
FUNC
Function (initialize, add, delete, or unlock)
ACBS
Specifies initial ACBLIB DDNAME suffixes
MDBS
Specifies initial MODBLKS and MATRIX DDNAME suffixes
FMTS
Specifies initial format DDNAME suffixes
MDID
Specifies initial modification id
PLEX
Specifies IMSplex name, used only for unlock function
//SYSIN DD is used to specify IMS systems for the add and delete functions
The modification id is a number which is incremented with each online change. It is similar in
function to the MODSTAT identifier used by local online change.
This shows how a typical user would initialize the OLCSTAT data set. The initialization
function (INI) is specified. All DDNAME suffixes are set to A. This means we will begin with
IMSACBA, MODBLKSA, MATRIXA, and FORMATA as the active library DDNAMEs. The
initial modification id number is set to 1
222
//MODSTAT
//
//OLCSTAT
//
...
DD &OLCLOCL.DSN=IMSPSA.&SYS.MODSTAT,
DISP=SHR
DD &OLCGLBL.DSN=IMSPSA.IMA0.OLCSTAT,
DISP=OLD
To support global online change the utility can read the OLCSTAT data set to determine the
inactive library. A new value for the OUT= parameter (G) allows this. The OLCSTAT DD
statement has been added to the procedure for this utility.
TYPE
IN
OUT
15.3.1 Prepare
The prepare phase stops (QSTOPs) all incoming messages and transactions for changed
resources. This includes changed transactions, changed PSBs, and transactions whose
PSBs refer to changed databases. Prepare does not affect other processing. Input messages
already on the queue may be processed. All unaffected transactions may be processed. Any
PSB may be scheduled. This includes BMPs, IMS transactions, and PSB schedules by CICS
and ODBA. These actions occur with both local and global online change.
No scheduling occurs during commit phase 1 or 2.
223
Figure 15-4 shows the prepare process, and the interaction between the CSL components,
and the IMSs.
Prepare Phase
From SPOC, enter new OLC command
CSL
SPOC
SCI
OM
RM
PREPARE
INIT OLC
COORDINATE
Master (IMS1)
completes prepare
phase then tells RM
to coordinate with
other IMSs.
PREPARE
COMPLETE
INIT OLC
Stop queuing
Drain queues
IMS1
ACBLIBA
MODBLKSA
FORMATA
IMS2
OLCSTAT
When a prepare command is entered in OM, it is sent to one of the IMSs in the IMSplex. This
IMS is the master IMS for prepare processing. It does its prepare processing first. If it
succeeds, the master IMS tells RM to coordinate the prepare processing across the other
IMS systems. RM invokes prepare processing in these IMSs.
If the prepare processing fails in the master IMS, online change is aborted. The problem may
be resolved and the prepare command issued again.
If the prepare processing succeeds in the master IMS, the other IMSs are told to invoke
prepare processing. If prepare processing fails in one of them, other IMSs are not affected.
Their prepare processing is not backed out. In this situation users must cause the back out to
occur. This is done by issuing the TERMINATE OLC command. This will back out prepare
processing in all IMSs. Then the prepare may be attempted again. Of course, one should
resolve the problem which caused the previous failure.
These are just some of the reasons a prepare command could fail. They are the same
problems that could occur with local online change.
The library could be enqueued because the online change copy utility is still executing. An
open error could occur because the data set name specified for the library is wrong. A read
error could occur because of a DASD failure. A member of a library could be invalid because
is was generated by ACBGEN from another release of IMS.
224
Commit Phase 1
SPOC
CSL
SCI
OM
RM
COMMIT
PHASE 1
Master performs
commit phase 1
and signals RM
to coordinate
process with
other IMSs.
COORDINATE
PHASE 1
IMS1
Stop Scheduling
PHASE 1
COMPLETE
or FAILED
ACBLIBA
MODBLKSA
FORMATA
IMS2
OLCSTAT
225
CSL
If any IMS fails phase 1
OLC aborted
SCI
OM
RM
INIT OLC
COMMIT
If all successful,
Master updates
OLCSTAT
New suffixes
OLC status for
each IMS
OLC cannot be
terminated after
OLCSTAT updates
Signal RM to
coordinate phase 2
PHASE 1
COMPLETE
IMS1
ACBLIBB
MODBLKSB
FORMATB
IMS2
OLCSTAT
Figure 15-6 Commit phase 1 completed
When a commit command is entered in OM, it is sent to one of the IMSs in the IMSplex. This
IMS is the master IMS for commit processing. It is not necessarily the same IMS that was the
master for prepare processing. The master does its processing for each commit phase
locally. Before it can move to the next commit phase, it invokes the phase in the other IMSs
by using RM.
226
Commit Phase 2
SPOC
CSL
SCI
OM
RM
COMMIT
PHASE 2
Master performs
commit phase 2
and signals RM
to coordinate
process with
other IMSs.
COORDINATE
PHASE 2
IMS1
Switch libraries
Resume processing
PHASE 2
COMPLETE
ACBLIBB
MODBLKSB
FORMATB
IMS2
OLCSTAT
After completion of commit phase 2, the libraries have been switched, and the completion is
communicated as shown in Figure 15-8.
227
CSL
SCI
OM
RM
B
When RM signals
Master that phase 2
is complete
Phase 3 initiated to
cleanup local storage
and OLCSTAT.
PHASE 2
COMPLETE
IMS1
ACBLIBB
MODBLKSB
FORMATB
IMS2
OLCSTAT
Figure 15-8 Commit phase 2 completed
If a commit phase fails in any IMS, it does not cause the processing in any other IMS to be
backed out. Commit processing stops you must take one of two actions. First, you can issue
the TERMINATE OLC command. This aborts all online change processing. Second, you could
reissue the INIT OLC PHASE(COMMIT) command. This reattempts the commit processing in
the phase where it failed.
These are some of the reasons that commit processing could fail. They are problems that
could also occur with local online change commit processing.
It may not be possible to change a PSB because it is currently in use. Prepare processing
would have stopped queuing IMS transactions using the PSB, but the PSB might have been
scheduled for another reason These include the starting of a BMP, the processing of an input
transaction which was queued before the prepare, the continued processing of a
wait-for-input transaction which was scheduled before the prepare, and the scheduling of the
PSB by a CICS transaction, or the scheduling of a PSB via ODBA.
It may not be possible to change a database because it is currently in use by a transaction or
BMP.
228
If the commit failed in phase 2, reissuing the command retries phase 2 in those IMSs where it
failed. If it succeeds, commit processing continues to phase 3.
OLCABRTC
OLCABRTI
OLCCMT1C
OLCCMT1I
OLCCMT2C
OLCCMT2F
OLCCMT2I
OLCMSTR
OLCPREPC
OLCPREPF
OLCPREPI
OLCTERMC
OLCTERMI
GBLOLC
229
CC
0
0
0
0
TYPE
IMS
IMS
IMS
IMS
STATUS
LclAttr
OLCPREPC,OLCMSTR
GBLOLC
GBLOLC
GBLOLC
LclStat
OLCCMT1C
OLCCMT1C
OLCPREPC
The first response line with IM1A shows that INITIATE OLC PHASE(PREPARE) completed
successfully for the IMSplex. The global status is OLCPREPC. IM1A was the master of the
prepare.
The second response line with IM1A shows that IM1A is enabled for global online change and
it has completed commit phase 1.
The response line with IM3A shows that it also is enabled for global online change and has
completed commit phase 1.
The response line with IM4A shows that it is enabled for global online change and it has
completed prepare. This implies that it has failed commit phase 1.
A or B
LastOLC
MbrList
CC Library
0 OLCSTAT
DSName
IMSPSA.IMS0.OLCSTAT
ACBLIB
A
FMTLIB
B
LastOLC
FMTLIB
MODBLKS
A
Modid
02
MbrList
IM1A,IM3A,IM4A
The current online change active libraries are ACBLIBA, FMTLIBB, MODBLKSA, and
MATRIXA. Modid 2 indicates that one online change has been performed. The OLCSTAT
data set name IMSPSA.IMS0.OLCSTAT is listed. The last online change was only for
FMTLIB. The member list of IMSs that are current with the online change libraries includes
IM1A, IM3A, and IM4A.
230
This example shows the current active libraries, marked with (A), and the current inactive
libraries, marked with (I).
Database RXLDB101 is being changed. A PSB using this database is currently scheduled.
Transaction SNWFT116 is being changed. There are currently 6 instances of this transaction
on the queue.
231
ALL
/NRE CHECKPOINT 0
MODBLKS
/NRE CHECKPOINT 0
ACBLIB
/ERE COLDBASE
/NRE CHECKPOINT 0
FORMAT
/NRE
/ERE
/ERE COLDCOMM
/ERE COLDBASE
/NRE CHECKPOINT 0
IMS restart is not sensitive to changes made in the MFS FORMAT library. So, an online
change only for FORMAT does not restrict the restart. All other online changes require a cold
start of the affected part of IMS. A change to ACBLIB requires a cold start of the database
manager part of IMS. A change to MODBLKS requires a cold start of all of IMS.
232
Important: Note that a change to Global online change requires a cold start of the IMS
system.
IMS systems may be migrated to global online change one system at a time. The process is
shown here.
1. Define OLCSTAT data set
2. Run the DFSUOLC0 utility to initialize OLCSTAT data set, before the IMS is cold started
for the first time
3. Shut down an IMS
4. Remove MODSTAT DD statements from the IMS control region JCL
5. If you are using XRF, also remove MODSTAT2 DD
6. Define the IMS's DFSCGxxx with OLC=GLOBAL & OLCSTAT=dsname
7. Cold start the IMS
It is advisable to limit the time that some systems are using local online change and some are
using global online change. The support for the mixed environment is provided to facilitate the
migration of systems one at a time.
Fallback from global online change to local online change is also supported. This may also be
done one system at a time.
Important: Note that fallback to local online change from global also requires an IMS cold
start.
Define DFSCGxxx OLC=LOCAL
1.
2.
3.
4.
5.
6.
233
15.10 Requirements
Global online changed requires the OLCSTAT data set and the use of the Common Service
Layer (CSL). In IMS PROCLIB member DFSCGxxx, OLC=GLOBAL and OLCSTAT=data set
name, must be defined.
Common Service Layer (CSL) requirements:
Structured Call Interface address space on each system in the IMSplex
Operations Manager
Resource Manager
At least one RM in the IMSplex
Resource structure required for resource consistency checking
234
16
Chapter 16.
235
236
SPOC
Operations
Manager
(OM)
Structured
Call
Interface
Resource
Manager
(RM)
Resource
List Structure
SCI
SCI
SCI
Transactions
Lterms
SCI
Communications
Automation
Msnames
IMS
Control
Region
MTO
S
C
I
S
C
I
Common
Queue
Server
(CQS)
Users
Nodes
Userids
VTAM
(TCP/IP)
Processes
.....
The SPOC application may or may not be on the same system as the OM, but it must be on
same system as the SCI, as the SCI is used to communicate with OM. For detailed
information on the Common Service Layer, and the various configuration options see
Chapter 13, Common Service Layer (CSL) architecture on page 155, and Chapter 20,
Common Service Layer configuration and operation on page 289.
You can write your own SPOC applications, use the IBM-provided TSO/ISPF SPOC
application, or write a REXX SPOC application that use the REXX SPOC API. Using a SPOC
application, you can:
Issue commands to all the IMS subsystems in an IMSplex.
Display consolidated responses from those commands.
Send a message to an IMS terminal that is connected to any IMS in the IMSplex using the
BROADCAST command.
The limitations (commands not supported) of the TSO SPOC application are the same as
those for the OM API. The command supported by the OM API can be found in the IMS
Version 8: Release Planning Guide, GC27-1305. Complete information on all of the IMS
commands, can be found in the IMS Version 8: Command Reference, SC27-1291.
237
238
TSO/ISPF
Single Point of Control
(DFSSPOC)
IMS
Control
Region
Structured
Call
Interface
Operations
Manager
(OM)
SCI
SCI
S
C
I
IMS
Control
Region
S
C
I
IMS
Control
Region
S
C
I
The command responses and log information can be put to the ISPF list file
Save
Find
Help
Scrolling
Where applicable, data can be scrolled left and right, or up and down
239
Usage
Data set
FILE (ISPLLIB)
IMS.SDFSRESL
FILE (ISPPLIB)
IMS.SDFSPLIB
FILE (ISPMLIB)
IMS.SDFSMLIB
FILE (ISPTLIB)
user.ISPTLIB
IMS.SDFSTLIB
FILE (ISPTABL)
user.ISPTLIB
FILE (SYSPROC)
IMS.SDFSEXEC
This will allocate the libraries and invoke the TSO SPOC application, and will place you on the
SPOC control panel. Table 16-2 shows the hierarchy of the TSO SPOC application menu
options, and their function.
Table 16-2 SPOC application menu structure
Menu item
Sub-menu item
Function
File
1. Save As
2. Print
3. Print All
Display
240
Menu item
View
Options
Help
Sub-menu item
Function
3. Command status
4. Command shortcuts
5. Expand command
1. Find
2. Sort
1. Preferences
2. Extended help
3. Keys help
4. Help Index
5. Tutorial
6. About
Tip: Take the time to review the function key settings on each of the screens. The TSO
SPOC is a CUA compliant application, but some of the function key assignments may not
be what you expect. The application uses a number of ISPF dialog keylists to provide
context specific function key processing.
241
Figure 16-3 shows the TSO SPOC control panel. The initial panel contains the command
input area for IMS commands up to 165 characters, the scrollable response area, and fields
to override the target IMSplex name, the specific members to receive the routed command,
and the time to wait for the command to complete. These fields can be used to temporarily
override the default values specified in the IMS SPOC preferences.
16.2.2 Preferences
Before utilizing the SPOC application, it is necessary to provide some default preferences. To
access the preferences dialog, select Options >1. Preferences. Figure 16-4 shows the
SPOC preference panel. Specify the name of the IMSplex that you want to use as the TSO
SPOC default. Whenever the TSO SPOC application prompts you to enter an IMSplex name,
the default IMSplex name that you enter here will be used unless you specify a different
IMSplex name when prompted. You must specify a default IMSplex value the first time you
use TSO SPOC application.
You may optionally specify which IMS systems or previously defined IMS groups (which will
be discussed later), within the default IMSplex, will be the default IMS systems to process
your commands. That is, all commands you enter will only affect these IMS systems, unless
you override the preference by using the plex and route fields on the SPOC control panel.
Each IMS system or group should be delimited by a space or comma. You can enter as many
IMS names or group names that the space provided accommodates.
You can optionally specify a wait interval to set a default time limit for all commands to
process before the system times-out the command. That is, all your IMS commands must
process within the time you specify here unless you override this value with a wait value on
the TSO SPOC control panel.
If the IMS system does not process the command within the specified time, the system
times-out the command and no response is returned. You know the IMS system is processing
the command you entered because of the single point of control - Executing panel that
appears until the command has been completed or until the wait interval has expired. Once
the command process has finished, or has timed-out, you will be returned to the TSO SPOC
control panel.
The default wait time, if no time is entered, is five minutes. All wait intervals are in the form of
MMM:SS (M=minutes; S=seconds). If you only enter a number and no colon, the SPOC will
interpret the number as seconds. For example, if you enter 120 as your wait interval value,
the TSO SPOC will interpret this as 120 seconds, or two minutes.
242
Optionally specify whether you want to wait for the command to complete and return a
response or not. If you prefer not to wait for command completion, you can review the
command status and output by selected Display >3. Command status from the action bar.
You can enable or disable whether the TSO SPOC is to process shortcuts which will be
discussed later. TSO SPOC will not used shortcuts if this selection is not specified.
Optionally indicate whether you would like for the TSO SPOC command and response panel
that allows you to enter commands and receive the output, or the SPOC status list that
displays the execution status of all commands you submitted to appear upon startup. The
command and response panel is the default if unspecified on the preference panel.
The preferences shown in Figure 16-4 should be adequate to get you started exploring the
features of the TSO SPOC application.
243
Figure 16-5 shows the results of an IMS DISPLAY QUEUE TRAN command which is one of
the classic IMS commands. The command can be retrieved to the command prompt by
placing the cursor on the command display in the response area and pressing enter. It may
then be modified, or re-submitted.
As you can see in the example, for IMS classic commands, you dont need to enter the
command recognition character / (slash). If you desire, you can still enter the slash, as IMS
Operations Manager can handle both formats of classic commands (it removes the slash
before actual processing).
Note: The TSO SPOC uses the OM API. The OM API does not support all of the variations
in syntax that were acceptable before. IMS has to register with OM and indicate which
commands it can process. Only a few of the variations are registered by IMS. Refer to IMS
Version 8: Command Reference, SC27-1291 for the list of the command verbs and primary
keywords that can be issued through the OM API.
For classic IMS commands, the response is in a sequential format. At top are some execution
statistics and log information. Below are the messages produced by the IMS command. The
text is in the same format as that of prior releases. The text is prefixed by the member name,
and information from each member is grouped together. Each message line is a single XML
tagged value.
Figure 16-6 shows the results of a QRY IMSPLEX SHOW(ALL) command which is one of the
new format IMSplex commands.
244
IMSplex commands may have log information too if there were some messages to display.
For example, one system may say 'no resources found' while other systems provide valid
resource information. The 'no resources' indication would appear in the log. To review the log
information select Display>2. Cmd entry & log from the action bar. The command and log
panel is displayed as shown in Figure 16-7.
245
246
If you issue one of the commands in the table, the additional parameters are appended to the
entered command. This occurs before default routing is added.
In addition to IMSplex commands and the supported classic commands, you can create a
shortcut by using the ampersand (&) as the first character. In this case, the command
parameters are not appended to the shortcut, but they replace the shortcut entirely.
A blank line is provided for you to define new commands. As you add new commands, they
are translated to upper case. Adjacent blanks are eliminated so that only one blank is
included. The command shortcuts table has the following field columns with these
possibilities:
An action field is provided to allow you to manage the command parameter list by entering
these actions:
The Cmd & resource field is considered the shortcut and is used as the key field. The table is
sorted by this field. When you issue a command, it is compared against the shortcuts in this
table, before submitting it to IMS. If there is a match, the additional parameters are appended
to your command, or command replacement occurs if the shortcut begins with an ampersand
(&).
The additional parameters field allows you to set a default for parameters to be added to the
entered command, or the command that is to replace the shortcut for shortcuts beginning
with an ampersand (&).
247
This panel gives you the option to save the currently display information. You may save
command response information from IMSplex commands, or 'log' information which will
typically have command response from classic IMS commands, or both.
248
To search for a particular text string, from the action bar select View>1. Find to invoke the
search command responses dialog shown in Figure 16-12. Enter the search string and press
enter.
249
The command response display will be scrolled to the location of the search string as shown
in Figure 16-13.
250
To sort on a particular IMSplex response field, select View>2. Sort from the action bar to
present the sort column name selection dialog as shown in Figure 16-14. Select the column
using either a /, or the character A for ascending order, or D for descending order and
press enter.
251
As shown in Figure 16-15, the command response area will be sorted by the selected
column. In our example, the command response output has been sorted by MbrName.
252
The commands are displayed with the most recent commands at the top of the list. A status
column indicates if a command has completed, is still executing or was issued sometime in
the past. The table includes an input field to allow you to resubmit a command, delete the
command completely or display the command response.
253
254
17
Chapter 17.
255
256
8. The AOP would continue receiving, forwarding, and responding to requests from its
clients, then degister from SCI.
Figure 17-1 shows how each of the first two of these AO client types might be configured in
an IMSplex.
Workstation
AO Client
Command Entry
AO Client
(TCP/IP)
VTAM
TSO
SPOC
Command
Forwarding
AO Client
Command
Entry
AO Client
Structured
Call
Interface
IMS
CONNECT?
Operations
Manager
Command
Processing
Client
(IMS)
Structured
Call
Interface
Operations
Manager
Command
Processing
Client
(IMS)
The following section describes in detail how a REXX EXEC might be written to register with
the IMSplex and invoke the OM interface.
257
Usage
Data set
TSOLIB command
IMS.SDFSRESL
FILE (SYSPROC)
user.written.execs
CSLULXSB
The REXX host command environment is setup by the CSLULXSB TSO command. The
purpose of this command it to establish the IMSSPOC host command environment, establish
the CSLULGTS function, and provides REXX variables for return code and reason code
processing within the REXX program. Example 17-1 shows the call to CSLULXSB to
establish the REXX SPOC environment.
Example 17-1 CSLULXSB TSO command call
Address TSO 'CSLULXSB'
IMSSPOC
Once CSLULXSB has been successfully processed, the IMSSPOC environment is available
to the REXX program. Host commands are typically quoted strings and are passed directly to
the host command processor. Commands IMS, ROUTE, WAIT, CART, and END are
supported and perform specific local IMSSPOC functions. Any other passed string is
assumed to be a command and is passed to SCI. Example 17-2 shows the use of the
IMSSPOC environment.
Example 17-2 IMSSPOC environment call
Address IMSSPOC
"IMS
plex1"
/* set the IMSplex name
*/
"ROUTE im1a"
/* set explicit route for commands
*/
"CART mytoken" /* define the command and response token */
"WAIT 0:30"
/* set the OM timeout interval
*/
"QRY IMSPLEX SHOW(ALL)"
ROUTE explicitly routes this command to IMSplex member IM1A. This subcommand is
optional, and if not specified, the command will be processed for all members of the
IMSplex.
258
CART
defines the command and response token to be used for this command to be
mytoken.
WAIT
CSLULGTS()
This REXX external function is used by the REXX interface to get the response from OM. The
XML tagged response returned by OM is parsed, and each individual line is saved in a REXX
stem variable. The name of the stem variable is specified by the user as the first parameter to
the CSLULGTS function call. Since there could be more than one active command response,
the response for a given command invocation is correlated using the Command and
Response Token value (CART) which is specified in both the IMSSPOC, and the CSLULGTS
function call to retrieve the response. Example 17-3 shows the used of the CSLULGTS
function to retrieve the command response.
Example 17-3 CSLULGTS call
results = cslulgts('resp.','mytoken',"0:30")
mytoken
The name of the command and response token used to correlate responses with
commands
0:30
The values of the variables are character representations of hex values. For example, the
imsrc value is c'08000008X' when a parameter is not correct. The character 'x' is at the end of
the string so REXX will treat it as a character data type.
Table 17-2 shows the REXX SPOC API return codes and their meanings.
Table 17-2 REXXREXX SPOC API return codes
Return code
Meaning
"00000000X"
"08000004X"
Warning
"08000008X"
Parameter error
"08000010X"
Environment error
"08000014X"
System error
Table 17-3 contains the REXX SPOC API warning reason codes and their meanings.
Table 17-3 REXX SPOC API warning reason codes
Reason code
Meaning
"00001000X"
Table 17-4 contains the REXX SPOC API parameter error reason codes and their meanings.
259
Reason code
Meaning
"00002000X"
"00002008X"
"00002012X"
"00002016X"
"00002020X"
"00002024X"
"00002028X"
Table 17-5 contains the REXX SPOC API system error reason codes and their meanings.
Table 17-5 REXX SPOC API system error reason codes
Reason Code
Meaning
"00004000X"
Getmain failure
= 'IMS '||a
= 'CART '||b
= 'WAIT '||c
,c
260
say 'imsrc
='imsrc
say 'imsreason='imsreason
say ''
"END"
*/
Example 17-5 contains a sample batch job stream to execute the REXX SPOC program.
Example 17-5 REXX SPOC sample batch job stream
//USERIDX JOB (999,ABC),'REXX SPOC',NOTIFY=&SYSUID,
//
CLASS=A,MSGCLASS=T,
//
MSGLEVEL=(1,1)
//*
//SPOC
EXEC PGM=IKJEFT01
//STEPLIB DD DISP=SHR,DSN=IMS.SDFSRESL
//SYSPROC DD DISP=SHR,DSN=USERID.CLIST
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
%REXXSPOC QRY TRAN NAME(A*)
%REXXSPOC DIS Q TRAN
/*
Example 17-6 is sample output from the two executions of the sample REXX program.
Example 17-6 Sample output from the two sample command invocations
READY
%REXXSPOC QRY TRAN NAME(A*)
IMS Command Input:
QRY TRAN NAME(A*)
Return and reason code information:
imsrc
=0200000CX
imsreason=00003000X
There were 39 line(s) returned.
Command results (XML output):
<?xml version="1.0"?>
<!DOCTYPE imsout SYSTEM "imsout.dtd">
<imsout>
<ctl>
<omname>IM1AOM </omname>
<omvsn>1.1.0</omvsn>
<xmlvsn>1 </xmlvsn>
<statime>2002.156 21:31:19.998201</statime>
<stotime>2002.156 21:31:20.014262</stotime>
<staseq>B7BC2D585B2F91A6</staseq>
261
<stoseq>B7BC2D585F1B6F45</stoseq>
<rqsttkn1>OPS1
</rqsttkn1>
<rc>0200000C</rc>
<rsn>00003000</rsn>
</ctl>
<cmderr>
<mbr name="IM4A
">
<typ>IMS
</typ>
<styp>DBDC
</styp>
<rc>00000004</rc>
<rsn>00001000</rsn>
</mbr>
</cmderr>
<cmd>
<master>IM1A
</master>
<userid>JOUKO3 </userid>
<verb>QRY </verb>
<kwd>TRAN
</kwd>
<input>QRY TRAN NAME(A*)</input>
</cmd>
<cmdrsphdr>
<hdr slbl="TRAN" llbl="Trancode" scope="LCL" sort="a" key="1" scroll="no" len="8" dtype="
CHAR" align="left" />
<hdr slbl="MBR" llbl="MbrName" scope="LCL" sort="a" key="4" scroll="no" len="8"
dtype="CHAR" align="left" />
<hdr slbl="CC" llbl="CC" scope="LCL" sort="n" key="0" scroll="yes" len="4" dtype="INT"
align="right" /></cmdrsphdr>
<cmdrspdata>
<rsp>TRAN(ADDPART ) MBR(IM1A
) CC(
0) </rsp>
<rsp>TRAN(ADDINV ) MBR(IM1A
) CC(
0) </rsp>
</cmdrspdata>
</imsout>
READY
%REXXSPOC DIS Q TRAN
IMS Command Input:
DIS Q TRAN
Return and reason code information:
imsrc
=00000000X
imsreason=00000000X
There were 35 line(s) returned.
Command results (XML output):
<?xml version="1.0"?>
<!DOCTYPE imsout SYSTEM "imsout.dtd">
<imsout>
<ctl>
<omname>IM1AOM </omname>
<omvsn>1.1.0</omvsn>
<xmlvsn>1 </xmlvsn>
<statime>2002.156 21:31:23.203989</statime>
<stotime>2002.156 21:31:23.206455</stotime>
<staseq>B7BC2D5B69D95921</staseq>
<stoseq>B7BC2D5B6A7374A4</stoseq>
<rqsttkn1>OPS1
</rqsttkn1>
<rc>00000000</rc>
<rsn>00000000</rsn>
</ctl>
<cmd>
<master>IM1A
</master>
262
<userid>JOUKO3 </userid>
<verb>DIS </verb>
<kwd>Q
</kwd>
<input>DIS Q TRAN</input>
</cmd>
<msgdata>
<mbr name="IM1A
">
<msg>
CLS
PTY
MSG CT TRAN
<msg>
*NO QUEUES*</msg>
<msg>
*2002156/173123*</msg>
</mbr>
<mbr name="IM4A
">
<msg>
CLS
PTY
MSG CT TRAN
<msg>
*NO QUEUES*</msg>
<msg>
*2002156/173123*</msg>
</mbr>
</msgdata>
</imsout>
READY
END
PSBNAME </msg>
PSBNAME </msg>
263
264
18
Chapter 18.
265
SCI
DBRC
S
C
I
DBRC
S
C
I
SCI
SCI
SCI
IMS
CTL
SCI
SCI
S
C
I
IMS
CTL
S
C
I
XCF
XCF
CF
RECONs
XCF
XCF
IMS
CTL
S
C
I
SCI
SCI
DBRC
SCI
266
IMS
CTL
SCI
S
C
I
DBRC
S
C
I
SCI
SCI
S
C
I
The first DBRC instance that registers with SCI providing the IMSplex name, saves this name
in the RECON and invoke the ARLN.
Keep in mind, once you have invoked ARLN by specifying this IMSplex name, all following
IMS Version 8 DBRC instances using the same RECONs must specify the same IMSplex
name, otherwise they will fail, issuing the following message:
DSP1136A RECON ACCESS DENIED, IMSPLEX NAME nnnnn NOT VALID
This message is also shown in Example 18-2 on page 271 and Example 18-4 on page 272.
We are referring to any interested party accessing the RECON as a DBRC instance. This
includes all IMS online and batch regions, most IMS utility programs and the DBRC utility
(DSPURX00) and they all need to specify the same IMSplex name. The RECON loss
notification as well as the initialization and termination of any DBRC instance will be
propagated to all other running DBRC instances as long as they are registered with SCI.
Note: DBRC can use SCI even if its IMS control region is not using SCI. When both DBRC
and IMS control region register with SCI, they must specify the same IMSplex name (they
cannot join different IMSplexes).
The SCI itself is assigned to the IMSplex name in the CSLSIxxx PROCLIB member by the
IMSPLEX parameter, as follows:
IMSPLEX(NAME=PLEX1),
For the description of CSLSIxxx member, refer to Set up the Structured Call Interface on
page 293).
267
The data set name of one of the RECON data sets (RECON1, RECON2 or RECON3) is
passed to the exit routine. If an IMSPLEX= execution parameter is provided, this value (one
to five characters) is passed to the exit routine as well.
The exit passes back a return code to indicate the intended registration action to take and the
IMSplex name to use, if the decision was made to register this DBRC instance.
The return codes are listed in Table 18-1 below.
Table 18-1 Return codes of the DSPSCIX0 exit
Return code
0000
0004
0008
No SCI registration; any IMSplex name found in RECON is ignored and the
RECON access is allowed. Use this with caution! Maybe you should provide
a special copy of your exit routine for using this option only in emergency
cases. Access to this exit routine should be restricted to authorized
personnel only!
0012
18.2.2 How to migrate and fallback from automatic RECON loss notification
For some reasons, for example during test period, you may want to change the IMSplex
name or to stop using ARLN and remove the IMSplex name from RECON. The IMSplex
name is saved in the RECON and it can be changed by using the following command:
CHANGE.RECON IMSPLEX(IMSplex name)
If you want to stop using ARLN, the IMSplex name can be removed from RECON by using
the following command:
CHANGE.RECON NOPLEX
To use the commands mentioned above, the DBRC instance itself, which is a DBRC
command utility execution, you still need to provide the valid old IMSplex name even if you
want to go back to using option NOPLEX (otherwise RECON access is denied). But again,
be aware that any DBRC instances registering with SCI following your changes need to be
re-adjusted for the new IMSplex name or, in case of NOPLEX option, the next one starting
with any IMSplex name is the first one which would save the given IMSplex name (by
execution parameter or modified user exit) into the RECON.
Please be aware of the following considerations:
This CHANGE command cannot be used for the initial setting of the IMSplex name into
the RECON. The initial value of the IMSplex name into the RECON will be done by the first
DBRC instance providing the IMSplex name either as execution parameter or using the
user exit. The sample exit tries to find a table entry associating the RECON data set name
with an IMSplex name.
268
This CHANGE command is not supported for /RMCHANGE usage, it only may be invoked
with DBRC command utility execution.
This CHANGE command cannot be used if any DBRC instance using this RECON is
active, except for any DBRC instance which was started before ARLN was activated.
Any subsequent commands in the DBRC command utility (DSPURX00) job step will fail.
We recommend restricting access to this command to authorized personnel.
Uses lookup table to match the passed RECON data set name with an entry containing
the corresponding IMSplex name (the table is empty as supplied, you need to modify it)
Returns IMSplex name from the table entry with RC=00
If IMSPLEX= parameter is not specified and no match found in the table:
Sets RC=04, meaning no SCI registration will be done. No IMSplex name will be saved
in the RECON and RECON access fails if the RECON contains an IMSplex name. If
the RECONs contain an IMSplex name, RECON access is denied.
Note: The DSPSCIX0 exit must be in an authorized library. If the library is concatenated,
only the data set containing the exit needs to be authorized. DBRC performs a specific
check on the dataset the module is loaded from to determine that it is contained in the
Authorized Program Facility (APF) list.
The SCI is a prerequisite for automatic RECON loss notification.That means ARLN is only
available for IMS Version 8 systems running in an IMSplex environment. All IMS Version 6
and IMS Version 7 systems using DBRC are allowed to share the RECONs even though they
are not able to register with SCI and they cannot support ARLN.
Chapter 18. Automatic RECON loss notification
269
18.4 Examples
Here are some examples relating to the explanations and messages mentioned before.
Example 18-1 SCI registration
J E S 2
J O B
L O G
--
S Y S T E M
S C 5 3
--
N O D E
17.08.02 JOB10316 ---- THURSDAY, 13 JUN 2002 ---17.08.02 JOB10316 IRR010I USERID JOUKO1
IS ASSIGNED TO THIS JOB.
17.08.03 JOB10316 ICH70001I JOUKO1
LAST ACCESS AT 17:06:13 ON THURSDAY, JUNE
17.08.03 JOB10316 $HASP373 LISTRCN STARTED - INIT A
- CLASS A - SYS SC53
17.08.03 JOB10316 IEF403I LISTRCN - STARTED - TIME=17.08.03 - ASID=03F3 - SC53
17.08.03 JOB10316 +DSP1123I DBRC REGISTERED WITH IMSPLEX PLEX1
17.08.04 JOB10316 --TIMINGS (MINS.)-17.08.04 JOB10316 -JOBNAME STEPNAME PROCSTEP
RC
EXCP
CPU
SRB CLOCK
17.08.04 JOB10316 -LISTRCN
D
00
232
.00
.00
.0
17.08.04 JOB10316 IEF404I LISTRCN - ENDED - TIME=17.08.04 - ASID=03F3 - SC53
17.08.04 JOB10316 -LISTRCN ENDED. NAME-LISTINGS
TOTAL CPU TIME=
17.08.04 JOB10316 $HASP395 LISTRCN ENDED
------ JES2 JOB STATISTICS -----...
2 //D
EXEC PGM=DSPURX00,PARM=('IMSPLEX=PLEX1')
3 //STEPLIB DD DISP=SHR,DSN=IMSPSA.IMS0.SDFSRESL
4 //
DD DISP=SHR,DSN=IMSPSA.IM0A.MDALIB
...
DSP1123I DBRC REGISTERED WITH IMSPLEX PLEX1
IMS VERSION 8 RELEASE 1 DATA BASE RECOVERY CONTROL
PAGE 0002
LIST.RECON STATUS
2002.164 17:08:03.2 -04:00
LISTING OF RECON
PAGE 0003
------------------------------------------------------------------------------RECON
RECOVERY CONTROL DATA SET, IMS V8R1
DMB#=13
INIT TOKEN=02015F0058438F
NOFORCER LOG DSN CHECK=CHECK17
STARTNEW=NO
TAPE UNIT=3480
DASD UNIT=3390
TRACEOFF
SSID=IM1A
LIST DLOG=YES
CA/IC/LOG DATA SETS CATALOGED=YES
MINIMUM VERSION = 6.1
LOG RETENTION PERIOD=00.001 00:00:00.0
COMMAND AUTH=NONE HLQ=**NULL**
SIZALERT DSNUM=15
VOLNUM=16
PERCENT= 95
LOGALERT DSNUM=3
VOLNUM=16
TIME STAMP INFORMATION:
TIMEZIN = %SYS
-LABEL- -OFFSETUTC
+00:00
OUTPUT FORMAT: DEFAULT = LOCORG LABEL PUNC YYYY
CURRENT = LOCORG LABEL PUNC YYYY
IMSPLEX = PLEX1
-DDNAMERECON1
RECON2
RECON3
-STATUSCOPY1
COPY2
SPARE
If you use the provided sample SCI registration user exit, you get the following SCI
registration message DSP1123I with the additional info USING EXIT:
19.00.40 JOB10437
270
+DSP1123I
You get this message even though you have stated the correct IMSPLEX parameter on the
exec statement. It indicates that the final decision is made by the exit.
If there is already an IMSplex name in the RECON (PLEX1), and you are trying to access
this RECON without any execution parameter or an SCI user exit, the access is denied and
return code 12 is issued as shown in Example 18-2:
Example 18-2 RECON access denied
...
19.16.52 JOB09571 IEF403I LISTRCN - STARTED - TIME=19.16.52 - ASID=0035 - SC54
19.16.53 JOB09571 +DSP1136A RECON ACCESS DENIED, IMSPLEX NAME
NOT VALID
19.16.53 JOB09571 +DSP1136A RECON ACCESS DENIED, IMSPLEX NAME
NOT VALID
19.16.53 JOB09571 --TIMINGS (MINS.)-19.16.53 JOB09571 -JOBNAME STEPNAME PROCSTEP
RC
EXCP
CPU
SRB CLOCK
19.16.53 JOB09571 -LISTRCN
D
12
170
.00
.00
.0
19.16.53 JOB09571 IEF404I LISTRCN - ENDED - TIME=19.16.53 - ASID=0035 - SC54
...
1 //LISTRCN JOB (999,POK),'LISTINGS',NOTIFY=&SYSUID,
//
CLASS=A,MSGCLASS=T,TIME=1439,
//
REGION=0M,MSGLEVEL=(1,1)
/*JOBPARM SYSAFF=SC54
//*JOBPARM SYSAFF=SC47
//********************************************************************
//* SC53 IM1SC , SC54 IM3SC , SC67 IM4SC
//* IMS0 RESLIB WITH DSPSCIX0 MODIFIED WITH UMSCIX0
//* IM0A RESLIB WITHOUT
//********************************************************************
IEFC653I SUBSTITUTION JCL - (999,POK),'LISTINGS',NOTIFY=JOUKO1,CLASS=A
MSGLEVEL=(1,1)
2 //D
EXEC PGM=DSPURX00
<==== no parm string !
...
If the IMSplex name stated on execution parameter is wrong (no SCI address space found
responsible for an IMSplex called "PLEX4" on this LPAR), the "SCI registration failed"
message is issued as shown in Example 18-3:
Example 18-3 SCI registration failed
J E S 2
J O B
20.03.21
20.03.21
20.03.22
20.03.22
20.03.22
20.03.22
20.03.22
20.03.22
20.03.22
20.03.22
20.03.22
...
L O G
--
S Y S T E M
S C 5 3
--
N O D E
//
CLASS=A,MSGCLASS=T,TIME=1439,
//
REGION=0M,MSGLEVEL=(1,1)
/*JOBPARM SYSAFF=SC53
//********************************************************************
//* LPAR & SCI asid STARTED :
//* SC53
IM1ASC PLEX1 (CSLSIxxx mbr with stmt IMSPLEX(NAME=PLEX1)
271
//********************************************************************
IEFC653I SUBSTITUTION JCL - (999,POK),'LISTINGS',NOTIFY=JOUKO1,CLASS=A
MSGLEVEL=(1,1)
2 //D
EXEC PGM=DSPURX00,PARM=('IMSPLEX=PLEX4')
3 //STEPLIB DD DISP=SHR,DSN=IMSPSA.IMS0.SDFSRESL
If there are two SCI address spaces running on the same LPAR (another SCI participating in
another IMSplex, PLEXC for instance), and you specify the wrong IMSplex name
(PLEXC) not matching the really intended RECON (IMSPLEX value is PLEX1), you get
the registration message (issued by the other but unwanted SCI), however, the RECON
ACCESS DENIED message also appears because of the mismatch between IMSPLEX
name PLEX1 already inserted into your RECON and the wrong name passed by your
execution parameter:
Example 18-4 SCI registration even so RECON access denied
J E S 2
J O B
L O G
20.10.37
20.10.37
20.10.38
20.10.38
20.10.38
20.10.38
20.10.38
20.10.38
20.10.39
20.10.39
20.10.39
20.10.39
20.10.39
20.10.39
...
--
S Y S T E M
S C 5 3
--
N O D E
EXEC PGM=DSPURX00,PARM=('IMSPLEX=PLEXC')
...
Again, the DSP1123I message issues with "... USING EXIT" if the provided IBM user exit is
used.
In the following example you can see the DSP0388I message listing the subsystems up and
running identified by the active subsystem records flagged in RECON. We have used the
CHANGE.RECON REPLACE(RECON1) control statement running the DBRC batch utility to force the
notification message. This statement caused the copy of RECON2 into the SPARE and the
RECON1 to be discarded.
Example 18-5 RECON change forced by REPLACE(RECON1)
272
J E S 2
J O B
L O G
15.27.34
15.27.34
15.27.35
15.27.35
15.27.35
15.27.35
15.27.36
15.27.36
15.27.36
15.27.36
--
S Y S T E M
S C 5 3
--
N O D E
In the following joblog example you can see the notification message in one of these
registered DBRC instances.
Example 18-6 RECON loss notification
J E S 2
12.34.19
12.34.19
12.34.19
12.34.19
12.34.21
12.34.21
15.27.36
J O B
L O G
--
S Y S T E M
S C 5 3
--
N O D E
...
273
If you try to change your RECON IMSplex value while any other DBRC instance which is SCI
registered and running within this IMSplex you will get following informational message as
shown in Example 18-7:
Example 18-7 DSP1137I message
J E S 2
J O B
L O G
--
S Y S T E M
S C 5 3
--
N O D E
12.54.41
12.54.41
12.54.41
12.54.41
12.54.41
12.54.41
12.54.42
12.54.42
12.54.42
12.54.42
12.54.42
12.54.42
12.54.42
12.54.42
...
DSP1123I
Any subsequent command after the CHANGE.RECON IMSPLEX(...) | NOPLEX control statement
will not executed, indicated by the DSP0217I message. The message issued at the bottom of
Example 18-7 for the LIST.RECON command.
In the following examples, we use a different SCI user exit modified with some RECON data
set entries, maintained by SMP/E and intended for global use, for example, across your test
and development environments (and their RECONs), ignoring any IMSplex value specified in
the execution parameter. The following examples are shown only for documentation
purposes, your version should be modified to suit your own environment.
In this simple user exit modification, there is only one set of RECONs (assigned for PLEX1)
intended to register with SCI and use ARLN, whereas the other entries
(IMSPSA.IM0B.RECON* , IMS810.RECON* ) are intended to bypass any SCI registration.
The first example is a job including sample JCL for compile and link of the sample exit. It is
only intended to use as input for an SMP JCLINREPORT job to create the necessary SMP/E
target zone elements preparing the target for the apply step (Of course, in substitute you can
define the MOD and LMOD element explicitly with the known SMP/E statements):
Example 18-8 JCLINREPORT input
********************************* Top of Data ***************************
//IMSEXITS JOB (999,POK),
// 'HK',
274
// CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID,
// REGION=64M
//*
//* JCLLIB ORDER=(IMS810C.PROCLIB)
/*JOBPARM L=9999,SYSAFF=*
//*********************************************************************
//* IMS EXIT FROM SAMPLE LIB
//* !! THIS IS ONLY THE DECK FOR JCLINREPORT !!
//* C.SYSINs LLQ DSNAME IS MAPPED TO SRC ENTRY DISTLIB(DDD)
//* L.SYSLMODs LLQ DSNAME IS MAPPED TO LMOD SYSLMOD(DDD)
//* INCLUDE DDDEF(MODUL) IS CREATING MOD ENTRY
//*********************************************************************
//C
EXEC PGM=ASMA90,PARM='OBJECT,NODECK'
//SYSPRINT DD SYSOUT=*
//SYSLIB
DD DISP=SHR,DSN=IMS810C.ADFSMAC
//
DD DISP=SHR,DSN=SYS1.MACLIB
//
DD DISP=SHR,DSN=ASM.SASMMAC2
//SYSLIN
DD ...
...
//SYSIN
DD DISP=SHR,DSN=IMS810C.ADFSSMPL(DSPSCIX0)
//L
EXEC PGM=IEWL,
//
PARM='XREF,LIST,RENT',COND=(0,LT,C)
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DISP=SHR,DSN=IMS810C.SDFSRESL
//SYSUT1
DD UNIT=(SYSALLDA,SEP=(SYSLMOD,SYSLIN)),
//
DISP=(,DELETE,DELETE),SPACE=(CYL,(1,1))
//SYSLIN
DD DISP=(OLD,DELETE,DELETE),
//
DSN=*.C.SYSLIN,VOL=REF=*.C.SYSLIN
//
DD *
INCLUDE ADFSLOAD(DSPSCIX0)
ENTRY DSPSCIX0
MODE AMODE(31),RMODE(ANY)
NAME DSPSCIX0(R)
/*
After creation of the MOD and LMOD elements (and after the RECEIVE process) the APPLY
(CHECK at first!) of the following USERMOD shown in Example 18-9 will link the changed
(++SRCUPD.ated) SCI user exit into your target SDFSRESL:
Example 18-9 SMP/E USERMOD for an SCI user exit change
++ USERMOD(UMSCIX0) /* DSPSCIX0 USER EXIT
*/.
++ VER(P115) FMID(HMK8800) .
++ SRCUPD(DSPSCIX0) DISTLIB(ADFSSMPL).
./ CHANGE NAME=DSPSCIX0
*/*01*
CHANGE-ACTIVITY: 05/24/02 table entries for
*/
*/*
IMSPSA.IM0A.RECON1,2,3 using PLEX1
*/
*/*
IMSPSA.IM0B.RECON1,2,3 no ARLN
*/
*/*
IMS810C.RECON1,2,3
no ARLN
*/
*--- DONT CARE ABOUT EXEC VALUE , ONLY TABLE IN USE
*
L
R4,8(,R1)
R4 = A(IMSPLEX VALUE FROM EXEC CARD)
*--------------------------------------------------------------------* IF IMSPLEX= SPECIFIED ON EXEC CARD, IGNORE IT !
*--------------------------------------------------------------------*
LTR
R4,R4
IMSPLEX= ON EXEC STATEMENT?
*
BZ
NEXECPRM
IF NOT SPECIFIED, BRANCH
*
MVC
0(PNL,R3),0(R4)
ELSE COPY VALUE TO RETURN AREA
*
SR
R15,R15
SET RC00
*
B
EXIT
AND RETURN TO DBRC
00010002
00020002
00030004
00040002
07551000
07552000
07553007
07554007
08849907
08850000
08900000
08950007
09000000
09050000
09100000
09150000
09200000
09250000
275
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
CL(DSNL)'IMSPSA.IM0A.RECON1'
RECON NAME
CL(PNL)'PLEX1'
IMSPLEX NAME
XL(RCL)'00000000'
RC00 = USE THE IMSPLEX NAME
CL(DSNL)'IMSPSA.IM0A.RECON2'
RECON NAME
CL(PNL)'PLEX1'
IMSPLEX NAME
XL(RCL)'00000000'
RC00 = USE THE IMSPLEX NAME
CL(DSNL)'IMSPSA.IM0A.RECON3'
RECON NAME
CL(PNL)'PLEX1'
IMSPLEX NAME
XL(RCL)'00000000'
RC00 = USE THE IMSPLEX NAME
CL(DSNL)'IMSPSA.IM0B.RECON1'
RECON NAME
CL(PNL)'*****'
IMSPLEX NAME
XL(RCL)'00000004'
RC04 = NO SCI REGISTRATION
CL(DSNL)'IMSPSA.IM0B.RECON2'
RECON NAME
CL(PNL)'*****'
IMSPLEX NAME
XL(RCL)'00000004'
RC04 = NO SCI REGISTRATION
CL(DSNL)'IMSPSA.IM0B.RECON3'
RECON NAME
CL(PNL)'*****'
IMSPLEX NAME
XL(RCL)'00000004'
RC04 = NO SCI REGISTRATION
CL(DSNL)'IMS810C.RECON1'
RECON NAME
CL(PNL)'*****'
IMSPLEX NAME
XL(RCL)'00000004'
RC04 = NO SCI REGISTRATION
CL(DSNL)'IMS810C.RECON2'
RECON NAME
CL(PNL)'*****'
IMSPLEX NAME
XL(RCL)'00000004'
RC04 = NO SCI REGISTRATION
CL(DSNL)'IMS810C.RECON3'
RECON NAME
CL(PNL)'*****'
IMSPLEX NAME
XL(RCL)'00000004'
RC00 = USE THE IMSPLEX NAME
./ ENDUP
11811000
11812000
11813000
11814000
11815000
11816000
11817000
11818000
11819000
11820000
11821000
11822000
11823000
11824000
11825000
11826000
11827000
11828000
11828100
11828200
11828300
11828400
11828500
11828600
11828700
11828800
11828900
11829000
This exit has been modified to match RECON data set names with IMSplex values regardless
of any IMSPLEX execution parameter. If any DBRC instance is running with a customized
user exit as shown in previous Example 18-9, it will get access to the right RECON despite
the wrong IMSPLEX name being stated in the execution parameter (Example 18-10):
Example 18-10 modified SCI user exit ignoring execution parameter
J E S 2 J O B L O G -- S Y S T E M S C 5 3 -- N O D E
21.07.47 JOB10501 ICH70001I JOUKO1
LAST ACCESS AT 20:10:38 ON THURSDAY, JUNE
21.07.47 JOB10501 $HASP373 LISTRCN STARTED - INIT A
- CLASS A - SYS SC53
21.07.47 JOB10501 IEF403I LISTRCN - STARTED - TIME=21.07.47 - ASID=03F3 - SC53
21.07.47 JOB10501 +DSP1123I DBRC REGISTERED WITH IMSPLEX PLEX1 USING EXIT
21.07.48 JOB10501 --TIMINGS (MINS.)-21.07.48 JOB10501 -JOBNAME STEPNAME PROCSTEP
RC
EXCP
CPU
SRB CLOCK
21.07.48 JOB10501 -LISTRCN
D
00
223
.00
.00
.0
21.07.48 JOB10501 IEF404I LISTRCN - ENDED - TIME=21.07.48 - ASID=03F3 - SC53
21.07.48 JOB10501 -LISTRCN ENDED. NAME-LISTINGS
TOTAL CPU TIME=
21.07.48 JOB10501 $HASP395 LISTRCN ENDED
------ JES2 JOB STATISTICS -----1 //LISTRCN JOB (999,POK),'LISTINGS',NOTIFY=&SYSUID,
//
CLASS=A,MSGCLASS=T,TIME=1439,
//
REGION=0M,MSGLEVEL=(1,1)
/*JOBPARM SYSAFF=SC53
//********************************************************************
//* LPARS & SCI asids STARTED :
//* SC53
IM1ASC PLEX1 (CSLSIxxx mbr with stmt IMSPLEX(NAME=PLEX1)
//* SC54
IM3ASC PLEX1 (CSLSIxxx mbr with stmt IMSPLEX(NAME=PLEX1)
//* SC67
IM4ASC PLEX1 (CSLSIxxx mbr with stmt IMSPLEX(NAME=PLEX1)
//*
//* SC53
IMCCSC PLEXC (CSLSIxxx mbr with stmt IMSPLEX(NAME=PLEXC)
//********************************************************************
276
...
2 //D
3 //STEPLIB
4 //
EXEC PGM=DSPURX00,PARM=('IMSPLEX=PLEXC')
DD DISP=SHR,DSN=IMSPSA.IMS0.SDFSRESL
DD DISP=SHR,DSN=IMSPSA.IM0A.MDALIB
...
IMS VERSION 8 RELEASE 1 DATA BASE RECOVERY CONTROL
LIST.RECON STATUS
2002.164 21:07:47.4 -04:00
LISTING OF RECON
---------------------------------------------------------------------RECON
RECOVERY CONTROL DATA SET, IMS V8R1
DMB#=13
INIT TOKEN=02015F0058438F
...
LOGALERT DSNUM=3
VOLNUM=16
TIME STAMP INFORMATION:
TIMEZIN = %SYS
-LABEL- -OFFSETUTC
+00:00
OUTPUT FORMAT: DEFAULT = LOCORG LABEL PUNC YYYY
CURRENT = LOCORG LABEL PUNC YYYY
IMSPLEX = PLEX1
-DDNAME-STATUS-DATA SET NAMERECON1
COPY1
IMSPSA.IM0A.RECON1
RECON2
COPY2
IMSPSA.IM0A.RECON2
RECON3
SPARE
IMSPSA.IM0A.RECON3
Since any DBRC instance, including batch and utility jobs running with DBRC=Y, needs SCI
up and running for the registration and the use of ARLN, you have to make sure of the
following:
1. On every LPAR available to schedule your jobs, there is one SCI active and a member of
the same IMSplex
or
2. You might define SCHEDULE environment(s) in your WLM policy describing SCI started
tasks based on unique IMSplex name(s) as elements to control your batch scheduling
across your sysplex and to avoid any batch job starting outside of your IMSplex LPARs.
277
278
19
Chapter 19.
279
19.1 LE overview
Before Language Environment, the high-level languages run time services were distributed
with the compiler language product. Each high-level language had its own run time library to
perform these and other functions, as shown in Figure 19-1.
COBOL
PL/I
C/C++
FORTRAN
Compiler
Compiler
Compiler
Compiler
Link-edit
Link-edit
Link-edit
Link-edit
Run-time
Run-time
Run-time
Run-time
Language Environment (LE) is the replacement product of older language-specific run time
libraries and is now a base element of the z/OS, OS/390, VM/ESA, and VSE/ESA operating
systems.
Today, LE has become IBM's key language product for all new run time services as shown in
Figure 19-2. These services are available to the application developer from multiple high-level
languages including COBOL, PL/I, C, C++, and FORTRAN. Even Assembler programs can
use these run time services (as long as they conform to the LE conventions).
COBOL
Compiler
PL/I
Compiler
C/C++
Compiler
FORTRAN
Compiler
LANGUAGE ENVIRONMENT
(Callable services interface, common services, and support routines)
Link-edit
Run-time
Basic support routines: Initialization/termination, storage, messages, conditions, ...
Callable services: Date, time, ...
Language-specific routines: C, C++, COBOL, PL/I, FORTRAN
280
CEEDOPT
CEEROPT
CEEUOPT
There are occasions when the LE run time options may need to be changed. Possibly to
collect problem diagnostic information by producing a dump, collecting trace data, or to
enable a debug tool. Another reason may be to change storage options for an application.
Prior to IMS Version 8, you may need to:
Recompile and relink the application with the new or changed run time options module.
Stop and restart the dependent region with the new or changed run time options module.
Recompile and relink LE modules used to supply the run time options.
Dynamic run time option support eliminates the need to change, recompile or reassemble,
and relink-edit modules used to supply run time options for an IMS application, or an IMS
dependent region
281
to retrieve the run time option overrides that have been set by the UPDATE LE and/or
DELETE LE commands.
19.4 DFSCGxxx
The DFSCGxxx PROCLIB member is used to specify parameters related to the Common
Service Layer, Operations Manager, and the Resource Manager which are common to all
IMS subsystems that are in the IMSplex. The suffix is specified on the CSLG= parameter.
A new keyword in the DFSCGxxx member, LEOPT=Y | N, indicates whether or not IMS
applications running on this system can dynamically override LE run time parameters.
LEOPT=Y indicates IMS should allow override parameters, if they exist for the application
that is executing. This enables the DL/I INQY call to retrieve the address of the run time
option overrides.
LEOPT=N indicates IMS should not allow any overrides. The DL/I INQY call will not return the
address of the run time option overrides. N is the default.
Regardless of the LEOPT= specification, the UPDATE LE and DELETE LE commands perform
updates to the LE run time options; however the run time option overrides (updates) are not
used unless LEOPT=Y is also used.
19.5.1 Update
The UPDATE LE command is used to change LE run time options for a transaction code,
logical terminal (LTERM name), user ID and/or application program. At least one of the
keywords and filters (TRAN, LTERM, USERID, or PGM) must be specified on the UPDATE
LE command.
The SET keyword is used to:
Specify the LE run time options that you want to dynamically change. The new or changed
run time options are designated by the LERUNOPTS specification(s).
Specify whether IMS is to enable (YES) or disable (NO) the ability to dynamically override
LE run time options. The LEOPT keyword is used for this purpose. The UPD LE
SET(LEOPT(YES)) command enables LE dynamic run time options for every IMS in the
IMSplex. The command CANNOT be directed to a specific IMS in the IMSplex.
282
When dynamic run time option support is disabled (LEOPT(NO)), UPDATE LE command
issued to change run time options result in run time option updates in an area of storage used
internally by IMS. However, the updates are not used until dynamic option support is enabled
SET(LEOPT(YES)). The UPDATE command is entered from the SPOC. The command is
routed to all IMS systems in the IMSplex. The dynamic run time option overrides supplied by
the UPDATE LE command are only allowed when dynamic LE overrides have been enabled.
The syntax for the UPDATE LE command is as follows:
UPDATE LE TRAN(trancode) LTERM(ltermname) USERID(userid) PGM(pgmname)
SET(LERUNOPTS(xxxxxxxx))
Example 19-1 shows two sample UPDATE LE commands. Note that generic parameters on
the filters are not usable with the UPDATE LE command.
Example 19-1 Update LE command
Note: The LE override function only takes place at program scheduling time, so filtering on
LTERM or USERID is only effective for the first message processed following program
scheduling.
19.5.2 Delete
The DELETE LE command is used to delete LE run time options for a transaction code, logical
terminal (LTERM name), user ID and/or application program. At least one of the keywords
and filters (TRAN, LTERM, USERID, or PGM) must be specified on the DELETE LE
command.
The DELETE command is entered from the SPOC. The command is routed to all IMS
systems in the IMSplex. The run time option overrides supplied by the DELETE LE command
are only allowed when dynamic LE run time option overrides have been enabled.
The syntax for the DELETE LE command is as follows:
DELETE LE TRAN(trancode) LTERM(ltermname) USERID(userid) PGM(pgmname)
Example 19-2 shows a sample DELETE LE command. Note that you can use generic
parameters on the filters with this command.
Example 19-2 Delete LE command
19.5.3 Query
The QUERY LE command is used to query LE run time parameters in effect for a transaction
code, logical terminal (LTERM name), user ID and/or application program.
The SHOW parameter specification displays output fields selected in the filter. At least one
SHOW (ALL | TRAN | LTERM | USERID | PGM | LERUNOPTS) field is required.
The syntax for the QUERY LE command is as follows:
283
Example 19-3 shows a sample QUERY LE command. Note that you can use generic
parameters on the filters with this command.
Example 19-3 Query LE command
19.5.4 DFSBXITA
CEEBXITA is an existing LE exit and continues to function as it has in previous releases.
When CEEBXITA is linked with the Language Environment initialization/termination library
routines during installation, it functions as an installation-wide user exit. When CEEBXITA is
linked in your load module, it functions as an application-specific user exit. The
application-specific exit is used only when you run that application. The installation-wide
assembler user exit is not executed.
What is new in IMS V8 is an IMS supplied version of CEEBXITA. The exit is delivered as
DFSBXITA but must be reassembled and linked as a part of CEEBXITA. Code in the exit
checks to see if the environment is IMS or not. If it is IMS then an INQY call is made to
retrieve the LE run time overrides; otherwise for non-IMS environments, the code is
bypassed.
In Java regions, the enclave initialization takes place before the application is known or given
control. Therefore, if DFSBXITA is linked with the Java application, it will not be invoked. If
DFSBXITA is linked with the LE libraries, it will be invoked, but the ECP (pointer to
parameters that made the last call to DL/I) will not be allocated at this point of a Java region
initialization. The Java region CREATE THREAD will make the DLI INQY LERUNOPT call. If
parameters are returned as a result of the LERUNOPT call, the C SETENV call will be issued
to pass the overrides parameters to the application.
DFSBXITA can be modified by user if needed but the exit must be linked as CEEBXITA If you
have an existing CEEBXITA, you will need to incorporate the logic from DFSBXITA into your
existing exit to provide dynamic LE options support.
Incorporate DFSBXITA source into to CEEBXITA
Assemble and link-edit CEEBXITA
If exit invoked from IMS environment
Execute DFSBXITA logic prior to returning control to LE
If exit invoked from non-IMS environment
Decide where to branch to in CEEBXITA for non-IMS related processing
284
Overrides are allowed for the system, but the override table has not yet been initialized
Overrides are allowed for the system, but there is no applicable override string for the
caller
Run time options are defined to IMS using the UPDATE LE command. In the following
command, the SET(LERUNOPTS(xxxxxxxx)) specification is used to define the run time
overrides:
UPD LE TRAN(tttt) LTERM(llll) USERID(uuuu) PGM(pppp) SET(LERUNOPTS(xxxxxxxx)).
MPP and JMP region overrides are based on the combination of transaction name, LTERM
name, user ID, or program name. IFP, BMP and JBP region overrides are based on the
program name. Message driven BMP regions may also have overrides specified by
transaction name.
If more than one override is appropriate for a transaction, the override value is chosen based
on which table entry matched the most filters. Therefore, if only a TRAN is specified on one
entry (and it matches), and on another entry the LTERM and PGM are specified and match,
the options in the second entry will be returned because it specifies more filters. In the case of
a tie, the first entry to appear in the table is used. No filter type takes precedence over
another. Therefore if two entries match, one specifying just a TRAN and the other specifying
just a PGM, the entry that gets used is the one that appears first in the table.
The DFS1003I message indicates the LERUNOPTS have been initialized. When the phrase
FROM imsid is in the message it indicates that the run time options have been initialized
from another IMS, the imsid indicates from which IMS the information was received.
The DFS1004I message indicates a change in LE parameter override processing for the
system. The 'state' indicator in the message can either be ENABLED indicating overrides are
allowed or DISABLED indicating overrides are not allowed. When overrides are enabled, the
DL/I INQY LERUNOPT call returns an applicable LE parameter override string to the caller.
This message is issued during IMS restart when IMS is running with a Common Service
Layer. The message is also issued as a result of the UPD LE SET(LEOPT()) command. The
message is sent to the system console and to OM as an unsolicited output message.
285
Two new ABEND subcodes are also issued. They are as follows:
U0071 subcode 5
A new abend subcode is added for the failure to create an IMS ITASK.
DFSXSL10, the IMS Input Exit Server module, issues a U0071-5
abend for this error.
U0718 subcode 3
286
Option
Default
Recommended
ABPERC
None
None
ABTERMENC
ABEND
ABEND
AIXBLD
NOAIXBLD
NOAIXBLD
ALL31
ON
ON
ANYHEAP
16K,8K,ANY,FREE
ARGPARSE
ARGPARSE
ARGPARSE
AUTOTASK
NOAUTOTASK
NOAUTOTASK
BELOWHEAP
8K,4K,FREE
8K,4K,FREE
CBLOPTS
ON
ON
CBLPSHPOP
ON
N/A
CBLQDA
OFF
OFF
CHECK
ON
ON
COUNTRY
US
User defined
DEBUG
DEBUG(OFF)
DEBUG(OFF)
DEPTHCONDLMT
10
ENV
No default
User defined
Option
Default
Recommended
ENVAR
No default
User defined
ERRCOUNT
ERRUNIT
EXECOPS
EXECOPS
EXECOPS
FILEHIST
FILEHIST
FILEHIST
FILETAG
NOAUTOCVT,NOAUTOTAG
NOAUTOCVT,NOAUTOTAG
FLOW
NOFLOW
NOFLOW
HEAP
HEAPCHK
OFF, 1, 0, 0
OFF, 1, 0, 0
HEAPPOOLS
User defined
INFOMSGFILTER
OFF
OFF
INQPCOPN
INQPCOPN
INQPCOPN
INTERRUPT
OFF
OFF
LIBRARY
SYSCEE
SYSCEE
LIBSTACK
4K,4K,FREE
4K,4K,FREE
MSGFILE
DD name
MSGQ
15
15
NATLANG
ENU
ENU
NONIPTSTACK
Replaced by THREADSTACK
OCSTATUS
OCSTATUS
OCSTATUS
PC
NOPC
NOPC
PLIST
HOST
HOST
PLISTASKCOUNT
20
20
POSIX
OFF
OFF
PROFILE
OFF,
OFF,
PRTUNIT
PUNUNIT
RDRUNIT
RECPAD
RECPAD(OFF)
RECPAD(OFF)
REDIR
REDIR
REDIR
RPTOPTS
OFF
OFF
287
288
Option
Default
Recommended
RPTSTG
OFF
OFF
RTEREUS
RTEREUS(OFF)
RTEREUS(OFF)
RTLS
OFF
OFF
SIMVRD
SIMVRD(OFF)
SIMVRD(OFF)
STACK
STORAGE
NONE,NONE,NONE,0K
NONE,NONE,NONE,0K
TERMTHDACT
TRACE, , 96
TEST
THREADHEAP
TRACE
TRAP
ON,SPIE
ON,SPIE
UPSI
00000000
00000000
USRHDLR
NOUSRHDLR
NOUSRHDLR
VCTRSAVE
OFF
OFF
VERSION
XPLINK
OFF
OFF
XUFLOW
AUTO
AUTO
20
Chapter 20.
289
Operations Manager
Structured Call
Interface
Resource Manager
PGM=BPEINI00
PGM=BPEINI00
PGM=BPEINI00
BPECFG=BPExxxxx
BPEINIT=CSLOINI0
OMINIT=xxx
BPECFG=BPExxxxx
BPEINIT=CSLSINI0
SCIINIT=xxx
BPECFG=BPExxxxx
BPEINIT=CSLRINI0
RMINIT=xxx
PROCLIB contains
initialization and
execution parameters
for CSL environment
IMS
PROCLIB
Common
Queue Server
IMS
Control Region
PGM=DFSRRC00
CSLG=xxx
PGM=BPEINI00
CFRM
CDS
BPECFG=BPExxxxx
BPEINIT=CQSINI00
CQSINIT=xxx
290
/* IMS */
BPE configuration
Each BPE-based CSL component may specify a BPE configuration PROCLIB member which
identifies such things as trace levels and user exits. All of the parameters specified in this
member have defaults, and it is not even necessary to define one. However, if you want to
change the trace levels for various components, or define user exits (such as the OM
command security exit), then a BPE Configuration (BPECFG=) member must be defined and
a BPE User Exit List (EXITMBR=) member must be defined as shown in Example 20-2.
Example 20-2 Sample BPE configuration proclib members
LANG=ENU
STATINV=600
TRCLEV=(*,LOW,BPE)
TRCLEV=(*,LOW,CQS)
TRCLEV=(*,LOW,RM)
TRCLEV=(*,LOW,OM)
TRCLEV=(*,LOW,SCI)
EXITMBR=(SHREXIT0,BPE)
EXITMBR=(SHREXIT0,CQS)
EXITMBR=(SHREXIT0,RM)
EXITMBR=(SHREXIT0,OM)
EXITMBR=(SHREXIT0,SCI)
Example 20-3 shows a sample user exit list member shared by all components. The new
COMP= parameter allows the user to define all exits in one member and then specify for
which components the exits should be called.
291
Example 20-3 Sample BPE user exit list proclib member (SHREXIT0)
EXITDEF=(TYPE=INITTERM,EXITS=(RMITEXIT),COMP=RM)
EXITDEF=(TYPE=STATS,EXITS=(BPESTATX),COMP=BPE)
EXITDEF=(TYPE=SECURITY,EXITS=(OMSECYX),COMP=OM)
Each component will also define, in its JCL, the name of an initialization module specific to
that component type.
You should also review the definitions of the Automatic Restart Manager (ARM) and System
Failure Management (SFM) policies to be sure they accurately describe your requirements.
CFRM CDS
If you are intending to use either system managed rebuild or structure duplexing, the CFRM
CDS must be reformatted. This can be done using the couple data set format utility. The
following statements should be included:
ITEM NAME(SMREBLD) NUMBER(1)
ITEM NAME(SMDUPLEX) NUMBER(1)
You should reference the appropriate sysplex documentation for the exact requirements for
this step, including any hardware and software prerequisites.
Resource structure
The resource structure is not a requirement for running IMS in a CSL environment. It is only
required if sysplex terminal management is to be enabled. Automatic RECON loss
notification, global online change, and the SPOC do not require a resource structure.
Example 20-4 shows how the resource structure might be defined in the CFRM policy. The
meanings of the new CF management parameters are discussed in Sysplex terminal
management on page 177. A methodology for sizing the resource structure an be found in
Appendix B, Resource structure sizing on page 315. Dont forget to activate the new policy.
Example 20-4 Sample resource structure definition in CFRM policy
STRUCTURE NAME(IMS0_RSRC_STR)
SIZE(8192)
INITSIZE(4096)
MINSIZE(2048)
ALLOWAUTOALT(YES)
FULLTHRESHOLD(60)
DUPLEX(ENABLED)
REBUILDPERCENT(10)
PREFLIST(CF01 CF02 CF03)
292
SETXCF START,POLICY,POLNAME=IMS0_RSRC_STR
*/
*/
*/
293
Note: The user IDs of the IMS address spaces and the user IDs of the TSO users issuing
commands using the SPOC must be given update access to the RACF FACILITY class
named CSL.CSLimsplexname. In this name, the string imsplexname is the value of
IMSPLEX parameter in the CSLSIxxx PROCLIB member.
294
Command security
When CMDSEC=R in the OM initialization member, RACF will be called to authorize a SPOC
user to enter the command. Security for these commands is defined in the OPERCMDS class
in RACF. Example 20-10 is an example of RACF command security for a few of the
OM-entered commands. Note that the IMSplex name is part of the definitions, and that
generic substitution is allowed.
Example 20-10 RACF security statements
RDEFINE
RDEFINE
RDEFINE
PERMIT
PERMIT
PERMIT
CQSIPxxx
Add IMSPLEX(NAME=PLEX1)
CQSSGxxx
CQSSLxxx
295
296
DFSPBxxx
One new parameter in DFSPBxxx activates CSL by identifying the suffix of a new PROCLIB
member DFSCGxxx:
CSLG=001
DFSCGxxx
Example 20-14 shows an example of the DFSCGxxx proclib member, which specifies the
name of the IMSplex that this IMS belongs to, and whether or not global online change is
active for this IMS.
Example 20-14 IMS Proclib member DFSCGxxx
CMDSEC=N
IMSPLEX=PLEX1
OLC=LOCAL
*OLC=GLOBAL
*OLCSTAT=
*NORSCCC=
/*
/*
/*
/*
/*
/*
Note: Make sure all IMS systems in the IMSplex are using the same OLCSTAT data set
and ideally the same DFSCGxxx member. Also make sure you take a backup of your
OLCSTAT data set following every successful on-line change (just as you would for existing
MODSTAT data sets).
DFSDCxxx
This member, while not new, does have some new parameters to define the SRM and
RCVYxxxx system defaults when sysplex terminal management is enabled. If not specified in
this member, defaults are determined by whether or not this IMS is running in a CSL with
shared queues, an RM, and a resource structure. If so, then the SRM default is GLOBAL,
otherwise it is LOCAL. RCVYxxxx always defaults to YES unless SRMDEF is set to NONE.
Example 20-16 DFSDCxxx member showing SRM and RCVYxxxx parameters
SRMDEF=GLOBAL | LOCAL |NONE
RCVYCONV=YES | NO
RCVYSTSN=YES | NO
RCVYFP=YES | NO
297
DFSVSMxx
This member merely allows the user to specify whether or not tracing of IMSplex command
activity and CSL activity is turned on, and at what level. The options are the same as for other
traces.
OPTIONS,OCMD=(option),CSLT=(option)
DFSSPOC
Select OPTIONS on top line & set default preferences (for example)
e.g. PLEX1
IM1A
2:45
1
1
1
1
298
the next few topics. The sequence in which components in a CSL are started is significant.
Some of them are required to be started in the proper sequence, for others it is just
recommended they be started in the proper sequence to avoid warning messages.
Note that the CSL ready message identifies the component name (SCI1) and the
component type (SC). This will be true of all CSL messages.
CQS will register with SCI. If SCI is not available when CQS tries to register, a warning
message is issued but CQS continues initialization. CQS does not require SCI to be
available to complete initialization, and will not abend as RM and OM do if SCI is not
available.
CQS0001E CQS INITIALIZATION ERROR IN ... CSLSCREG ...
Operations Manager
Operations Manager only needs SCI to complete initialization. IMS and RM both register
with OM.
S OM1
CSL0020I OM READY OM1OM
OM will retry every six seconds and, if SCI is still not available after 10 tries, OM will abend
with a U0010.
CSL0002E IMSPLEX INITIALIZATION ERROR IN ...
Resource Manager
Resource Manager registers with SCI, OM, and with CQS. IMS registers with RM.
299
S RM1
CSL0020I RM READY RM1RM
If SCI is not available when RM tries to register, a warning message will be issued. RM will
retry six times, 10 seconds apart. If SCI still is not available, RM will abend with a U0010.
CSL0003A RM IS WAITING FOR SCI RM1RM
If any of these address spaces is not available when IMS completes initialization, IMS will
issue a WTOR message indicating which one is not available and then wait.
DFS3309A CONTROL REGION WAITING FOR csltype REPLY RETRY OR CANCEL
After IMS is down, the other address spaces can be stopped. They can be stopped
individually or as a group. When shutting them down individually, SCI should be shut down
last.
P OM1 (repeat for other address spaces)
F SCI1,SHUTDOWN CSLLCL (shuts down all CSL address spaces on the local LPAR)
F SCI1,SHUTDOWN CSLPLEX (shuts down all CSL address spaces in the IMSplex)
The F SCI command does not shut down any of the CQS address spaces.
300
INITIATE
TERMINATE
DELETE
UPDATE
QUERY
IMSPLEX
MEMBER
LE
TRAN
STRUCTURE
OLC
For a complete description of the format and use of these commands, refer to IMS Version 8:
Command Reference, SC27-1291. All of these commands have global scope. That is, they
apply to all IMSs in the IMSplex. For example, if the UPDATE TRAN command is entered to
change the MSGCLASS of a transaction, it will be changed on all the IMSs in the IMSplex.
Command entry
Most IMS classic commands can be entered through the SPOC or the MTO. However, not all
classic commands can be entered through the SPOC. Generally speaking these are the
commands that affect the terminal from which they are entered. Since there is no IMS
Chapter 20. Common Service Layer configuration and operation
301
terminal associated with the SPOC, these commands would not make sense. Examples of
these commands are:
/EXC
/SIGN ON | OFF
/HOLD
/REL CONVERSATION
/SET
/FORMAT
/RCLDST
Command scope
When an IMS is running as part of an IMSplex with sysplex terminal management enabled,
the effect of an IMS command can have both local and global impact. For example, a /STOP
NODE command will change the command significant status of a NODE and cause a
resource entry for the NODE to be created or updated with the STOPPED flag on. Other
commands only have local impact. For example, a /STOP TRAN command would stop a
transaction only on the IMS where the command was executed. Generally speaking,
commands which affect terminal resources whose status is maintained on a resource
structure have global scope. These are commands which change the command or end-user
significant status of a NODE, USER, or LTERM. All others have local scope.
Command master
When an IMS classic command is entered through the SPOC to one or more IMSs, OM will
select one of those IMSs as the command master. If it is submitted to only one IMS, that IMS
is the master. If the command is submitted through the MTO, that IMS is the master.
Some classic commands can only be executed by the command master. Others can only be
executed by the resource owner. Still others will be executed by every IMS which receives the
command. There are a few basic rules for which IMS will execute the command.
Only that IMS will process the command. Other IMSs, including the master, will reject the
command. For example, if NODEA is owned by IMS1, a /STOP NODE NODEA will only be
executed by IMS1. It will stop the NODE locally and update the status globally to
STOPPED. The NODE would then not be allowed to log on to any IMS in the IMSplex.
If the resource is not owned
Only the master will process the command. Others will reject it. For example, if a NODE
does not exist in RM, then it is not owned. A /STOP NODE command will be executed by
the master which will create a NODE entry and set the STOPPED flag.
Only the owning IMS will display the global status. Other IMSs will display any local status.
For example, if NODEB is owned by IMS2, then IMS2 would display its global and local
status.
If the resource is not owned
The master will display global status and local status. Others will display local status only.
In the example above where a NODE has been stopped globally, but is not owned, if a
302
/DIS NODE NODEA command is sent to all IMSs, only the master would display the
STOPPED status (this is a global status maintained only in the resource structure). All
IMSs, including the master, would reply with their local status, which for a NODE is usually
just IDLE.
Other commands
The following describes some of the unique considerations when entering classic IMS
commands in an STM environment.
SRM
GLOBAL
CONV
Y
STSN
Y
FP
Y
Assigning LTERMs
There are some rules when assigning LTERMs
/ASSIGN LTERM is permitted between BTAM and VTAM, but BTAM status is not
maintained
/ASSIGN command is not allowed if source and destination are owned by two different
IMS systems
/ASSIGN command without the SAVE keyword is not allowed if destination does not exist
in the RM
The document does not describe all of the differences that command processing has when
running IMS in a CSL environment with STM enabled. It would be well worth the effort to read
the IMS Version 8: Command Reference, SC27-1291 very carefully, and then to test all of the
commands under a variety of conditions.
303
304
Part 5
Part
Appendixes
In this part of the book we provide the following appendixes:
Appendix A, Hardware and software requirements on page 307
Appendix B, Resource structure sizing on page 315
Appendix C, Additional material on page 321
305
306
Appendix A.
307
A.1.1 Processors
IMS Version 8 executes on all IBM processors that are capable of running OS/390 Version 2
Release 10, or later.
308
SLU 1
For example, 3230, 3232, 3262, 3287, 3767, 3268, 3770, 3770P,
3790, (type 2 batch and bulk print), 4700, 5280, 5550, S/32, S/34,
S/38, 8100
SLU 2
For example, 3179, 3180, 3267, 3278, 3279, 3290, 3790 (3270 DSC
feature), 3600, Admin PP, 4700, 5280, 5520, 5550, 8100, 8775, S/34,
Display writer
LU 6 (ISC)
LU 6.2
NTO
For example, 33.35, TTY, 2740, 2741, 3101, 3232, 3767, S/23
The following is a list of terminals supported by IMS Version 8, but withdrawn from marketing.
2740-1, 2740-2, 2741, 2780, 3270, Finance (3600), System/3, System/7
Coordinated disaster recovery support for IMS and DB2 requires that the DB2 logs reside on
devices supporting eXtended Remote Copy (XRC).
309
Note: * - These items are OS/390 Version 2 Release 10 base elements that cannot be
ordered separately.
IBM High-Level Assembler Toolkit (5696-234), a separately orderable feature of OS/390
Version 2 Release 10
Note: IMS Version 8 does not support Assembler H. IMS Version 5 was the last version
to do so.
IRLM 2.1 (5655-DB2),if data sharing
Coupling Facility if multi-mode persistent session rapid network reconnect or MADS I/O
timing
If you are going to run IMS Version 8 on z/OS Version 1 Release 1 or higher, you need to
apply APAR OW51598 to the operating system.
To take full advantage of Coordinated Disaster Recovery support for IMS and DB2, sysplex
terminal management, the Operations Manager, and the Resource Manager, IMS Version 8
should be on all sysplex systems involved.
Coordinated Disaster Recovery support for IMS and DB2 requires the IMS Version 8 Remote
Site Recovery (RSR) Record Level Tracking (RLT) feature.
310
A.2.2 DBRC
IMS Version 8 DBRC requires that the migration and coexistence small programming
enlacement (SPE) be applied to the DBRC on the pre-IMS Version 8 DBRC.
The APAR/PTFs enabling IMS Version 8 DBRC migration and coexistence are:
6.1 - PQ54584/UQ99326
7.1 - PQ54585/UQ99327
USS
USS
Java for OS/390 and z/OS SDK 1.3.1 Service Refresh (SR14):
PQ62112/UQ68572
The APAR/PTFs enabling IMS Version 8 DBRC migration and coexistence are:
6.1 - PQ54584/UQ67709 and UQ99326
7.1 - PQ54585 and PQ63108/UQ99327
311
The shared queues OTMA and APPC migration and coexistence SPE is needed on IMS
Version 6 only.
6.1 - PQ29879/UQ36785
312
5655-A14
5655-E02
5655-E03
5655-E04
5655-E05
5655-E06
5655-E07
5655-E09
5655-E10
5655-E11
5655-E12
5655-E14
5655-E15
5655-E24
5655-E24
5655-E30
5655-E41
5655-E50
5655-E51
5655-E51
5655-E52
5655-F40
5655-F43
5655-F45
5655-F59
5655-F74
5655-F76
5655-F78
5655-I01
5655-I15
5697-E99
5697-E99
5697-H75
5655-J57
5697-H77
5655-F76
5655-E32
5655-J56
5655-E24
5655-E15
5697-B87
313
314
Appendix B.
315
Resource types
The following are the types of resources on the Resource Structure, including when they are
created and deleted, and whether or not they have data elements associated with them. Use
these descriptions along with the Resource Table shown later in this document when
providing input to the CFSIZER tool.
IMSplex global resources contain information about the IMSplex itself or its individual
members and are created as the IMSplex is initialized, as members join the IMSplex, or as
global processes are initiated. Once these resource list entries are created, they are not
deleted. CFSIZER factors IMSplex global resources into its calculations.
Static transaction and MSNAME resources are created during IMS initialization or when
added by online change. They are never deleted and remain on the Resource Structure as
long as the structure exists. Transaction and MSNAME resources are easy to count - just
count the number of unique TRANSACT and MSNAME statements in the IMS system
definition STAGE1 input. These resource list entries never have data elements.
CPI-C transaction resources are created when the CPI-C transaction is first entered and
are deleted when all IMSs defining that transaction have terminated. CPI-C transaction
resources can be counted by counting the number of unique TRANCODEs in the
TP_PROFILE data sets. These resource list entries only have data elements when the
number of IMSs defining them is greater than two.
316
APPC descriptor resources are created during IMS initialization and are deleted when all
IMSs defining that resource terminate. APPC descriptors can be counted by counting the
number of unique APPC descriptors in DFS62DTx. These resource list entries only have
data elements when the number of IMSs defining them is greater than two.
Sysplex terminal resources such as NODEs, LTERMs, USERs, and USERIDs are created
when the resource first becomes active (e.g., terminal logon or user signon). They are
deleted from the Resource Structure when the resource becomes inactive (for example,
terminal logoff or user signoff) and the resource has no recoverable significant status.
Note that USERIDs are always deleted when the user becomes inactive. These resource
list entries are the most variable in number and size since they exist only when a resource
is active, or when inactive but with significant status in the resource entry. The number and
size of sysplex terminal resources depends on a number of factors:
Resource number
The Resource Number is the total number of resources expected to be in the Resource
Structure at one time. One resource is stored on the Resource Structure as one list entry,
which may contain zero, one, or more data elements, depending upon the amount of
resource data. One of the following methods can be used to calculate the value to use:
Define a Resource Number of 1, if your installation is DBCTL-only and you only plan to
use the Resource Structure for Global Online Change
Calculate an initial Resource Number by using the Resource Table below and summing all
of the numbers in the Resource Number column.
Tune (adjust) the Resource Number by running workloads with the Resource Structure
enabled and querying CQS statistics periodically to extract the list entry high water mark.
You may want to size your structure large enough to accommodate the list entry high
water mark, or some amount larger than the high water mark. The list entry high water
mark field is SS3ENTHI in mapping macro CQSSSTT3. Structure statistics may be
gathered through the CQS statistics user exit or the CSLZQRY macro interface. This
requires a user-written program to issue the CQS macro and to return the results.
Appendix B. Resource structure sizing
317
The QUERY STRUCTURE command also displays the list entries allocated, the list entries in
use, the data elements allocated, and the data elements in use. You can issue the QUERY
STRUCTURE command periodically to get an idea of the maximum list entries that have been
in use over a period of time. QUERY STRUCTURE output may also be used to determine
how many more resources the Resource Structure can accommodate.
The QUERY STRUCTURE command can be used periodically to get an idea of the maximum
data elements that have been in use over a period of time. QUERY STRUCTURE output may
also be used to determine how many more resource data elements the Resource Structure
can accommodate.
Resource table
Use the following Table 20-1 to calculate the Resource Number and the Data Element
Number needed to define an initial Resource Structure. The number of entries and data
elements used for IMSplex resources is estimated by the tool and not a required input.
Table 20-1 Resource table
318
Resource Type
Resource Number
APPC descriptor
0 (if #IMSs<3)
-or- if #IMSs > 2
#APPC descriptors *
#IMSs-2)/32 rounded up)
LTERM
MSNAME
Resource Type
Resource Number
NODE
Transaction (static)
Transaction (CPI-C)
USERID
USER
#USERs * 1
#staticUSERs * 1
The size can be adjusted downward in the same way, but the alter command can also be
used to make the structure smaller. This might be done following an unusual period where the
structure was autoaltered upward due to a high number of concurrent logons which are not
expected to continue. Use the command:
SETXCF START,ALTER,STRNM=structure-name,SIZE=size
319
320
Appendix C.
Additional material
This redbook refers to additional material that can be downloaded from the Internet as
described below.
Select the Additional materials and open the directory that corresponds with the redbook
form number, SG246594.
File name
SG246594.zip
Description
IMS Version 8 Highlights Workshop (Lotus Freelance Graphics 9
presentation)
321
322
ESCON
AGN
ESO
AOI
ETO
APAR
EX
execution (IVP)
APF
FDBR
APPC
FICON
Fiber Connection
FMID
ARLN
FT
ARM
FTP
AWE
GSAM
BMP
BPE
HALDB
BSDS
HFS
CBPDO
HLQ
high-level qualifier
HTML
CI
control interval
HTTP
CICS
IBM
CQS
IFP
CSA
ILS
CSI
IMS
CSL
IPCS
CST
IPL
CTC
channel-to-channel
IRLM
DASD
ISC
intersystem communication
DB/DC
database/data communications
ISD
DB2
DATABASE 2
ISPF
DBA
database administrator
DBCTL
database control
ITSO
DBD
database description
DBDS
IVP
DBRC
J2C
DEDB
J2EE
DL/I
Data Language/I
JBP
DLI/SAS
JCL
DLT
JDBC
DRA
JDK
ECSA
JES
EMCS
EMEA
JMP
ESAF
JVM
323
KSDS
RMF
LE
Language Environment
RNR
LMOD
load module
RRS
LPA
RSR
LPAR
logical partition
RSU
LTERM
logical terminal
SAF
LU
logical unit
SCI
LU2
Logical Unit 2
SDM
MCS
SDSF
MFS
SLDS
MLPA
SMP/E
MNPS
System Modification
Program/Extended
MOD
SMQ
MOD
module (SMP/E)
SMU
MPP
SPOC
MPR
SRDS
MSC
SSA
sub-system alias
MSDB
SVC
supervisor call
MVS
SVL
ODBA
TCB
OLDS
TCO
OM
Operations Manager
TCP/IP
ORS
Transmission Control
Protocol/Internet Protocol
OSAM
TMS
OTMA
TPNS
OTMA C/I
TSO
PCB
USS
PDS
USS
PDSE
VG
PIA
VOLSER
PIC
VSAM
PMR
VSCR
PPT
VSO
PSB
VTAM
PSP
PST
WADS
PTF
WAS
QPP
WWW
RACF
XML
RDS
XRC
RIM
XRF
RLDS
RLT
RM
Resource Manager
324
Related publications
The publications listed in this section are considered particularly suitable for a more detailed
discussion of the topics covered in this redbook.
IBM Redbooks
For information on ordering these publications, see How to get IBM Redbooks on page 327.
Implementing ESS Copy Services on S/390, SG24-5680
IMS/ESA Shared Queues: A Planning Guide, SG24-5257
IMS Primer, SG24-5352
IMS/ESA V6 Parallel Sysplex Migration Planning Guide for IMS TM and DBCTL,
SG24-5461
IMS Version 7 High Availability Large Database Guide, SG24-5751
A DBAs View of IMS Online Recovery Service, SG24-6112
Using XML on z/OS and OS/390 for Application Integration, SG24-6285
IMS Version 7 Performance Monitoring and Tuning Update, SG24-6404
IMS e-business Connectors: A Guide to IMS Connectivity, SG24-6514
Ensuring IMS Data Integrity Using IMS Tools, SG24-6533
IMS Version 7 Java Update, SG24-6536
IMS Installation and Maintenance Processes, SG24-6574
Other resources
These publications are also relevant as further information sources:
IMS Version 8: Administration Guide: Database Manager, SG27-1283
IMS Version 8: Application Programming: EXEC CICS DLI Commands for CICS and IMS,
SC27-1288
IMS Version 8: Application Programming: Database Manager, SC27-1286
IMS Version 8: Application Programming: Design Guide, SC27-1287
IMS Version 8: Application Programming: Transaction Manager, SC27-1289
IMS Version 8: Administration Guide: System, SC27-1284
IMS Version 8: Administration Guide: Transaction Manager, SC27-1285
IMS Version 8: Base Primitive Environment Guide and Reference, SC27-1290
IMS Version 8: Customization Guide, SC27-1294
IMS Version 8: Common Queue Server Guide and Reference, SC27-1292
IMS Version 8: Command Reference, SC27-1291
IMS Version 8:Common Service Layer Guide and Reference, SC27-1293
IMS Version 8: DBRC Guide and Reference, SC27-1295
IMS Version 8: Diagnosis Guide and Reference, LY37-3742
Copyright IBM Corp. 2002. All rights reserved.
325
IMS Version 8: Failure Analysis Structure Tables (FAST) for Dump Analysis, LY37-3743
IMS Version 8: Installation Volume 1: Installation Verification, GC27-1297
IMS Version 8: Java Users Guide, SC27-1296
IMS Version 8: Installation Volume 2: System Definition and Tailoring, GC27-1298
IMS Version 8: Licensed Program Specifications, GC27-1299
IMS Version 8: Messages and Codes, Volume 1, GC27-1301
IMS Version 8: Messages and Codes, Volume 2, GC27-1302
IMS Version 8: Master Index and Glossary, SC27-1300
IMS Version 8: Operations Guide, SC27-1304
IMS Version 8: Open Transaction Manager Access Guide, SC27-1303
IMS Version 8: Release Planning Guide, GC27-1305
IMS Version 8: Summary of Commands, SC27-1307
IMS Version 8: Utilities Reference: Database and Transaction Manager, SC27-1308
IMS Version 8: Utilities Reference: System, SC27-1309
IMS Version 7 Common Queue Server Guide and Reference, SC26-9426
z/OS V1R2.0 MVS Setting Up a Sysplex, SA22-7625
WebSphere Application Server V4.0.1 for z/OS and OS/390: Installation and
Customization, GA22-7834
WebSphere Application Server V4.0.1 for z/OS and OS/390: Assembling J2EE
Applications, SA22-7836
WebSphere Application Server V4.0.1 for z/OS and OS/390: Messages and Diagnosis,
GA22-7837
WebSphere Application Server V4.0.1 for z/OS and OS/390: System Management User
Interface, SA22-7838
New IBM Technology featuring Persistent Reusable Java Virtual Machines, SC34-6034
DB2 UDB for OS/390 and z/OS V7 Utility Guide and Reference, SC26-9945
326
You can also download additional materials (code samples or diskette/CD-ROM images) from
that site.
Related publications
327
328
Index
Symbols
/ASSIGN LTERM 188
/CHANGE DESCRIPTOR 90
/CHANGE USER 188
/CHE FREEZE LEAVEPLEX 198, 231
/DISPLAY ACTIVE REGION 103
/DISPLAY MODIFY 216218, 229
/DISPLAY PROGRAM 104
/DISPLAY TRACKING STATUS 66
/DISPLAY TRAN 103
/EXCLUSIVE NODE 188
/MODIFY ABORT 216, 221
/MODIFY COMMIT 216218, 221
/MODIFY PREPARE 216218, 220
/NRE CHECKPOINT 0 232
/STA DATABASE 51
/START DB 10
/START DC 213
/START SLDSREAD 9
/START XRCTRACK 66
/STOP NODE 188
/STOP SLDSREAD 9
/STOP XRCTRACK 65
/TEST MFS 188
/TRACE SET ON NODE 188
Numerics
2-phase commit 7
A
ACCEPT 24
ACCJCLIN 22
ADFSBASE 2223
ADFSDATA 23
ADFSJCIC 23
ADFSJDC8 23
ADFSJDOC 23
ADFSJHF8 23
ADFSJHFS 23
ADFSJIVP 24
ADFSJTOL 23
ADFSSMPL 2324, 76, 269
ADFSSRC 24
aggregate functions 16
ALLOC record 5, 55, 79
ALLOWAUTOALT 139, 209
ALOT 35
APPC 62, 89, 147148, 151152, 159
APPC CPI-C driven transactions 182
APPC descriptor name 201
APPC output descriptors 182
APPC/IMS 93
APPC/MVS 93
APPCPMxx 93
APPLCTN 216
APPLY 24
ARLN 80
Asynchronous Work Element (AWE) 11
Authorized Program Facility (APF) 269
autoalter 7, 60, 137
Automatic RECON loss notification (ARLN) 46, 14, 69,
80, 163, 265267, 269, 292
Automatic Restart Manager (ARM) 158, 211, 292
B
BACKUP.RECON 79
Base Primitive Environment (BPE) 13, 144, 162, 172
batch backout 9
BLDSNDX 6
block level data sharing 156
BPE 290
BPE configuration parameters member 145
BPE user exit list member 145
BPE user exit parameter list 145
BPECFG 145, 291
BPEINI00 25, 144, 291, 295
C
cache structures 157
CEEBXITA 281, 284
CEEDOPT 15, 281
CEEROPT 15, 281
CEEUOPT 15, 281
CF link 211
CFRM 138, 292
CFRM policy 174, 195, 202, 299
change accumulation (CA) 5, 8
CHANGE.DB NONRECOV 57
CHANGE.DBDS 70
CHANGE.RECON CMDAUTH 74
CHANGE.RECON IMSPLEX 274
CHANGE.RECON MINVERS 80
CHANGE.RECON REPLACE 272
channel-to-channel (CTC) 11
CHKP call 62
CHTS 27, 40
CICS Transaction Server/390 16, 107
classic commands 169, 244, 247248, 301
CLASSIFY command 83
CLASSPATH 120
CMDAUTH 75, 77
COBOL 103, 108, 280
Command entry routing 167
command recognition character (CRC) 161, 164
Command security 167
command significant status 160, 188
Common Queue Server (CQS) 13, 144, 155, 158, 164,
329
D
DATABASE 216
database level tracking (DLT) 62
Database Recovery Control (DBRC) 4, 6970
database resource adapter (DRA) 96, 114
DataSource 111
DB/DC initialization parameters 30
DB2 for OS/390 16
DB2 stored procedures 96, 109
DBCTL initialization parameters 30
DBRC 46, 8, 10, 13, 22, 48, 51, 55, 5760, 6970,
7377, 7981, 155156, 163164, 266, 269, 272274,
276277
DBRC batch commands for HALDB 5
DBRC command authorization 45, 69, 73, 76
330
E
ECSA 11
EJB 108, 110, 124
F
Fast Database Recovery (FDBR) 11
Fast Path 10, 24, 56, 152, 211
Fast Path input message in progress (FP-IP) flag 208
Fast Path response mode 160, 188, 208
FDBR 11
Fiber Connection (FICON) 11
FINDDEST 178, 183, 212
FMID 22, 24
FRCABND 232
FRCNRML 232
FRM policy 209
FULLTHRESHOLD 209
Function Modification Identifier (FMID) 22
G
garbage collection 97
GENERATE 24, 26
global callable services 178, 212, 214
global online change 15, 174, 215, 218219, 223
global online change utility (DFSUOLC0) 221
GRAFFIN 160, 193
group name support 48
H
HALDB 49
HALDB partition definition utility 76
heap
application class system heap 97
middleware heap 97
system heap 97
transient heap 97
Hierarchical File System (HFS) 118
High Available Large Database (HALDB) 6
High Performance Java (HPJ) compiler
migration considerations 96
HIKEY value 5
I
IBM Developer Kit for OS/390, Java 2 Technology Edition
97
IBM IMS Image Copy Extensions 8
IBM IMS Online Recovery Service (ORS) 3
IEALIMIT exit routine 99
IEFUSI exit routine 99
Image Copy 2 6, 8, 48, 51, 308
IMS Connector for Java 109
IMS DataPropagator 61
J
J2EE Connector Architecture (JCA) 109110, 118
J2EE Resource Adapter 125
J2EE server 124
J2EE server instance 115
J2EE server region 115
Java 16, 95
Java Application Support 23
Java Batch Processing (JBP) 9596
Java Database Connectivity (JDBC) 110
Java dependent region 16, 96, 109, 286
DFSJMP procedure 98
DFSJVMAP 101
DFSJVMEV member 102
Index
331
K
KSDS 50
L
LANG=JAVA 103
Language Environment (LE) 15
LE dynamic run time options 279
LERUNOPT 282
libatoe.so 102
libJavTDLI.so 102
libjvm.so 102
LIBPATH 120
List Entry (LE) 195
List Entry Controls (LEC) 196
List Entry ID (LEID) 196
List Headers (LH) 195
list structure 7, 174
LIST.RECON 79
LMOD 24
local online change 216, 219
lock structures 157
LOGALERT 71
logical copy completion 48
loss of connectivity 211
LTERM entry 200
LU 6.2 descriptors 8
M
master JVM 99
Message Control/Error Exit Routine (DFSCMUX0) 151
MINVERS 80, 148
MOD 24
MODSTAT 222
332
N
NODE entry 199
nonrecoverable DEDB 5657
non-recoverable status 187
NONSPANNED 70, 81
NORSCCC 219, 232
O
OBJAVGSZ 139
ODBA 96, 103, 110, 112, 114
OLCSTAT data set 219, 221, 229, 297
OM 162163, 165, 168, 172, 202, 224, 237, 256, 290,
299, 301
OM API 167, 236, 244
OM clients 168
OM infrastructure 165
ONEJOB 52
online change copy utility (DFSUOCU0) 220, 222
online change status (OLCSTAT) data set 219
online change utility (DFSUOCU0) 222
online log data set (OLDS) 9
open database access (ODBA) 96, 110
Operations 282
Operations management 161
Operations Manager (OM) 1314, 23, 76, 144, 155,
161162, 176, 218, 234, 236, 238, 244, 255256,
281282, 285286, 294295, 299, 310
Operations manager (OM) 164
OPTIMIZE (DFSMSdss) 6, 48
OPTION(FRCABND) 232
OPTION(FRCNRML) 232
OS/390 XML parser 108
OSAM caching 158
OTMA 147148, 151152, 159, 180
OTMAASY 27, 42
OUTBND 8, 93
P
parallel database processing 54
Parallel session ISC resources 181
Parallel Sysplex 137, 160, 216
PCB 97
Persistent Reusable Java Virtual Machine 16, 96
Persistent Reusable JVM 97
PL/I 108, 280
POSIX 97
PREFLIST 138, 209
PRILOG 4, 7072, 74
PROCLIB 26
PROCLIM parameter 92
Program Properties Table (PPT) 144, 291
Program Specification Table (PST) 11
Q
QRY IMSPLEX 169
QRY IMSPLEX SHOW(ALL) 244
QRY LE 169
QRY MEMBER 169
QRY OLC 169
QRY STRUCTURE 169
QRY TRAN 169
QRY TRAN SHOW(ALL) 249
QUERY LE 285
QUERY MEMBER TYPE(IMS) 229
QUERY OLC LIBRARY(OLCSTAT) 229
QUERY STRUCTURE 176
R
RACF 5, 64, 7477, 79, 93, 164, 167, 171, 256, 285, 294
Rapid Network Reconnect (RNR) 213
RCVYCONV 190191
RCVYFP 190191
RCVYSTSN 190191
RCVYxxxx 190, 212, 297
RDEFINE FACILITY 74
REBUILDPERCENT 209
RECEIVE 24
RECON 45, 14, 25, 5152, 55, 62, 67, 7072, 7475,
77, 7981, 148, 163, 265269, 271, 274
RECON upgrade 80
Record Level Tracking (RLT) 67
recoverable status 187
Redbooks Web site 327
Contact us xv
Remote Site Recovery (RSR) 4, 7, 22, 62, 309310
Resource 179
Resource management 161
Resource Manager (RM) 7, 1314, 144, 155, 161162,
164, 171, 179, 192, 210, 218, 234, 238, 282, 296, 299,
310
resource name uniqueness 160, 172, 177178, 185, 214
Resource Recovery Service (RRS) 7, 61, 148, 310
resource status recovery 172, 177178, 186, 214
resource structure 7, 169170, 175, 188, 195, 202,
209210, 219, 238, 292
resource type consistency 160, 172, 177178, 183, 214
REXX API 13
REXX SPOC API 236237, 257
RM 162163, 168, 170, 172, 175176, 179, 202,
210211, 224, 238, 256, 290, 299
RM affinity 192
ROLB call 62
RRS 61, 148151
RSR 72
RSR feature 24
RSR tracker 62, 64
RTCODE 216
S
SAMEDS 8, 48, 52
SAMEDS (DFSMSdss) 6
scatter (SCTR) 25
SCEERUN 102
SCEERUN parameter 102
SCI 1314, 162165, 172, 179, 202, 204, 207, 210211,
213, 236238, 256258, 266269, 290, 293, 299300
SCINAME 293
SDEP 57
SDFSBASE 2223
SDFSDATA 23
SDFSEXEC 30, 240, 298
SDFSJCIC 23
SDFSJDC8 23
SDFSJDOC 23
SDFSJHF8 23
SDFSJHFS 23
SDFSJIVP 23
SDFSJJCL 23
SDFSJLIB 115
SDFSJSAM 23
SDFSJTOL 23
SDFSMLIB 240
SDFSPLIB 240
SDFSRESL 115, 240, 257
SDFSSMPL 2324
SDFSSRC 23
SDFSTLIB 240
security maintenance utility (SMU) 217
session level affinities 194
Set and Test Sequence Number (STSN) 160
SET PATCH commands 53
shared message queue support for synchronous APPC
and OTMA messages 89
shared message queue support for synchronous APPC
and OTMA transactions 147
shared queue structures 140
shared queues 160, 175, 293
Shared VSO 10
significant status 160, 170, 178, 188, 203204, 302
single point of control (SPOC) 13, 15, 25, 161, 235236,
281
Single session ISC resources 181
SIZALERT 71
SLDSREAD OFF 9
SLDSREAD ON 9
Small Programming Enhancements (SPE) 80
SMP/E 22, 24
SMPSTS 24
SMSCIC 50
SOAP services 108
SPANNED 70
SPOC 165
SRM 189, 204, 212, 297
SRM=GLOBAL 193
SRM=LOCAL 193
SRMDEF 191
Static NODE user entry 200
static transaction entry 199
Index
333
T
TERM OLC 168
TERMINATE OLC 221, 224, 228229
Time History Table (THT) 80
TP_Profile 8, 93, 182
Trace points 84
TRACE TT command 86
TRANSACT 216
transaction trace 16, 8384
transaction trace facility of OS/390 84
transport manager system (TMS) 64
TSO SPOC application 238, 240, 243, 246, 249, 253
two phase commit 61
U
Unix System Services 114, 117
unused IOVF count 10
Unused IOVF count update 56
UPD LE 169
UPD TRAN 169
Updatable ResultSet 16, 104
UPDATE LE 285
User entry 200
USERID entry 201
V
VGR affinity 193
virtual storage constraint relief (VSCR) 3, 11
VSO DEDB 5758
VTAM generic resources 158, 160, 163, 193, 213
VTAM multinode persistent sessions (MNPS) 159
334
W
WebSphere 95, 107, 109110, 114, 118
WebSphere Application Server 16, 112
WebSphere Application Server (WAS) 96, 108
WebSphere for z/OS J2EE server 122
WebSphere for z/OS System Administration tool 114,
117, 122
WebSphere Studio Application Developer 125
WLM 116
WLM CLASSIFY 84
worker JVM 100
Workload Manager 84
Workload Manager (WLM) 8384
X
XCF 173
XCF communications 157
XMI descriptions 108
XML 95, 108109, 167, 169, 236, 239, 256
XML Enabler for COBOL and PL/I 108
XRC tracking 6364, 66
Z
z/OS 24
(0.5 spine)
0.475<->0.873
250 <-> 459 pages
Back cover
IMS Version 8
Implementation Guide
A Technical Overview of the New Features
Explore IMSplex
components and
discover the new IMS
architecture
Utilize your Java skills
with IMS for Java and
WebSphere support
Get familiar with all
the new features
INTERNATIONAL
TECHNICAL
SUPPORT
ORGANIZATION
BUILDING TECHNICAL
INFORMATION BASED ON
PRACTICAL EXPERIENCE
IBM Redbooks are developed
by the IBM International
Technical Support
Organization. Experts from
IBM, Customers and Partners
from around the world create
timely technical information
based on realistic scenarios.
Specific recommendations
are provided to help you
implement IT solutions more
effectively in your
environment.
SG24-6594-00
ISBN 0738426725