0% found this document useful (0 votes)
94 views23 pages

CICS Sockets OTE

CICS Sockets OTE

Uploaded by

clarod
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
94 views23 pages

CICS Sockets OTE

CICS Sockets OTE

Uploaded by

clarod
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Software Group | Enterprise Networking and Transformation Solutions (ENTS)

CS z/OS CICS Sockets


Open Transaction Environment (OTE)

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

What is the CICS quasi-reentrant TCB?


The CICS quasi-reentrant (QR) Task Control Block (TCB) is the TCB where the
customers application work is processed.

Programs are said to be quasi-reentrant programs because they take advantage of the
behavior of the CICS dispatcher and the QR TCB.
ƒ There is only ever one CICS task active under the QR TCB.
–The same program can be executed by multiple CICS tasks
–Only one of those CICS tasks is active at any given point in time

Quasi-reentrant programs running under the QR TCB are safe in the knowledge that
they are the only CICS user task running at that instance.
ƒ Can access shared resources such as the CICS Common Work Area (CWA)
ƒ Can access shared storage obtained via EXEC CICS GETMAIN SHARED
ƒ Running under the QR TCB guarantees serialized access to shared resources

The QR TCB structure limits multi-processing.


ƒ One of the key reasons why multiple CICS regions are typically deployed for scalability in a
multiprocessor environment.

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Subtasking method - private: NTASKS


The current subtasking method IP CICS Sockets uses is that of a privately managed pool
of MVS TCBs.
ƒ Determined by what is coded for the NTASKS configuration option

ƒ Established when IP CICS Sockets is initialized

–New TCBs are dynamically generated


If the subtask pool is defined too small for the IP CICS Sockets workload
The task is a listener
The same TCB will be DETACHed when the task using it has ended

Private pool of
LST1 reusable socket
CICS TS Region subtasks
LST2 z/OS
TCP/IP
TRNA T Stack
R
EZAO
U
EZAC E

PLTxx CICS/ESA or
CICS TS Region

Build
EZACICD cfg

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

EZASOKET transactions in CICS/TS 1.3


NTASK=2
socket subtask QR TCB socket subtask

TRANA

EZASOKET
POST
WAIT TRANB
EZASOH03
EZASOKET
POST POST
WAIT WAIT
EZASOH03
EZASOKET
POST
WAIT POST
EZASOH03 WAIT

POST EZASOKET
WAIT POST
WAIT
EZASOH03
EZASOKET
POST POST
WAIT WAIT
EZASOH03
RETURN
POST
WAIT
RETURN

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

What is CICS Open Transaction Environment?


CICS TS Open Transaction Environment (OTE) introduces a new class of Task Control
Blocks (TCBs) called an open TCB, which can be used by applications.
ƒ Characterized by the fact it is assigned to a CICS task for the life of the CICS task
ƒ Multiple OTE TCBs may run concurrently in CICS

There are several modes of open TCBs, used to support various functions.
ƒ Java in CICS, for example employs a type of OTE TCB commonly referred to as “J8”
ƒ Open API Task Related User Exits employ the “L8” TCB

There is no sub-dispatching of other CICS tasks under the open TCB.


ƒ An application executing under an open TCB can issue non CICS API requests that may involve
the TCB being blocked.
ƒ Blocking is allowed because only this TCB is halted, and not the whole of CICS

–This is what happens if a blocking EZASOKET request is issued under the QR TCB.
Blocking means the TCB is halted, the TCB is not being dispatched.
ƒ Examples of non CICS APIs would be:
–MVS services
GETMAIN
MVS UNIX System Services POSIX functions.
–DB2 SQL
–MQSeries

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

What is CICS Open Transaction Environment? (continued)


Since multiple tasks can potentially access shared resources simultaneously when
executing under an OTE TCB, applications that access shared resources must bear the
responsibility of ensuring the integrity of those resources by implementing an
appropriate serialization technique.

ƒ For example, a counter in the CICS common work area (CWA)

CICS assumes responsibility for ensuring the integrity of the resources it manages.
ƒ Either the CICS TS code has been amended to run on multiple TCBs safely
–temporary storage requests
ƒ Or CICS TS will ensure the code runs on the QR TCB
–File Control requests.

Therefore the use of non-threadsafe CICS commands that must run on the QR TCB has a
performance penalty (due to the need to switch TCBs), but there is no risk to data
integrity.

If the same quasi-reentrant program would run in an OTE environment, multiple
instances of this program could execute at the same time.
ƒ The counter value in the CWA could be changed by multiple executors at the same time and one
instance would never be sure about the counter value when it stops or gets suspended.

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

What is threadsafe?

“threadsafe application”

ƒ A collection of application programs that employ an agreed-upon form of serialized access to


shared resources.

A program written to “threadsafe standards” is a program that implements the


agreed-upon serialization techniques.

It is important to understand a single program operating without the agreed-upon


serialization technique can destroy the predictability and therefore integrity of an
entire system of otherwise threadsafe programs.

Therefore, an application system cannot be “threadsafe” until all programs that share
a common resource implement that application’s threadsafe standards.

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

The CICS resource adapter concept


A CICS resource adapter is a mechanism used to allow CICS programs access to
non-CICS resources.
ƒ In the case of IP CICS Sockets, a call to EZASOKET will invoke the adapter:

CALL 'EZASOKET' USING SOKET-BIND


SOCKET-
DESCRIPTOR SOCKADDR ERRNO
Application RETCODE.

Program

Stub
TRUE Resource Non-CICS
Manager resource
such as
z/OS TCP/IP

"THE RESOURCE ADAPTER"

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Subtasking method - Open API


When exploiting OTE, the IP CICS Sockets Task Related User Exit (TRUE) will be
enabled as Threadsafe. When it is invoked by an EZASOKET call, CICS will switch the
task from the QR TCB to an L8 TCB.

The L8 TCBs are solely managed by CICS TS. The active L8 TCB pool size is limited by
the CICS MAXOPENTCBS System Initialization parameter. The CICS ACTOPENTCBS
will indicate the number of L8 TCBs in use at any instance.
CICS TS Region

LST1 CICS owned


Open API TCBs
LST2 z/OS
TCP/IP
TRNA T Stack
R
EZAO
U
EZAC E

PLTxx
CICS TS 2.2 Region

Build
EZACICD cfg

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

EZASOKET transactions in CICS/TS 2.2


TRANA is non-
threadsafe
QR TCB TRANB is threadsafe
L8001 TCB L8002 TCB
TRANA
EZASOKET
CHANGE MODE
TRANB
EZASOH03
EZASOKET
CHANGE MODE CHANGE MODE
EZASOH03
EZASOKET
CHANGE MODE
EXEC CICS
EZASOH03 Threadsafe
$ OVERHEAD $ commands
CHANGE MODE
EZASOKET
EZASOH03
EZASOKET
CHANGE MODE EXEC CICS
WRITEQ TD
EZASOH03
CHANGE MODE
CHANGE MODE
WRITEQ TD
RETURN RETURN

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

CICS Sockets in z/OS V1R7 may optionally be based on OTE


Allow IP CICS Sockets to exploit CICS OTE
QR TCB L8002 TCB
ƒ Task Related User Exit

Max 2000 L8 TCBs (configurable) TRNB


ƒ APIs
1
EZASOKET
EZASOKET CHANGE MODE
EZACICSO
3 EZASOH03
C 2

ƒ Listener

Standard and Enhanced listener 4


EXEC CICS
Threadsafe
IPv4 and IPv6 versions commands
ƒ Utility programs

EZACIC04, EZACIC05, EZACIC06, EZACIC08, 6 EZASOKET


EZACIC12, EZACIC14, and EZACIC15 EZASOH03
5

Note:
ƒ To exploit CICS Sockets OTE: EXEC CICS
7
WRITEQ TD
Update the listener security exit routine
CHANGE MODE
Make sure CICS Sockets applications are 8
threadsafe WRITEQ TD
ƒ CICS TS 2.3 level is recommended (2.2 will work!)
RETURN

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

MVS TCB structure for CICS/TS R220


RBs
Master
Scheduler IEAVAR00

RBs RBs
Region
DUMP
IEAVTSDT CTL IEESB605
Task
Task

Region RBs
CTL
IEFIIC MVS stuff above the line
Task

LLEs RBs
JOB
CDEs
Step DFHSIP
TCB

RBs
RBs
FO
DFHTRTCB
Aux
TCB
DFHKETCB The FO (File) TCB was added in R510
Trace
RBs
RO
DFHKETCB
TCB

RBs
QR
DFHKETCB
TCB

DB2 CTL TCB D2 GP 2-4 CO TCB FEPI DBCTL CTL TCB


J8 - L8 - H8 -
DFHD2MSB DFHKETCB DFHSKTSK DFHKETCB DFHKETCB DFSPRRA0
JAVA/JVM Open TCBs Hot Pooling
DB2 5.1 DB2 6.1 up
DFHKETCB DFHKETCB DFHKETCB
DB2 6.1 up
DB2 Threads DBCTL Threads
DFHD2EX3 DFSPAT00
DB2 5.1

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Update CICS configuration for OTE - MAXOPENTCBS


CICS TS must be upgraded to at least V2R2 with any Open Transaction Environment and threadsafe PTFs
applied. IP CICS Sockets will perform a runtime check to ensure this environment exists before the
interface is enabled.

MAXOPENTCBS is a CICS TS configuration option that is used to limit the size of the Open API, L8, TCB
pool. Its range is from 1-2000 with a default of 12. When the number of tasks using L8 TCBs reaches
MAXOPENTCBS, then any new work will be suspended by CICS TS until tasks end or MAXOPENTCBS is
increased.
ƒ Remember, TCB storage is allocated from Local System Queue Area (LSQA). MAXOPENTCBS can by set by

using the CEMT Set DIspatcher MAXOpentcbs(nnnn) command.


File Edit Edit_Settings Menu Utilities Compilers Test Help
--------------------------------------------------------------------------------------
EDIT DCICS.V2R3M0.SYSIN(DFH$SIPT) - 01.83 Columns 00001 00080
Command ===>_________________________________________________________ Scroll ===> CSR
000021 MXT=260 Set maximum tasks to 32
000022 DSALIM=16M
000023 EDSALIM=640M
000024 SPOOL=YES System spooling interface is required
000025 MAXOPENTCBS=260 Limit of Open API TCB in pool
000026 FORCEQR=NO Do not force threadsafe pgms to QR TCB
000027 MCT=SO Monitor Control Table for Sockets
000028 MN=ON Monitor Control on at initialization
000029 MNEXC=ON Exeception class monitoring is active
000030 MNPER=ON Performance class monitoring is active

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Update CICS configuration for OTE - FORCEQR


FORCEQR is a CICS TS configuration option that causes CICS TS to force all user application
programs that are specified as threadsafe to run under the CICS QR TCB, as if they were specified
as quasi-reentrant programs.
ƒ FORCEQR=NO is the default.

ƒ FORCEQR=YES is to be used to help in the threadsafe program conversion. FORCEQR can be

dynamically changed by using CEMT Set SYStem (Force|NOForce) command.


It is recommended that FORCEQR be set to NO on a production level CICS.
File Edit Edit_Settings Menu Utilities Compilers Test Help
--------------------------------------------------------------------------------------
EDIT DCICS.V2R3M0.SYSIN(DFH$SIPT) - 01.83 Columns 00001 00080
Command ===>_________________________________________________________ Scroll ===> CSR
000021 MXT=260 Set maximum tasks to 32
000022 DSALIM=16M
000023 EDSALIM=640M
000024 SPOOL=YES System spooling interface is required
000025 MAXOPENTCBS=260 Limit of Open API TCB in pool
000026 FORCEQR=NO Do not force threadsafe pgms to QR TCB
000027 MCT=SO Monitor Control Table for Sockets
000028 MN=ON Monitor Control on at initialization
000029 MNEXC=ON Exeception class monitoring is active
000030 MNPER=ON Performance class monitoring is active
000031 AUXTR=OFF Activate auxiliary trace
000032 AUXTRSW=NEXT Permit one switch for auxiliary trace datasets
000033 PLTPI=SI PLT for System Initialization programs
000034 PLTSD=SD PLT for Shutdown programs

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Configure IP CICS Sockets for OTE


OTE
ƒ A value of YES causes the IP CICS Sockets task-related user exit to execute using the CICS Open Transaction Environment.

ƒ A value of NO causes IP CICS Sockets to continue executing EZASOKET calls on an MVS subtask managed by the IP CICS Sockets

interface.
ƒ If OTE=YES, then the values of NTASKS, DPRTY and TERMLIM will be forced to zero if specified.

OTE is supported on CICS/TS V2R2M0 and higher.


ƒ If OTE=YES is specified on a pre-CICS/TS V2R2M0 system, then the IP CICS Sockets interface will fail initialization.

When OTE=YES is specified, CICS TS will switch all calls from the QR TCB to an L8 TCB
ƒ All EZASOKET calls

ƒ All IP CICS C Socket functions

IP CICS Sockets applications must be


ƒ Coded using threadsafe programming practices as defined by CICS and

ƒ Defined to CICS as threadsafe

EDIT ---- CFGOTE JCL A1 ---------------------------------------------- COLUMNS 001 080


COMMAND ===> SCROLL ===> CSR
000075 CICS1A EZACICD TYPE=CICS, Generate configuration record X
000076 APPLID=CICS1A, APPLID of CICS X
000077 TCPADDR=TCPCS, Address space name for TCP/IP X
000078 CACHMIN=0, Minimum refresh time for CACHE X
000079 CACHMAX=20, Maximum refresh time for CACHE X
000080 CACHRES=5, Maximum number of active resolvers X
000081 OTE=YES, Use Open Transaction Environment X
000082 TCBLIM=12, TCBLIM=12 X
000083 TRACE=NO, No tracing needed X
000084 ERRORTD=TCPM Name of TD queue for error messages

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Configure IP CICS Sockets for OTE - TCBLIM


 TCBLIM
ƒ Specifies the maximum number of open TCBs that can be used by the IP CICS Sockets interface.

ƒ Listeners will not be subject to this limitation; however, they will be subject to CICS's MAXOPENTCBS.
–This allows listeners to be started thereby prohibiting a possible denial of service.
–If MAXOPENTCBS is reached
Then no more open API TCBs are available in the CICS region and
The IP CICS Sockets task-related user exit cannot obtain an open TCB for its use

ƒ If OTE=NO and TCBLIM>0, then TCBLIM will be forced to 0.

ƒ IP CICS Sockets supports a TCB limiting mechanism to manage its use of the L8 TCBs.

ƒ When TCBLIM is 0, no limiting factor is imposed.


–TCBLIM=0 is the default.

ƒ When TCBLIM is set to the same value as MAXOPENTCBS, it will never be enforced due to CICS's management of the L8
pool size.

ƒ When a CICS region is at MAXOPENTCBS, any new work exploiting an Open API enabled TRUE will wait until an L8 TCB
becomes available either through task end or by increasing MAXOPENTCBS
–The EZAO,SET,CICS transaction can be used to change TCBLIM dynamically

ƒ Listeners defined to the IP CICS Sockets interface are not subject to TCBLIM but are subject to MAXOPENTCBS

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

L8 TCB management for CICS Sockets


The IP CICS Sockets Operator transaction can be used to inquire abou the following:
ƒ The current CICS MAXOPENTCBS setting

ƒ The current number of L8 TCBs in use

ƒ The current IP CICS Sockets TCBLIM setting

ƒ The current number of L8 TCBs that are subject to TCBLIM

ƒ The current number of tasks that are queued by TCBLIM

ƒ The current queue depth of tasks that have been queued by TCBLIM

EZAO,INQUIRE,CICS APPLID = CICS1A

TRACE ===> NO Trace CICS Sockets


MAXOPENTCBS ===> 00260 CICS Open API, L8, TCB Limit
ACTOPENTCBS ===> 00000 Active CICS Open API, L8, TCBs
TCBLIM ===> 00000 Open API TCB Limit
ACTTCBS ===> 00000 Number of Active Open API TCBs
QUEUEDEPTH ===> 00000 Number of Suspended Tasks
SUSPENDHWM ===> 00000 Suspended Tasks HWM

PF 3 END 12 CNCL

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

IP CICS Sockets components - threadsafe or not


The following IP CICS Sockets programs are threadsafe:
ƒ EZACIC01 - Task Related User Exit

ƒ EZACIC02 - Listener

–The Listener will incur less TCB switching if run on CICS TS V2R3
ƒ EZACIC12 - WLM Registration/Deregistration

ƒ EZACICME - Message module

ƒ Sample programs

–EZACICAC - Sample IPv4 child server


–EZACIC6C - Sample IPv6 child server
–EZACICSC - Sample COBOL child server
ƒ Utility programs

–EZACIC04, EZACIC05, EZACIC06, EZACIC08, EZACIC09, EZACIC14, EZACIC15


ƒ Application stub

–EZACIC17

The following IP CICS Sockets programs do not need to be threadsafe:


ƒ EZACIC00 - Operator

ƒ EZACIC03 - MVS subtask

ƒ EZACIC20 - PLT program

ƒ EZACIC21 - Initialization

ƒ EZACIC22 - Termination

ƒ EZACIC23 - Configuration

ƒ EZACIC25 - Domain Name Service

–This is not marked as threadsafe as it will always incur a TCB switch due to non-threadsafe CICS commands.
ƒ EZACIC07 is the non-reentrant application stub providing C socket support for non-reentrant C CICS programs.

Application programs using the EZACIC07 application stub cannot be defined as threadsafe. Use EZACIC17 instead.

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

CICS Sockets - OTE vs. non-OTE - performance


CICS Sockets Transactions
OTE vs. non-OTE
20000
20% less CPU per
Interactions per second

interaction OTE
15000
12% less CPU per non-OTE
interaction
10000

5000

0
0 10 20 30 40 50 60
Number of send/receive (interactions) operations per transaction
CICS Sockets transactions that issue many sockets calls and/or use both SQL and
sockets calls will see most benefit from using OTE

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

QR TCB L8002 TCB


CICS CPU time
TRNB
Be aware of CICS CPU time 1
changes: EZASOKET
CHANGE MODE

ƒ QR INCLUDES 1 + 8 3 EZASOH03
2

ƒ L8 CPU time includes the following


CPU times EXEC CICS
OPEN TCB time, processing 4
Threadsafe
accessing TRUE and running commands
application code
–Includes 3 + 4 + 6 + 7 EZASOKET
6
Time spent in Sockets Extended EZASOH03
5
–Includes times 2 + 5

ƒ MS CPU
EXEC CICS
CO, RO, etc. TCBs 7
WRITEQ TD
CHANGE MODE
ƒ USER CPU includes QR, L8, MS 8
1+2+3+4+5+6+7+8+MS WRITEQ TD
RETURN

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Things to think about


 If you specify a listener user/security exit, then it must be coded to threadsafe programming standards and defined
to CICS as CONCURRENCY(THREADSAFE) to prevent a TCB switch and ensure shared resource integrity.

 Child server transaction program must be coded to threadsafe programming standards and defined to CICS as
CONCURRENCY(THREADSAFE) to prevent TCB switching and ensure shared resource integrity.

 Use the CICS supplied load module scanner program, DFHEIDTH, to locate non-threadsafe CICS commands in your
programs

########################################################################
# CICS LOAD MODULE SCANNER FILTER TABLE - THREADSAFE INHIBITORS #
# This table identifies commands which "may" cause the program not to #
# be threadsafe in that they allow accessibility to shared storage and #
# the application must have the necessary synchronization logic in #
# place to guard against concurrent update. #
########################################################################
# The extract command obtains the address and length of the global #
# work area for the GLUE or TRUE. #
########################################################################
EXTRACT EXIT GASET *
GETMAIN SHARED *
ADDRESS CWA *
ASKTIME * # Threadsafe in CICS TS V2R3
FORMATTIME * # Threadsafe in CICS TS V2R3
SYNCPOINT *
WRITE JOURNALNAME
WRITE FILE
WRITEQ TD

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Things to think about


Reassemble any user-written programs using any of the external IP CICS Sockets macros:
ƒ EZACICA - IP CICS Sockets control blocks
ƒ EZACICSX - Listener security/user exit COMMAREA layout

The following APAR is required to exploit CICS Sockets OTE


ƒ CICS TS V2R2 and V2R3
–PQ93953 - CICS EXEC CICS SET TASK PURGE OR FORCEPURGE CMD PROCESSING FAILS
ƒ PTFs
–UK01007 for CICS TS R2.2
–UK01008 for CICS TS R2.3

The solution to the following APARs is recommended to enable best sockets performance
in an OTE environment:
ƒ APARs OA13252 and OA13278

Reference the following for more information on threadsafe programming practices:


ƒ CICS TS documentation library
ƒ IBM Redbook - "Threadsafe considerations for CICS", SG24-6351
ƒ Share presentation - "What Does It Mean to be Threadsafe In CICS Transaction Server R2.2?" by

Jim Grauel

© 2005 IBM Corporation


IBM Software Group | Enterprise Networking and Transformation Solutions

Trademarks, Copyrights and Disclaimers


The following terms are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both:
IBM CICS IMS MQSeries Tivoli
IBM(logo) Cloudscape Informix OS/390 WebSphere
e(logo)business DB2 iSeries OS/400 xSeries
AIX DB2 Universal Database Lotus pSeries zSeries

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

Microsoft, Windows, Windows NT, and the Windows logo are registered trademarks of Microsoft Corporation in the United States, other countries, or both.

Intel, ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the United States, other countries, or both.

UNIX is a registered trademark of The Open Group in the United States and other countries.

Linux is a registered trademark of Linus Torvalds.

Other company, product and service names may be trademarks or service marks of others.

Product data has been reviewed for accuracy as of the date of initial publication. Product data is subject to change without notice. This document could include technical inaccuracies or typographical errors. IBM may make
improvements and/or changes in the product(s) and/or program(s) described herein at any time without notice. Any statements regarding IBM's future direction and intent are subject to change or withdrawal without notice,
and represent goals and objectives only. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which
IBM operates or does business. Any reference to an IBM Program Product in this document is not intended to state or imply that only that program product may be used. Any functionally equivalent program, that does not
infringe IBM's intellectual property rights, may be used instead.

Information is provided "AS IS" without warranty of any kind. THE INFORMATION PROVIDED IN THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IBM
EXPRESSLY DISCLAIMS ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. IBM shall have no responsibility to update this information. IBM products are
warranted, if at all, according to the terms and conditions of the agreements (e.g., IBM Customer Agreement, Statement of Limited Warranty, International Program License Agreement, etc.) under which they are provided.
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 in connection with this
publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. IBM makes no representations or warranties, express or implied, regarding non-IBM products and
services.

The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents or copyrights. Inquiries regarding patent or copyright licenses should be made, in writing, to:

IBM Director of Licensing


IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.

Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. All customer examples described are presented as illustrations of how those customers have used IBM
products and the results they may have achieved. The actual throughput or performance that any user will experience will vary depending upon considerations such as the amount of multiprogramming in the user's job
stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve throughput or performance improvements equivalent to the
ratios stated here.

© Copyright International Business Machines Corporation 2005. All rights reserved.


Note to U.S. Government Users - Documentation related to restricted rights-Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract and IBM Corp.

© 2005 IBM Corporation

You might also like