Version 8.1.2
 —  Adabas Vista Programming Guidelines  —

Additional Programming-Related Topics

This section provides additional information related to programming applications for use with Adabas Vista:


Coupled Files

Adabas Vista does not support search criteria that include syntax for physically coupled files or softly coupled files.

Top of page

Command Limit

An optional commaned limit can be defined for a translation rule. If a client exceeds this limit then a response code 249, subcode 129 is returned. A command limit of 0 (zero) means that use of this particular rule is unlimited.

Top of page

Error Handling

Adabas Vista uses the default Adabas response code 249 to indicate that an Adabas Vista processing error has occurred. This response code can be modified using the runtime control Error Response Code.

To qualify the error, a non-zero binary value is placed in the subcode field (the low-order 2-bytes of the Adabas Control Block Additions 2 field). Possible values for this subcode are provided in section Messages and Codes.

The application programmer can convert the response subcodes to error message text using the ERRM function of the Adabas Vista API (see Application Programming Interface).

When using Natural, the subcode may be retrieved using the USR0610N subprogram in library SYSEXT. This enables the following construct for an ON ERROR block:

0250   READ AVI1 LOGICAL BY NAME
0260       DISPLAY FIRST-NAME LAST-NAME SEX
0270   END-READ
0280   ON ERROR
0290   IF *ERROR-NR = 3249
0300       CALLNAT 'USR061ON' DB_ERR_STR
0310           WRITE 'AVI error, subcode:' DB_SUBCODE
0320   END-IF
0330   END-ERROR
0340   END

It is strongly recommended that error handling is implemented so that error conditions can be identified and handled immediately.

Refer to the runtime control Error Reporting for additional error reporting options.

Top of page

Multiclient File Processing

Adabas Vista is able to process multiclient files. There are a few considerations that should be made when using this type of file with Adabas Vista:

Top of page

Shared Partitions

When processing Adabas Vista files that have some partitions shared, extra processing is required to determine the correct partition for a particular record, and to ensure that records are returned to the application in the most appropriate sequence for the command. This extra processing may have an adverse effect on performance for these command sequences.

For example, an L1 command sequence processes all records in a file that is defined to Adabas Vista with three partitions, the first and third partitions sharing a single file. Adabas Vista will scan through the first file and extract all records that logically belong to the first partition. The second file will be processed as normal, and Adabas Vista will then scan through the first file again to extract the records that logically belong to the third partition.

When issuing an L9 command against a shared partition where the descriptor used is not the partitioning field, although the count returned is correct, the ISN returned in the ISN Lower Limit field may indicate an incorrect partition. It is not possible to differentiate between the partitions in a shared file for an L9 command.

Top of page

Single Partition Focus

The Single Partition Focus feature can be used to define temporarily a partitioned file as having only one partition. Any command restrictions that may apply to partitioned files are lifted. Alternatively, you can set one of the partitions to FULL access and the others to NONE to achieve the same result.

You may enable single partition focus as the default for a partitioned file by using Adabas Vista Online Services. You may enable it for a single session by using the provided Adabas Vista API (example program API004UP).

Warning:
If single partition focus is specified for a partition of a partitioned file, the validation of the partitioning field value against the defined criteria for that partition is no longer performed. This means that records whose partitioning field value does not correspond to the defined partitioning criteria may be updated or stored in that partition. If single partition focus is subsequently lifted and focused access performed against this partitioned file, such records may not be found. For this reason, it is recommended to restrict the use of single partition focus to those partitioned files for which no focused access is performed.

Example

A file is defined with two partitions and the partitioning field high value is set to M and Z, respectively. Single partition focus is specified for the first partition.

As a result, a record with the value T is added to the first partition.

When single partition focus is removed, a subsequent focused access for all records with the value T is directed to the second partition only.

Top of page

Updating the Partitioning Field

Special consideration must be made if modifying the record’s partition criteria will result in the movement of the record from one partition to another. First, it is inevitable that the ISN will change – which is absolutely not a normal programming situation – and which may require some application design consideration. Second, moving from one partition to another may require a distributed transaction which will only be safe if you use Adabas Transaction Manager. Adabas Vista will allow such record movement but only using a specific exit that defines how the record movement is to take place. Please contact Software AG in order to proceed in this area.

If no such exit is in use, any attempt to modify a record’s partition criteria which would result in a cross partition move will return a response code. If such a modification is required, a DELETE and STORE operation must be performed.

Top of page