z/OS MVS Program Management: Advanced Facilities
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Using the fast data access service

z/OS MVS Program Management: Advanced Facilities
SA23-1392-00

Fast Data access services are usable from any language that supports the required data types. The services may be requested using either of two call interfaces: Request Code and Unitary. The Request Code interface was introduced in z/OS® V1.R5. The Unitary interface is retained for compatibility with earlier releases and is functionally stabilized. IBM® recommends that new applications use the Request Code interface.

Differences between the Request Code and Unitary interfaces include:
  1. If only a limited amount of information is needed, the Unitary interface can provide it in a single request, while the Request Code interface always requires at least three requests.
  2. The Unitary interface may simplify the calling code in some cases, but should not be thought of as more efficient. To implement it the fast data code analyzes the parameters and breaks the call into a sequence of Request Code calls to the actual processing routines.
  3. The Unitary interface call requires 15 or 16 positional parameters, though for assembler programs the IEWBFDA macro can be used to generate the parameter list. The Request Code interface requires from two to eight positional parameters.
  4. The IEWBFDA macro, which takes care of locating the fast data Code, can be used only by assembler programs and only with the Unitary interface. The special C/C++ support, which also takes care of locating the fast data Code, can be used only with the Request Code interface.
  5. Compile unit information, section name lists, and class name lists can only be obtained using the Request Code interface.

C/C++ programs should use the special interface support provided for that language. See IEWBNDD, IEWBNDDX - Binder C/C++ API DLL functions for more information. This provides a variant of the Request Code interface that is more natural in a C/C++ environment. It uses, for example, null-terminated strings rather than the length-prefixed strings defined here.

With either call interface, the code being called is entry point IEWBFDAT in a separate load module in the system Link Pack Area. The application making the calls must normally use some language-dependent means, such as the LOAD SVC, to locate IEWBFDAT, and use that address for the call. The special C/C++ support takes care of that requirement for the application. For assembler programs using the Unitary interface, an optional IEWBFDA macro is provided which LOADs and DELETEs IEWBFDAT as well as generating the parameter list and making the call.

The services described here return data in the same formats used by the binder API described in IEWBIND function reference, so the information in IEWBUFF - Binder API buffers interface assembler macro for generating and mapping data areas about generating and mapping data areas applies equally to fast data access. The buffer formats defined in Binder API buffer formats also apply to these services. See the Buffer parameter description below for more details.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014