Figure 4 shows the threads that onpload uses in a deluxe-mode load process. In deluxe mode, data is subject to the same constraints as if it were loaded using SQL INSERT statements.
The onpload utility starts the following threads:
The onpload utility starts one tape I/O thread for each tape device. It reads data from the tape device asynchronously.
The onpload utility starts a similar thread for piped output.
In the case of disk file input, onpload uses the multithreading AIO subsystem instead of a dedicated I/O thread.
The worker threads control I/O from input files. They handle device abstraction for the different device types handled. The driver threads also are responsible for passing out records from the input and passing records to the converters.
The onpload utility starts one or more convert threads for each device. These threads perform conversions on the input data such as uppercase to lowercase conversion or code-set conversion.
The onpload utility starts one worker thread for each input device. These threads communicate with the database server. The main responsibility of the worker thread is to pass data to the database server.
To see the status of the onpload threads, you must use the -j option of the onstat utility. This option is documented in Appendix F. onstat -j Option.
The database server uses the following threads to insert the data into the database:
Each worker thread of the onpload utility is paired with a pl_wkr thread in the database server. These threads receive the data from onpload.
In a utility that shows the database server status, the pl_wkr threads are named pl_wkr_1, pl_wkr_2, pl_wkr_3, and so forth.
The cadiload threads are the insert threads. The insert threads perform a normal insert into the database, just as during an INSERT statement. The SQL optimizer governs the method that is used for inserting the data.