![]() |
Copyright © TIBCO Software Inc. All Rights Reserved |
Refer to TIBCO Object Service Broker for z/OS External Environments for information about user builtin routines.
Before installing a user builtin routine, refer to TIBCO Object Service Broker for z/OS External Environments.
1. Create a USRBLTIN member similar to the one in the ASM data set and include your own routine, preferably as an entry within the USRCSECT CSECT.The USRBLTIN CSECT must contain only $ROUTINE macros. The parameters for the macro are:
NAME=aaa aaa is the 1-16 character name that you code in a rule to invoke the routine. MODULE=bbb bbb is the 1-8-character CSECT or entry point name. ARGS=ccc ccc is the list of argument parameters in sets of four, that is, type, syntax, length, and decimals. For example, ARGS=((,V,16,0),(,B,2,0)) defines a 16- byte variable string and 2-byte binary value. The TYPE specification of the arguments is left undefined.If the argument can be updated by the user builtin routine, the four parameters of the argument are preceded by a constant INOUT,,. An example is ARGS=((INOUT,,V,16,0),(INOUT,,B,2,0)). Note the two commas following the INOUT designation. A missing comma causes obscure execution-time errors. ARGNAMES=ddd ddd is the list of names of the arguments. For example, (STRING,NUMBER). RETURN=eee This is specified only if the routine returns a value. If it does return a value, the format is the same as for ARGS, for example, (,C,5,0), which is a five-byte string.The return value field, if specified, appears to the builtin routine as the first argument passed through the register 1 on entry to the routine. In our example, register 1 points to a list of addresses, as follows:register 1--> address of the return field, address of the string parameter field, and address of the NUMBER parameter field.If you do not specify RETURN=, only two parameters would appear in the list of addresses pointed to by register 1.The z/OS parameter-passing customer of marking the high order bit of the last address in the list is used. X'80' is OR-ed into the high-order byte of the last address.That way, you can remove most of the bugs without affecting your TIBCO Object Service Broker system or having to relink TIBCO Object Service Broker too often.
The routine does not have to be in USRCSECT, as described in step 1, but this avoids proliferation of CSECTs that are not removed from the load module if they are deleted from the usermod.If you want to add a routine as a separate CSECT, call it USRxxxxx to avoid possible conflicts with current or future TIBCO Object Service Broker CSECTs.Return code 4 is expected because the link edit warning messages IEW2454W, IEW2609W, and IEW2646W are normal and can be ignored.
![]() |
Copyright © TIBCO Software Inc. All Rights Reserved |