Previous Topic: Using NCLEX01 for NDB Security

Next Topic: Using the Batch Command Interface

NDB Open Exit Call Details

The following describes the parameter list passed on an &NDBOPEN call to NCLEX01:

Fields in this DSECT include:

NEXNDNAM

DS CL8

NDB name being opened

NEXNDFL1

DS X

Flag byte

NEXNDOPX

EQU X'80'

... EXCLUSIVE on &NDBOPEN

NEXNDOPI

EQU X'40'

... INPUT on &NDBOPEN

NEXNDOKM

DS 0XL2

Following 2 bytes.

Note: initialized to 2X'FF'.

NEXNDOK1

DS X

... first OK operations flag.

NEXNDGTO

EQU X'80'

... 1 = &NDBGET ok.

NEXNDSCO

EQU X'40'

... 1 = &NDBSCAN ok.

NEXNDADO

EQU X'20'

... 1 = &NDBADD ok.

NEXNDUPO

EQU X'10'

... 1 = &NDBUPD ok.

NEXNDDLO

EQU X'08'

... 1 = &NDBDEL ok.

NEXNDDFO

EQU X'04'

... 1 = &NDBDEF ok.

NEXNDINO

EQU X'02'

... 1 = &NDBINFO ok.

NEXNDOK2

DS X

... 2nd ok operations flag.

NEXNDUDL

DS H

Length (0-50 decimal) of user data from &NDBOPEN statement.

NEXNDUDT

DS CL50

User data (padded/truncated to 50 chars) from &NDBOPEN statement (pad is blank).

These fields can be referenced to determine the action to take.

By returning R15 not equal to 0, all access to the NDB from the NCL process is denied. ASN NDB response code of 40 is returned, and this is handled based on the &NDBCTL ERROR= setting.

If R15 is returned with a 0, the 2-byte NEXNDOKM field is examined. If all of the defined bits are off (as listed previously), then the effect is the same as setting R15 not 0. Note that the NEXNDOKM field is initialized to all bits on before the call.

If any bits in the NEXNDOKM field are off, the associated &NDBxxxx verb cannot be used. Attempts to use it results in an NDB response code of 41. This too is handled as per the &NDBCTL ERROR= setting.

You can deny the use of the &NDBDEF verb with this exit. This forces the use of the NDB FIELD command to add, update, or delete field definitions from the database.

If the exit terminates abnormally while processing the &NDBOPEN request, the NCL process is terminated with an error.

The exit is attached as a subtask in all environments. It should be coded re-entrant because multiple copies may be executing simultaneously.