OpenTP1 Version 7 System Definition
Format
set format
[set dam_update_block=maximum-number-of-blocks-to-be-updated] [set dam_added_file=maximum-logical-file-count-added-online] [set dam_update_block_over=flush|error] [set dam_message_level=1|0] [set dam_tran_process_count=number-of-concurrently-executing- transaction-branches] [set dam_cache_size|dam_cache_size_fix=buffer-area-size] [set dam_cache_attribute=free|fixed] [set dam_io_interval=execution-interval-time] [set dam_transaction_access=global|branch] [set dam_io_error_occur=stop|continue] [set dam_cache_reuse_from=last|first] [set dam_default_cache_num=default-boundary-for-reusing-cache-blocks] [set dam_ex_refer_read=none|stay] [set dam_max_block_size=maximum-block-length] [set dam_kb_size=1000|1024] [set watch_time=maximum-response-waiting-time] |
command format
[damcache logical-file-name boundary-for-reusing-cache-blocks] [damchlmt logical-file-name threshold-for-the-number-of-cache-blocks] {{damfile [-{d|n[-f]}][-c] logical-file-name physical-file-name}} |
Function
The DAM service definition defines the execution environment to manage direct access files having the file restoration function.
Explanation
set format
dam_update_block=maximum-number-of-blocks-to-be-updated~<unsigned integer> ((1-32768)) <<8>>
Specify the maximum number of blocks to be updated.
According to this specification, the DAM service allocates an area of memory sufficient for the DAM service on the shared memory pool (dynamic shared memory) for the system service. If the specified value is too large, the shared memory pool (dynamic shared memory) is affected. Define the value not to affect the pool.
dam_added_file=maximum-logical-file-count-added-online~<unsigned integer> ((1-128)) <<8>>
Specify the maximum number of logical files to be added online.
Logical files can be added up to this specified number during online execution.
dam_update_block_over=flush|error~<<error>>
Specify whether the access function is to return an error if during a transaction, the number of updated blocks exceeds the maximum block count specified with the dam_update_block operand.
dam_message_level=1|0~ <<1>>
Specify the level of the messages output by the DAM service.
dam_tran_process_count=number-of-concurrently-executing-transaction-branches~<unsigned integer> ((0-8192))
Specify the number of transaction branches to be executed concurrently to access the DAM file. An area is secured as a function of this specified value.
Note that if 0 is specified or if the secured areas are insufficient, processing will be delayed since areas are secured with execution of the transaction.
Take note that a large value will cause shared memory to be compressed. Take the usable memory into consideration when specifying a value.
dam_cache_size|dam_cache_size_fix=buffer-area-size~<unsigned integer> ((10-1000000)) (Unit: kilobytes)
In the dam_cache_size operand or the dam_cache_size_fix operand, specify the size of the buffer area for stacking the blocks that are referenced or updated online when the system starts. The value specified for the dam_cache_size_fix operand takes precedence over the value specified for the dam_cache_size operand.
When you specify dam_cache_size, specify a value greater than the value that is calculated using the following expression for determining the assumed buffer area size.
If you omit the dam_cache_size operand or if you specify a value smaller than the value automatically calculated by the DAM service in the buffer area calculation expression, the DAM service secures the buffer area using the value calculated in the expression.
The value calculated in the expression for determining the assumed buffer area size is the maximum buffer area size that is calculated based on the operands specified in the DAM service definition. Therefore, the DAM service may not be able to secure the buffer area size determined in the calculation. In that case, the DAM service secures half of the calculated size until the determined buffer area size can be secured.
If you specify an unspecifiable value in the dam_cache_size operand or the dam_cache_size_fix operand, the KFCA01644-I message will be output.
If the DAM service cannot secure the buffer area size specified in the dam_cache_size or dam_cache_size_fix operand due to an insufficient buffer area, the KFCA01648-E message will be output and the DAM service and the UAP will stop.
Note that if a DAM file that is updated by deferred updating has been specified, in addition to the buffer area size calculated in the expression shown above, the size estimated from the following formula is required:
The difference between the dam_cache_size operand and the dam_cache_size_fix operand is as follows:
The following table shows the relationship between the dam_cache_size operand and the dam_cache_size_fix operand, and the values to be used.
Specification of dam_cache_size_fix | Specification of dam_cache_size | ||
---|---|---|---|
Specification is correct | Specification is omitted | Specification is incorrect (KFCA01644-I is output) | |
Specification is correct | (2) | (2) | (2) |
Specification is omitted | (1) | (3) | (3) |
Specification is incorrect (KFCA01644-I is output) | (1) | (3) | (3) |
If the buffer area becomes insufficient and processing cannot continue, an abort code will be output. Check the abort code and perform countermeasures accordingly. For details about the abort code, see the manual OpenTP1 Messages.
You should also reconsider the buffer area size when you change the system definition or environment, for example when you change the configuration of a DAM file.
The shared memory size required for a resource manager is the cache size specified in the dam_cache_size_fix operand.
dam_cache_attribute=free|fixed~<<free>>
Specify whether to fix the buffer area allocated on shared memory. When specifying this operand, consider the capacity of memory installed and the percentage of the buffer area in the total memory size. Specify the operand independently of the deferred update function.
dam_io_interval=execution-interval-time~<unsigned integer> ((1-60)) <<1>> (Unit: seconds)
Specify the interval of execution of output processes when the deferred update function is used. This specification is unnecessary if the deferred update function is not used.
Too large an interval may cause an insufficient buffer area, making it impossible to write blocks that are to be updated or output in other transactions. The resulting memory shortage can cause a UAP to go down. When specifying the interval, therefore, consider the maximum number of transactions that will terminate within the execution time interval and the number of blocks to be updated or output in each transaction (required buffer size).
dam_transaction_access=global|branch~<<branch>>
Specify the unit of transactions which provides data management and lock management of DAM files.
dam_io_error_occur=stop|continue~<<continue>>
This specifies the action for the DAM service available if a disk error (I/O error) occurs during the updating of a disk.
The DAM service involves disk updating during the transaction synchronization point processing. Otherwise, disk updating takes place as an extension to the DAM service access function when the transaction uses the halfway update facility. In this case, the action for the DAM service is available if an error occurs during the updating of a disk.
With respect to disk errors during deferred updating or non-recovery file updating, there are no differences depending on specified values. If there is a disk error during deferred updating, the system issues the KFCA01646-E or KFCA01642-I message and continues processing with non-faulty files. If there is a disk error during non-recovery file updating, the system issues the KFCA01646-E or KFCA01642-I message and the dc_dam_rewrite() function or the dc_dam_write() function returns DCDAMER_IOER.
dam_cache_reuse_from=last|first~<<last>>
This operand specifies the cache block the DAM service first retrieves for reuse if the transaction that accesses a DAM file requires a new cache block area. When the DAM service updates a cache block, the DAM service connects it to the beginning of the reference cache block chain.
Even if you specify last, if the oldest cache block is being accessed by another transaction, the applicable transaction does not retrieve it for reuse when it attempts to retrieve cache blocks to be reused. In this case, the next oldest cache block is retrieved for reuse. The DAM service determines which cache block is the oldest in the cache block chain and, unlike the LRU (Least Recently Used) method, it does not rearrange the cache block chain even if cache blocks are accessed recently. The DAM service retrieves cache blocks that were accessed and are oldest in the cache chain.
dam_default_cache_num=default-boundary-for-reusing-cache-blocks> ~<unsigned integer>((0-4000000))<<0>>
This operand specifies the default boundary for reusing cache blocks. The value specified in this operand is the boundary for logical files if you do not specify the boundary for reusing cache blocks in the damcache command.
dam_ex_refer_read=none|stay ~<<none>>
This operand specifies whether the transaction that accesses a DAM file should leave the blocks to be read with the locked reference specification in the cache buffer area until the transaction is determined.
Note the following when you use this operand:
dam_max_block_size=maximum-block-length~<unsigned integer> ((504-32760))# <<504>> (units: bytes)
Specify the maximum block length in the DAM file in the system. However, a different block length may be used as the maximum block length in some cases. The following table describes the relationship between the conditions that cause such cases and the maximum block length to be employed.
dam_max_block_size operand | damfile definition command | |
---|---|---|
Specified | Not specified | |
When the specification is correct | The greater value between a and b is used. | The value of a is used. |
When the specification is omitted | The value of b is used. | 504 is assumed. |
When the specification is incorrect (the specified value is outside the range of 504 - 32760) | The value of b is used.#1 | 504 is assumed.#1 |
When the specification is incorrect (the specified value does not satisfy sector length x n - 8 (n is a positive integer)) | The value of b is used.#2 | 504 is assumed.#2 |
dam_kb_size=1000|1024~<<1000>>
When the size of the buffer area allocated as the shared memory for the DAM service is specified in the dam_cache_size operand of the DAM service definition ($DCDIR/conf/dam) in kilobytes, the value is automatically converted to the number of bytes. In this case, specify whether 1 KB is handled as 1000 bytes or 1024 bytes.
watch_time=maximum-response-waiting-time~<unsigned integer> ((0-65535)) (Unit: seconds)
Specify the maximum waiting time between sending a service request and receipt of a response when communicating between processes by RPC.
OpenTP1 may suspend termination processing for the length of time specified in this operand. Therefore, if you specify a large value, the termination processing of OpenTP1 may take some time.
If no response is received within the specified time, RPC returns a transmission timeout error.
Specify 0 if the system is to wait for a response. When you specify 0, OpenTP1 may not terminate.
If this operand is omitted, the value specified with the watch_time operand of the system common definition is assumed.
Use the default of the watch_time operand of the system common definition for this operand.
We recommend that you do not change the operand unless special tuning is necessary.
If a value that is much greater or smaller than the default of the watch_time operand of the system common definition is specified, a failure may occur causing OpenTP1 to go down.
command format
Described on the following page.
All Rights Reserved. Copyright (C) 2006, 2010, Hitachi, Ltd.