# Controlling JDBC Behavior

JDBC is the underlying database connection protocol. You can control these JDBC features:

- Maximum open cursors

- Fetch mode

- Tracing JDBC calls

You can specify or override the value of these properties on the Java command line or in the Java VM Parameters field of a project's Project | Properties dialog. Use the following syntax:

    -D<variable>=<value>

For example, the following command sets the maximum number of open cursors to 10:

    -Djbo.max.cursors=10

### Maximum Open Cursors

`jbo.max.cursors` controls the maximum number of open cursors allowed for the database instance. The default value is 50, which is the Oracle database default.

### Fetch Mode

`jbo.fetch.mode` controls the fetch mode for View Objects. Allowed values are:

Value | Description
as.needed | Fetch rows as needed. In other words, JDBC ResultSet and Statement are kept open and rows are retrieved as requested. (Default)
all | Fetch all rows and close the ResultSet and Statement.

When View Objects are linked master-detail and there are many master rows, set `jbo.fetch.mode` to all to get the best performance. Otherwise, you might run out of memory or cursors as detail rowsets are kept open.

### JDBC Calls

`jbo.jdbc.trace` controls tracing of Business Component calls to JDBC. Allowed values are:

Value | Description
false | Suppress JDBC tracing information. (Default)
true | Output JDBC tracing information.

When this tracing is turned on (`true`), JDeveloper generates diagnostic messages like these:

    [###] import java.util.*;  // JBO-JDBC-INTERACT
    [###] import java.sql.*;  // JBO-JDBC-INTERACT
    [###] import java.io.*;  // JBO-JDBC-INTERACT
    [###] public class JDBCCalls  // JBO-JDBC-INTERACT
    [###] {  // JBO-JDBC-INTERACT
    [###]    public Connection conn = null;  // JBO-JDBC-INTERACT
    [###]    public CallableStatement cStmt = null;  // JBO-JDBC-INTERACT
    [###]    public PreparedStatement pStmt = null;  // JBO-JDBC-INTERACT
    [###]    public Statement stmt = null;  // JBO-JDBC-INTERACT
    [###]    public ResultSet rslt = null;  // JBO-JDBC-INTERACT
    [###]    public static void main(String argv[])  // JBO-JDBC-INTERACT
    [###]    {  // JBO-JDBC-INTERACT