The source table or target table can be changed by the serial number initializing condition. These are the methods of initializing the serial number provided by the deferred service.
The serial number continues to increase.
When a system date is changed, the serial number is initialized by the system date. The changeable information on the serial number initialization is as below. These are applied to all initialization conditions.
Define the date management class to initialize the serial number. If there's no date management class, use the system date as the standard. By verification of the date of the data process, if a different date is returned not the current date, initialize the serial number. Configurable information on initialization of the serial number is the same as the change condition of the system date.
When the serial number of the inquired data reaches to the maximum serial number, initialize the serial number. By comparing the value of the column registered as key field on data verification, if there's the maximum serial number included on the inquired data, initialize the serial number. Configurable information on serial number initialization is the same as the change condition of the system date.
If a specific field value is corresponding to the finishing job value, initialize the serial number. The configurable information is the same as the change condition of the system date.
Date management class always have to return the current date. Refer to Custom Handlers Guide(ISM:Customs#Deferred Date Management Class) to look up how to implement this.
1. Initialization of the serial number by system date
2. Initialization of the serial number by business date
3. Initialization of the serial number by maximum value
4. Initialization of the serial number by delimiter
When no column exists corresponding to the serial number on the source table, a serial number can be generated by assigning a serial number column. The serial number column could be the column already exists, if not, additional column has to be added. The serial number is set according to the order the data is inquired by normal select query. In automatic generation of the serial number, the used column is a serial number column and a date column. If there's already a date column, the serial number is initialized by the system date unit.
Deferred Period Management is determined by the Fetch Interval registered on rule.If no inquiry period is defined, use the default 30 seconds as the interval. If the data number is corresponding to the rule defined Fetch Count on data verification, consider it there's more data exist and adjust the date inquiry period to 1 second automatically. If the data number is less than Fetch Count after the inquiry, return it to the Fetch Interval registered on the rule..
Deferred service execute the sequential process if there are multiple target systems which has to reflect the inquired data from the source to process it as a single transaction. Sequential process process the data synchronously and the sequential process is the basic processing flow of the deferred service. Sequential process once inquire the data and reflect it to multiple target systems in order and process the next data.
Among the data which has to be processed by the deferred service, there's data which has too much data and high requirements so that it can cause process delay by the sequential process. In this case, the parallel process can process this kinds of data. In parallel process, set the checkpoint to ensure the order of the data. Parallel process only able to permit a single target system. Parallel process handle the data asynchronously unlike the sequential process.
Checkpoint is used to check the reception before it is applied to the target system; it has three locations as follow.
The location of the checkpoint | Setting | Description |
---|---|---|
Regardless of the order | 0 | Process the data which each process has received regardless of the order |
Before the data application starts | 1 | Load the inquired data to send it to the target system and check the order. |
Just before the data application | 2 | After completing the conversion task of the data and check the order before applying the data to the target system. If the target system is file, check the order before sending the file to the target system after the conversion. |
After the application of the data | 3 | Check the order after applying the data to the target system. If the target system is DB, check the order before committing after the data application. If the target system is file, send the file and check the order. |
Checkpoint is set on ism.xml and it is applied to the whole deferred service. To apply this to the whole deferred service, configure the setting as follows.
<deferred> <multisequence checkpoint="2" committimeout="30000" handler="com.ism.deferred.process.DefaultSequenceHandler" /> </deferred>
To apply the checkpoint to a specific service, configure the setting as follows.
<multisequence checkpoint="2" committimeout="30000" handler="com.ism.deferred.process.DefaultSequenceHandler"> <integrationservice_id checkpoint="0"/> </multisequence>
The time waiting for the data to be processed right before the order uses committimeout value(millisecond) set on ism.xml, if it isn't defined, use the default value(60 seconds). In the parallel process, it segments the process target data into continuous sections. There shouldn't be missing number in this continuous numerical order. The continuous section number use the basic section division class(com.ism.deferred.process.DefaultSequenceHandler) if it isn't defined separately.
When the following work is required after the the job in the deferred section is completed, the post task can be defined and used. The post task can be used to execute the script sending the file sent from DB-File service to the target DB, or DB operation to notify the file transmission, or etc. Available types and usages of the post task is the same as the task of batch service.
The post task of the deferred process is executed within the same transaction unlike the batch process. Since there's no guarantee that it can be executed by the same session, it is not possible to manipulate the data sent from DB-DB deferred type to the target system.
The parameters available on the post task are as follow.
Name of the parameter | Description |
---|---|
TGT_FILE_NAME | Target filename It includes directory information. |
SRC_TABLE_NAME | Source table name |
TGT_TABLE_NAME | Target table name |
PROC_START_TIME | The time when the task starts. The time when the data verification starts |
PROC_END_TIME | The time when the task is completed. The time when the data reflection is completed |
SERVICE_ID | Integration Service ID |
PROC_DT | The date of the task. It is NOT the system date but the date information which is managed by the deferred service. |
START_SEQ | Serial number at the beginning |
END_SEQ | Serial number at the end |
DATA_COUNT | The number of data processed |
FILE_SIZE | The size of the target file |
JOB_ORDER | The order of the job. The job order is initialized by the date which is managed by the deferred service. The order of the job increase 1 for every successfully completed job. It starts from the number 1. |
END_REACHED | Whether it reaches the finishing job status. true/false |
Deferred task is controlled by the web console. The details of the deferred task regulation are as follow.
Start the deferred task.
Pause the deferred task.
Resume the task paused.
Abort the deferred task and delete the information. Because aborted task lose all the information, restarting the task means starting a new task.
Change the serial number to the previous or latter number. Modification of the serial number is conducted when the task is paused.
Change the date which the task is executed. Modification of the date is conducted when the task is paused.
Initialize the task information,. Initialize the serial number to 0, and reset the date information too.
Task is executed by the web console.. Deferred Task Management on Task Management menu, inquire current processing task and register the new one if there's no task.