Chapter 3. The user exit programming interface (XPI)
This chapter describes the user exit programming interface (XPI) of CICS
Transaction Server for z/OS, Version 3 Release 2. It is divided into the following
sections:
v “Overview of the XPI” is an introduction to the XPI.
v “Making an XPI call” on page 308 contains information that applies to all the XPI
calls.
v “Global user exit XPI examples, showing the use of storage” on page 313
contains two pieces of sample code.
v “XPI syntax” on page 319 describes the syntax of the individual XPI calls. The
calls are grouped according to the type of function they perform (for example,
dump control, storage control). The functional groups are ordered alphabetically.
Overview of the XPI
The user exit programming interface provides global user exit programs with access
to some CICS services. It consists of a set of macro function calls that you can use
in your user exit programs.
It provides opportunities to extend CICS functions beyond the facilities provided in
the standard CICS system, but it must be used with care. Any exit programs you
write that use the interface must be written following the guidance and they must be
carefully tested to ensure that they cannot cause system errors.
The user exit programs must be in assembler language; the XPI is not provided for
other languages. You should also note that programs containing XPI calls must be
written to 31-bit standards, and must be reentrant.
You must be in primary-space translation mode when you invoke the XPI. (For
information about translation modes, see z/Architecture Principles of Operation,
SA22-7832.)
v Using the XPI directory functions, you can:
– Establish a session with an LDAP server—see “The BIND_LDAP call” on
page 321
– Terminate a session with an LDAP server—see “The UNBIND_LDAP call” on
page 330
– Remove the contents of all cached search responses for the specified LDAP
connection—see “The FLUSH_LDAP_CACHE call” on page 323
– Send a search request to a specified LDAP server—see “The
SEARCH_LDAP call” on page 328
– Browse the results (attributes or entries) returned by the SEARCH_LDAP
call—see “The START_BROWSE_RESULTS call” on page 329
– Get the next attribute in a series, from an entry returned by the
SEARCH_LDAP call—see “The GET_NEXT_ATTRIBUTE call” on page 326
– Get the next entry, from a series of entries returned by the SEARCH_LDAP
call—see “The GET_NEXT_ENTRY call” on page 327
– Retrieve the value associated with an attribute returned by the
SEARCH_LDAP call—see “The GET_ATTRIBUTE_VALUE call” on page 325
– End the browse session that was started by the START_BROWSE_RESULTS
call—see “The END_BROWSE_RESULTS call” on page 323
© Copyright IBM Corp. 1977, 2011 305