User guide
behalf of the client. Please see the Oracle Rdb documentation for information on the default
transaction mechanism provided by SQL.
8.5 Executor Sub-process used with the Rdb Native driver
To improve multi-threaded concurrent access to the database while using the Rdb Native
driver, you may specify that separate sub-process executors should be started for each
connection request.
By default all database operations within a standard Rdb Native driver instance are carried
out synchronously, within a single OpenVMS process. This synchronization is required as
Rdb will only let one thread carry out a database operation at a time. This may limit the
general concurrency that may be seen if you are using the Rdb Native driver within a multi-
threaded environment.
To improve concurrency in a multi-threaded environment you can request the Rdb Native
driver to start-up a separate executor for the database connection.
To start a separate executor for the connection you need to specify the multiprocess switch
on connection URL you use for your database connection.
Connection conn = DriverManager.getConnection(
"jdbc:rdbNative:my_db_dir:pers@multiprocess=true",
user, pass);
Note that this switch is only available when you use the Rdb Native driver.
As a separate sub-process is created for each connection made, output written by the executor
process to SYS$OUTPUT and SYS$ERROR will be redirected to log files specific to that
sub-process. You should ensure that your process has write access to the log directory
RDB$JDBC_LOGS.
8.5.1 Setting Maximum Handshake Tries and Wait Duration
When the main process starts an executor process a handshake protocol is established
between the two processes to allow them to carry out subsequent inter-process
communication.
The main process will attempt 100 times in quick succession to establish the handshake, and
then, by default, will try 500 more times with a delay of 10 ms between each try.
112