JDBC/MX 5.0 Driver for SQL/MX Programmer's Reference (SQL/MX 2.x)
occurs. Nonblocking mode causes the JDBC/MX driver to block only the thread that invokes the SQL operation and
not the whole JVM process. In a multithreaded Java application, the nonblocking JDBC/MX feature enables the JVM
to schedule other threads concurrently while each SQL operation is being done by a thread.
By default, JDBC/MX uses the nonblocking mode. You can disable nonblocking JDBC/MX in a Java application by
setting the sqlmx_nowait property to OFF by using the -Djdbcmx.sqlmx_nowait option in the command line. The
syntax is:
-Djdbcmx.sqlmx_nowait={ ON | OFF }
where
ON
specifies nonblocking JDBC/MX. The default is ON.
OFF
specifies process blocking JDBC/MX.
You can also programmatically disable or enable nonblocking JDBC/MX by setting the sqlmx_nowait property within
the program. Depending on your application, set this property as follows:
In JDBC/MX applications that obtain a JDBC connection by using the DriverManager class, set this property
before the JDBC/MX driver is loaded.
In JDBC/MX applications that obtain a JDBC connection by using JNDI API with the DataSource interface, set
this property before the DataSource object is created.
JDBC connection can now be simultaneously used from multiple threads. Multiple threads working on SQL
statements are allowed to share the same connection. Therefore, single connection context is used across multiple
threads and the operations associated with the connection object are made thread safe.
If you are an application developer writing multithreaded Java applications that use nonblocking JDBC, follow these
recommendations:
Create only one JDBC connection per thread. Applications obtaining multiple JDBC connections in single thread
do not run the SQL/MX operations concurrently and can waste system resources because each connection
requires its own SQL/MX compiler process.
Do not share JDBC Java objects--such as Statement or ResultSet objects--across threads for purposes other
than canceling the SQL operation with the Cancel() method.
Be aware of the non-preemptive nature of the thread implementation in NonStop Server for Java 4. A CPU-
bound thread runs to its completion without providing an opportunity for the thread scheduler to schedule a
different thread.
If an application is written to share connection across multiple threads, then the connection properties should not
be modified.
Setting Batch Processing for Prepared Statements
You can improve the performance of batch processing when using the PreparedStatement.executeBatch() method
by setting the batchBinding property. When the batchBinding property is set, the statements are batched in the
executeBatch() operation.
When a JDBC application sets the batchBinding property, the JDBC/MX driver allocates resources relative to the
specified binding size.










