This operation relates to a local service transaction code (tac_type='A' or 'D') or a TAC queue (tac_type='Q').
In the identification area, you must pass the name of the transaction code or TAC queue (field kc_name8 of the union kc_id_area). In the data area, you must pass the data structure kc_tac_str with the new values of the properties.
You can change the status and data access control for transaction codes and TAC queues. For transaction codes you can also reset TAC-specific statistics values to 0. Statistics values cannot, however, be changed in a KC_MODIFY_OBJECT call.
Possible modification
Modifying the status of a transaction code or TAC queue.
You can either disable a transaction code or TAC queue or enable a disabled transaction code or TAC queue again.
The administration command KDCTAC cannot be disabled.
If you change the status of a transaction code in a call, the statistics values cannot be reset.
Specify the following in kc_tac_str to disable or release the transaction code:
Field name
Meaning
state='N'
The transaction code/TAC queue is to be disabled.
Lock means that UTM will accept no further jobs for this transaction code or TAC queue.tac_type='A' or 'D':
The transaction code is disabled as a service TAC (1st TAC of a service). It is not disabled as a follow-up TAC in a service (call type='B').
Asynchronous jobs which are in the transaction code’s message queue at the time of disabling are still started.tac_type='Q':
The TAC queue is disabled for write accesses; read accesses are possible.
You cannot use state='N' to disable transaction codes for which call_type= 'N' is set.
state='H'
The transaction code or TAC queue is to be completely disabled (Halt).
tac_type='A' or 'D':
The transaction code is disabled both as a service TAC and as a follow-up TAC in an asynchronous or dialog service.
Asynchronous jobs which are in the transaction code’s message queue at the time of the disable operation are not started. They remain in the queue until the transaction code is released again or is set to state='N'.tac_type='Q':
The TAC queue is disabled for write and read accesses.
state='K'
This state may only be specified for asynchronous transaction codes (tac_type='A') that are also service TACs (call_type='B' or 'F') and for TAC queues.
The transaction code or TAC queue is disabled.tac_type='A':
Jobs for the transaction code are accepted, but they are not processed. They are merely entered into its job queue. They are not processed until you change the status of the transaction code to 'Y' or 'N'.tac_type='Q':
The TAC queue is disabled for read accesses; write access is still possible.
You can use state='K' (Keep) to collect jobs that are not to be processed until such time as the load on the application is reduced (e.g. at night).
state='Y'
The transaction code or TAC queue is to be released again. state='Y' resets both state='N', state='H' and state='K'.
Period of validity / transaction management: type GID ("KC_MODIFY_OBJECT - Modify object properties and application parameters")
If the transaction code KDCMSGTC is disabled, then all UTM messages having a UTM message destination MSGTAC and which are still located in the page pool are deleted.
Resetting statistical information for the transaction code to 0.
You can reset the statistics values to 0 during a run by entering 0 in one of the following fields in kc_tac_str. UTM will then reset all fields to 0. A value
!=
0 is rejected.Field name
Meaning
used
Number of program unit runs with this transaction code
number_errors
Number of program unit runs which were terminated with errors.
db_counter
Average number of database calls from program units started using this transaction code.
tac_elap_msec
Average runtime of program units started using this transaction code (elapsed time)
db_elap_msec
Average time needed to process database calls with this TAC in the program units.
taccpu_msec
Average CPU time in milliseconds needed to process this transaction code in the program unit. The value corresponds to the CPU time used by UTM and by the database system.
taccpu_micro_sec
Average CPU time in microseconds taken to process this transaction code in the program unit. This corresponds to the CPU time consumed by UTM plus the CPU time required by the database system.
nbr_ta_commits
Number of program unit runs for this TAC that have successfully concluded a transaction.
number_errors_ex
See number_errors.
You can either reset the statistics values for a specific transaction code or for all transaction codes in the application. If you want to reset the values for a specific transaction code you must enter the name of the transaction code in the identification area. In all other cases you must supply the identification area with binary zero.
Period of validity / transaction management: type GIR ("KC_MODIFY_OBJECT - Modify object properties and application parameters")
You can modify the data access control for a transaction code. If the transaction code was protected up to now by a lock code, you can remove the lock code and control data access by means of an access list. The reverse also applies. Please note that a lock code and access list are mutually exclusive; only one type of data access control is permitted at any one time.
Field name
Meaning
lock_code[4]
lock_code can be a number between '0' and the upper limit defined in the MAX statement (KEYVALUE operand).
'0' removes data access control.access_list[8]
In access_list you can specify an existing key set or fill the field with blanks.
Blanks remove the data access control.A user can only access the transaction code when the key set of the user and the key set of the LTERM partner by means of which the user is signed on contain at least one key code that:
corresponds to the lock code or
is also contained in the key set specified in access_list
Period of validity / transaction management: type GPD ("KC_MODIFY_OBJECT - Modify object properties and application parameters")
You can modify the data access control for a TAC queue. Specify the following in the kc_tac_str data structure:
Field name
Meaning
q_read_acl[8]
In q_read_acl you specify the name of an existing key set by means of which the queue is protected against unauthorized reading and deletion.
You can also remove the protection by specifying blanks. In this case, all users can read and delete messages from this queue.
q_write_acl[8]
In q_write_acl you specify the name of an existing key set by means of which the queue is protected against unauthorized write accesses.
You can also remove the protection by specifying blanks. In this case, all users can write messages to this queue.
A user only has read (delete) access or write access to this TAC queue if the key set of the user and the key set of the logical terminal by means of which the user is signed on each contain at least one key code that is also contained in the specified key set.
Period of validity / transaction management: type GPD ("KC_MODIFY_OBJECT - Modify object properties and application parameters")
Specify that queued messages are to be stored in the dead letter queue (TAC queue KDCDLETQ). Specify the following in the data structure kc_tac_str:
Field name
Meaning
dead_letter_q='Y'
Messages to this asynchronous TAC or this TAC queue which could not be processed are backed up in the dead letter queue if they are not redelivered and (with message complexes) no negative acknowledgement job has been defined.
dead_letter_q='Y' is not permitted for KDCDLETQ, KDCMSGTC, all interactive TACs and asynchronous TACs with CALL=NEXT.dead_letter_q='N'
Messages to this asynchronous TAC or this TAC queue which could not be processed are not backed up in the dead letter queue but deleted. This value must be specified for all interactive TACs and for asynchronous TACs with CALL=NEXT, as well as for KDCMSGTC and KDCDLETQ.
Period of validity / transaction management: type GPD ("KC_MODIFY_OBJECT - Modify object properties and application parameters")