IBM Data Server Client Packages Version 10.1

IBM Data Server Driver for JDBC and SQLJ configuration properties

The IBM® Data Server Driver for JDBC and SQLJ configuration properties have driver-wide scope.

The following table summarizes the configuration properties and corresponding Connection or DataSource properties, if they exist.

Table 1. Summary of Configuration properties and corresponding Connection and DataSource properties
Configuration property name Connection or DataSource property name Introduced in driver version Notes
db2.jcc.accountingInterval accountingInterval 3.6 1, 4
db2.jcc.allowSqljDuplicateStaticQueries   2.11 4
db2.jcc.charOutputSize charOutputSize 2.9 1, 4
db2.jcc.currentSchema currentSchema 1.2 1, 4, 6
db2.jcc.override.currentSchema currentSchema 1.2 2, 4, 6
db2.jcc.currentSQLID currentSQLID 1.3 1, 4
db2.jcc.override.currentSQLID currentSQLID 1.3 2, 4
db2.jcc.decimalRoundingMode decimalRoundingMode 3.4 1, 4, 6
db2.jcc.override.decimalRoundingMode decimalRoundingMode 3.4 2, 4, 6
db2.jcc.defaultSQLState   3.52, 4.2 4
db2.jcc.disableSQLJProfileCaching   1.8 4
db2.jcc.dumpPool dumpPool 3.52, 4.2 1, 3, 4, 5
db2.jcc.dumpPoolStatisticsOnSchedule dumpPoolStatisticsOnSchedule 3.52, 4.2 1, 3, 4, 5
db2.jcc.dumpPoolStatisticsOnScheduleFile dumpPoolStatisticsOnScheduleFile 3.52, 4.2 1, 3, 4, 5
db2.jcc.enableInetAddressGetHostName   3.63, 4.13 4, 5, 6
db2.jcc.override.enableMultirowInsertSupport enableMultirowInsertSupport 3.62, 4.12 2, 4
db2.jcc.encryptionAlgorithm encryptionAlgorithm 3.65, 4.15 1, 4, 6
db2.jcc.override.encryptionAlgorithm encryptionAlgorithm 3.65, 4.15 2, 4, 6
db2.jcc.jmxEnabled   4.0 4, 5, 6
db2.jcc.lobOutputSize   1.8 4
db2.jcc.maxConnCachedParamBufferSize maxConnCachedParamBufferSize 3.63, 4.13 1, 4
db2.jcc.maxRefreshInterval   3.58, 4.8 4, 5, 6
db2.jcc.maxTransportObjectIdleTime   3.52, 4.2 1, 4, 5, 6
db2.jcc.maxTransportObjectWaitTime   3.52, 4.2 1, 4, 5, 6
db2.jcc.maxTransportObjects maxTransportObjects 2.6 1, 4, 5, 6
db2.jcc.minTransportObjects   3.52, 4.2 1, 4, 5, 6
db2.jcc.outputDirectory   3.61, 4.11 6
db2.jcc.pkList pkList 1.4 1, 4
db2.jcc.planName planName 1.4 1, 4
db2.jcc.progressiveStreaming progressiveStreaming 3.0 1, 4, 5, 6
db2.jcc.override.progressiveStreaming progressiveStreaming 3.0 2, 4, 5, 6
db2.jcc.rollbackOnShutdown   3.50, 4.0 4
db2.jcc.securityMechanism securityMechanism 3.65, 4.15 1, 4, 5, 6
db2.jcc.override.securityMechanism securityMechanism 3.65, 4.15 2, 4, 5, 6
db2.jcc.sendCharInputsUTF8 sendCharInputsUTF8 3.50, 4.0 4
db2.jcc.sqljStmtCacheSize   3.66, 4.16 4
db2.jcc.sqljToolsExitJVMOnCompletion   3.62, 4.12 4, 6
db2.jcc.sqljUncustomizedWarningOrException   2.2 4, 6
db2.jcc.ssid ssid 3.6 1, 4
db2.jcc.traceDirectory traceDirectory 1.5 1, 4, 5, 6
db2.jcc.override.traceDirectory traceDirectory 1.5 2, 4, 5, 6
db2.jcc.traceFile traceFile 1.1 1, 4, 5, 6
db2.jcc.override.traceFile traceFile 1.1 2, 4, 5, 6
db2.jcc.traceFileAppend traceFileAppend 1.2 1, 4, 5, 6
db2.jcc.override.traceFileAppend traceFileAppend 1.2 2, 4, 5, 6
db2.jcc.traceFileCount traceFileCount 3.63, 4.13 1, 4, 5, 6
db2.jcc.traceFileSize traceFileSize 3.63, 4.13 1, 4, 5, 6
db2.jcc.traceLevel traceLevel 3.51, 4.1 1, 4, 5, 6
db2.jcc.override.traceLevel traceLevel 3.51, 4.1 2, 4, 5, 6
db2.jcc.traceOption traceOption 3.63, 4.13 1, 4, 5, 6
db2.jcc.tracePolling   3.51, 4.1 4, 5, 6
db2.jcc.tracePollingInterval   3.51, 4.1 4, 5, 6
db2.jcc.t2zosTraceFile   3.51, 4.1 4
db2.jcc.t2zosTraceBufferSize   3.51, 4.1 4
db2.jcc.t2zosTraceWrap   3.51, 4.1 4
db2.jcc.useCcsid420ShapedConverter   3.2 4
Note:
  1. The Connection or DataSource property setting overrides the configuration property setting. The configuration property provides a default value for the Connection or DataSource property.
  2. The configuration property setting overrides the Connection or DataSource property.
  3. The corresponding Connection or DataSource property is defined only for IBM Informix®.
  4. The configuration property applies to DB2® for z/OS®.
  5. The configuration property applies to IBM Informix.
  6. The configuration property applies to DB2 for Linux, UNIX, and Windows.

The meanings of the configuration properties are:

db2.jcc.accountingInterval
Specifies whether DB2 accounting records are produced at commit points or on termination of the physical connection to the data source. If the value of db2.jcc.accountingInterval is COMMIT, DB2 accounting records are produced at commit points. For example:
db2.jcc.accountingInterval=COMMIT
Otherwise, accounting records are produced on termination of the physical connection to the data source.

db2.jcc.accountingInterval applies only to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS. db2.jcc.accountingInterval is not applicable to connections under CICS® or IMS™, or for Java™ stored procedures.

You can override db2.jcc.accountingInterval by setting the accountingInterval property for a Connection or DataSource object.

This configuration property applies only to DB2 for z/OS.

db2.jcc.allowSqljDuplicateStaticQueries
Specifies whether multiple open iterators on a single SELECT statement in an SQLJ application are allowed under IBM Data Server Driver for JDBC and SQLJ type 2 connectivity.

To enable this support, set db2.jcc.allowSqljDuplicateStaticQueries to YES or true.

db2.jcc.charOutputSize
Specifies the maximum number of bytes to use for INOUT or OUT stored procedure parameters that are registered as Types.CHAR.

Because DESCRIBE information for stored procedure INOUT and OUT parameters is not available at run time, by default, the IBM Data Server Driver for JDBC and SQLJ sets the maximum length of each character INOUT or OUT parameter to 32767. For stored procedures with many Types.CHAR parameters, this maximum setting can result in allocation of much more storage than is necessary.

To use storage more efficiently, set db2.jcc.charOutputSize to the largest expected length for any Types.CHAR INOUT or OUT parameter.

db2.jcc.charOutputSize has no effect on INOUT or OUT parameters that are registered as Types.VARCHAR or Types.LONGVARCHAR. The driver uses the default length of 32767 for Types.VARCHAR and Types.LONGVARCHAR parameters.

The value that you choose for db2.jcc.charOutputSize needs to take into account the possibility of expansion during character conversion. Because the IBM Data Server Driver for JDBC and SQLJ has no information about the server-side CCSID that is used for output parameter values, the driver requests the stored procedure output data in UTF-8 Unicode. The db2.jcc.charOutputSize value needs to be the maximum number of bytes that are needed after the parameter value is converted to UTF-8 Unicode. UTF-8 Unicode characters can require up to three bytes. (The euro symbol is an example of a three-byte UTF-8 character.) To ensure that the value of db2.jcc.charOutputSize is large enough, if you have no information about the output data, set db2.jcc.charOutputSize to three times the defined length of the largest CHAR parameter.

This configuration property applies only to DB2 for z/OS.

db2.jcc.currentSchema or db2.jcc.override.currentSchema
Specifies the default schema name that is used to qualify unqualified database objects in dynamically prepared SQL statements. This value of this property sets the value in the CURRENT SCHEMA special register on the database server. The schema name is case-sensitive, and must be specified in uppercase characters.

This configuration property applies only to DB2 for z/OS or DB2 for Linux, UNIX, and Windows.

db2.jcc.currentSQLID or db2.jcc.override.currentSQLID
Specifies:
  • The authorization ID that is used for authorization checking on dynamically prepared CREATE, GRANT, and REVOKE SQL statements.
  • The owner of a table space, database, storage group, or synonym that is created by a dynamically issued CREATE statement.
  • The implicit qualifier of all table, view, alias, and index names specified in dynamic SQL statements.
currentSQLID sets the value in the CURRENT SQLID special register on a DB2 for z/OS server. If the currentSQLID property is not set, the default schema name is the value in the CURRENT SQLID special register.

This configuration property applies only to DB2 for z/OS.

db2.jcc.decimalRoundingMode or db2.jcc.override.decimalRoundingMode
Specifies the rounding mode for assignment to decimal floating-point variables or DECFLOAT columns on DB2 for z/OS or DB2 for Linux, UNIX, and Windows data servers.

Possible values are:

com.ibm.db2.jcc.DB2BaseDataSource.ROUND_DOWN (1)
Rounds the value towards 0 (truncation). The discarded digits are ignored.
com.ibm.db2.jcc.DB2BaseDataSource.ROUND_CEILING (2)
Rounds the value towards positive infinity. If all of the discarded digits are zero or if the sign is negative the result is unchanged other than the removal of the discarded digits. Otherwise, the result coefficient is incremented by 1.
com.ibm.db2.jcc.DB2BaseDataSource.ROUND_HALF_EVEN (3)
Rounds the value to the nearest value; if the values are equidistant, rounds the value so that the final digit is even. If the discarded digits represents greater than half (0.5) of the value of one in the next left position then the result coefficient is incremented by 1. If they represent less than half, then the result coefficient is not adjusted (that is, the discarded digits are ignored). Otherwise the result coefficient is unaltered if its rightmost digit is even, or is incremented by 1 if its rightmost digit is odd (to make an even digit).
com.ibm.db2.jcc.DB2BaseDataSource.ROUND_HALF_UP (4)
Rounds the value to the nearest value; if the values are equidistant, rounds the value away from zero. If the discarded digits represent greater than or equal to half (0.5) of the value of one in the next left position then the result coefficient is incremented by 1. Otherwise the discarded digits are ignored.
com.ibm.db2.jcc.DB2BaseDataSource.ROUND_FLOOR (6)
Rounds the value towards negative infinity. If all of the discarded digits are zero or if the sign is positive the result is unchanged other than the removal of discarded digits. Otherwise, the sign is negative and the result coefficient is incremented by 1.
com.ibm.db2.jcc.DB2BaseDataSource.ROUND_UNSET (-2147483647)
No rounding mode was explicitly set. The IBM Data Server Driver for JDBC and SQLJ does not use the decimalRoundingMode to set the rounding mode on the database server. The rounding mode is ROUND_HALF_EVEN.

If you explicitly set the db2.jcc.decimalRoundingMode or db2.jcc.override.decimalRoundingMode value, that value updates the CURRENT DECFLOAT ROUNDING MODE special register value on a DB2 for z/OS data server.

If you explicitly set the db2.jcc.decimalRoundingMode or db2.jcc.override.decimalRoundingMode value, that value does not update the CURRENT DECFLOAT ROUNDING MODE special register value on a DB2 for Linux, UNIX, and Windows data server. If the value to which you set db2.jcc.decimalRoundingMode or db2.jcc.override.decimalRoundingMode is not the same as the value of the CURRENT DECFLOAT ROUNDING MODE special register, an Exception is thrown. To change the data server value, you need to set that value with the decflt_rounding database configuration parameter.

decimalRoundingMode does not affect decimal value assignments. The IBM Data Server Driver for JDBC and SQLJ always rounds decimal values down.

db2.jcc.defaultSQLState
Specifies the SQLSTATE value that the IBM Data Server Driver for JDBC and SQLJ returns to the client for SQLException or SQLWarning objects that have null SQLSTATE values. This configuration property can be specified in the following ways:
db2.jcc.defaultSQLState
If db2.jcc.defaultSQLState is specified with no value, the IBM Data Server Driver for JDBC and SQLJ returns 'FFFFF'.
db2.jcc.defaultSQLState=xxxxx
xxxxx is the value that the IBM Data Server Driver for JDBC and SQLJ returns when the SQLSTATE value is null. If xxxxx is longer than five bytes, the driver truncates the value to five bytes. If xxxxx is shorter than five bytes, the driver pads xxxxx on the right with blanks.

If db2.jcc.defaultSQLState is not specified, the IBM Data Server Driver for JDBC and SQLJ returns a null SQLSTATE value.

This configuration property applies only to DB2 for z/OS.

db2.jcc.disableSQLJProfileCaching
Specifies whether serialized profiles are cached when the JVM under which their application is running is reset. db2.jcc.disableSQLJProfileCaching applies only to applications that run in a resettable JVM (applications that run in the CICS, IMS, or Java stored procedure environment), and use IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS. Possible values are:
YES
SQLJ serialized profiles are not cached every time the JVM is reset, so that new versions of the serialized profiles are loaded when the JVM is reset. Use this option when an application is under development, and new versions of the application and its serialized profiles are produced frequently.
NO
SQLJ serialized profiles are cached when the JVM is reset. NO is the default.

This configuration property applies only to DB2 for z/OS.

db2.jcc.dumpPool
Specifies the types of statistics on global transport pool events that are written, in addition to summary statistics. The global transport pool is used for the connection concentrator and Sysplex workload balancing.

db2.jcc.dumpPoolStatisticsOnSchedule and db2.jcc.dumpPoolStatisticsOnScheduleFile must also be set for writing statistics before any statistics are written.

You can specify one or more of the following types of statistics with the db2.jcc.dumpPool property:
  • DUMP_REMOVE_OBJECT (hexadecimal: X'01', decimal: 1)
  • DUMP_GET_OBJECT (hexadecimal: X'02', decimal: 2)
  • DUMP_WAIT_OBJECT (hexadecimal: X'04', decimal: 4)
  • DUMP_SET_AVAILABLE_OBJECT (hexadecimal: X'08', decimal: 8)
  • DUMP_CREATE_OBJECT (hexadecimal: X'10', decimal: 16)
  • DUMP_SYSPLEX_MSG (hexadecimal: X'20', decimal: 32)
  • DUMP_POOL_ERROR (hexadecimal: X'80', decimal: 128)

To trace more than one type of event, add the values for the types of events that you want to trace. For example, suppose that you want to trace DUMP_GET_OBJECT and DUMP_CREATE_OBJECT events. The numeric equivalents of these values are 2 and 16, so you specify 18 for the db2.jcc.dumpPool value.

The default is 0, which means that only summary statistics for the global transport pool are written.

This configuration property applies only to DB2 for z/OS or IBM Informix.

db2.jcc.dumpPoolStatisticsOnSchedule
Specifies how often, in seconds, global transport pool statistics are written to the file that is specified by db2.jcc.dumpPoolStatisticsOnScheduleFile. The global transport object pool is used for the connection concentrator and Sysplex workload balancing.

The default is -1. -1 means that global transport pool statistics are not written.

This configuration property applies only to DB2 for z/OS or IBM Informix.

db2.jcc.dumpPoolStatisticsOnScheduleFile
Specifies the name of the file to which global transport pool statistics are written. The global transport pool is used for the connection concentrator and Sysplex workload balancing.

If db2.jcc.dumpPoolStatisticsOnScheduleFile is not specified, global transport pool statistics are not written.

This configuration property applies only to DB2 for z/OS or IBM Informix.

db2.jcc.enableInetAddressGetHostName
Specifies whether the IBM Data Server Driver for JDBC and SQLJ uses the InetAddress.getHostName and InetAddress.getCanonicalHostName methods to determine the host name for an IP address. db2.jcc.enableInetAddressGetHostName applies only to IBM Data Server Driver for JDBC and SQLJ type 4 connectivity. Possible values are:
true
The IBM Data Server Driver for JDBC and SQLJ uses the InetAddress.getHostName and InetAddress.getCanonicalHostName methods to determine the host name for an IP address.

When you specify true, applications might take longer to run because of the additional time that is required for DNS lookup operations.

false
The IBM Data Server Driver for JDBC and SQLJ uses the InetAddress.getHostAddress method to determine the host name for an IP address.

For versions 3.65 and 4.15 or later of the IBM Data Server Driver for JDBC and SQLJ, the default is false. For versions 3.64 and 4.14 or earlier, the default is true.

db2.jcc.override.enableMultiRowInsertSupport
Specifies whether the IBM Data Server Driver for JDBC and SQLJ uses multi-row INSERT for batched INSERT or MERGE operations, when the target data server is a DB2 for z/OS server that supports multi-row INSERT. The batch operations must be PreparedStatement calls with parameter markers. The default is true.

db2.jcc.override.enableMultiRowInsertSupport must be set to false if INSERT FROM SELECT statements are executed in a batch. Otherwise, the driver throws a BatchUpdateException.

Possible values are:
true
Specifies that the IBM Data Server Driver for JDBC and SQLJ uses multi-row INSERT for batched INSERT or MERGE operations, when the target data server is a DB2 for z/OS server that supports multi-row INSERT. This is the default.
false
Specifies that the IBM Data Server Driver for JDBC and SQLJ does not use multi-row INSERT for batched INSERT or MERGE operations, when the target data server is a DB2 for z/OS server that supports multi-row INSERT.
db2.jcc.jmxEnabled
Specifies whether the Java Management Extensions (JMX) is enabled for the IBM Data Server Driver for JDBC and SQLJ instance. JMX must be enabled before applications can use the remote trace controller.
Possible values are:
true or yes
Indicates that JMX is enabled.
Any other value
Indicates that JMX is disabled. This is the default.
db2.jcc.lobOutputSize
Specifies the number of bytes of storage that the IBM Data Server Driver for JDBC and SQLJ needs to allocate for output LOB values when the driver cannot determine the size of those LOBs. This situation occurs for LOB stored procedure output parameters. db2.jcc.lobOutputSize applies only to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS.

The default value for db2.jcc.lobOutputSize is 1048576. For systems with storage limitations and smaller LOBs, set the db2.jcc.lobOutputSize value to a lower number.

For example, if you know that the output LOB size is at most 64000, set db2.jcc.lobOutputSize to 64000.

This configuration property applies only to DB2 for z/OS.

db2.jcc.maxConnCachedParamBufferSize
Specifies the maximum size of an internal buffer that is used for caching input parameter values for PreparedStatement objects. The buffer caches values on the native code side that are passed from the driver's Java code side for IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS. The buffer is used by all PreparedStatement objects for a Connection. The default is 1048576 (1MB). The default should be adequate for most users. Set db2.jcc.maxConnCachedParamBufferSize to a larger value if many applications that run under the driver instance have PreparedStatement objects with large numbers of input parameters or large input parameters. The db2.jcc.maxConnCachedParamBufferSize should be larger than the maximum size of all input parameter data for a Connection. However, you also need to take into account the total number of connections and the maximum amount of memory that is available when you set the db2.jcc.maxConnCachedParamBufferSize value.

The buffer exists for the life of a Connection, unless it reaches the maximum specified size. If that happens, the buffer is freed on each call to the native code. The corresponding buffer on the Java code side is freed on PreparedStatement.clearParameters and PreparedStatement.close calls. The buffers are not cleared if an application calls PreparedStatement.clearParameters, and the buffers have not reached the maximum size.

db2.jcc.maxRefreshInterval
For workload balancing, specifies the maximum amount of time in seconds between refreshes of the client copy of the server list. The minimum valid value is 1.

For version 3.63 or 4.13 or later of the IBM Data Server Driver for JDBC and SQLJ, the default is 10 seconds. For earlier versions of the driver, the default is 30 seconds.

db2.jcc.maxTransportObjectIdleTime
Specifies the amount of time in seconds that an unused transport object stays in a global transport object pool before it can be deleted from the pool. Transport objects are used for the connection concentrator and Sysplex workload balancing.

The default value for db2.jcc.maxTransportObjectIdleTime is 10. Setting db2.jcc.maxTransportObjectIdleTime to a value less than 0 causes unused transport objects to be deleted from the pool immediately. Doing this is not recommended because it can cause severe performance degradation.

db2.jcc.maxTransportObjects
Specifies the upper limit for the number of transport objects in a global transport object pool for the connection concentrator and Sysplex workload balancing. When the number of transport objects in the pool reaches the db2.jcc.maxTransportObjects value, transport objects that have not been used for longer than the db2.jcc.maxTransportObjectIdleTime value are deleted from the pool.

For version 3.63 or 4.13 or later of the IBM Data Server Driver for JDBC and SQLJ, the default is 1000. For earlier versions of the driver, the default is -1.

Any value that is less than or equal to 0 means that there is no limit to the number of transport objects in the global transport object pool.

db2.jcc.maxTransportObjectWaitTime
Specifies the maximum amount of time in seconds that an application waits for a transport object if the db2.jcc.maxTransportObjects value has been reached. Transport objects are used for the connection concentrator and Sysplex workload balancing. When an application waits for longer than the db2.jcc.maxTransportObjectWaitTime value, the global transport object pool throws an SQLException.

Any negative value means that applications wait forever.

For version 3.63 or 4.13 or later of the IBM Data Server Driver for JDBC and SQLJ, the default is 1 second. For earlier versions of the driver, the default is -1.

db2.jcc.minTransportObjects
Specifies the lower limit for the number of transport objects in a global transport object pool for the connection concentrator and Sysplex workload balancing. When a JVM is created, there are no transport objects in the pool. Transport objects are added to the pool as they are needed. After the db2.jcc.minTransportObjects value is reached, the number of transport objects in the global transport object pool never goes below the db2.jcc.minTransportObjects value for the lifetime of that JVM.

The default value for db2.jcc.minTransportObjects is 0. Any value that is less than or equal to 0 means that the global transport object pool can become empty.

db2.jcc.outputDirectory
Specifies where the IBM Data Server Driver for JDBC and SQLJ stores temporary log or cache files.
If this property is set, the IBM Data Server Driver for JDBC and SQLJ stores the following files in the specified directory:
jccServerListCache.bin
Contains a copy of the primary and alternate server information for automatic client reroute in a DB2 pureScale® environment.

This file applies only to IBM Data Server Driver for JDBC and SQLJ type 4 connectivity to DB2 for Linux, UNIX, and Windows.

If db2.jcc.outputDirectory is not specified, the IBM Data Server Driver for JDBC and SQLJ searches for a directory that is specified by the java.io.tmpdir system property. If the java.io.tmpdir system property is also not specified, the driver uses only the in-memory cache for the primary and alternate server information. If a directory is specified, but jccServerListCache.bin cannot be accessed, the driver uses only the in-memory cache for the server list.

jccdiag.log
Contains diagnostic information that is written by the IBM Data Server Driver for JDBC and SQLJ.

If db2.jcc.outputDirectory is not specified, the IBM Data Server Driver for JDBC and SQLJ searches for a directory that is specified by the java.io.tmpdir system property. If the java.io.tmpdir system property is also not specified, the driver does not write diagnostic information to jccdiag.log. If a directory is specified, but jccdiag.log cannot be accessed, the driver does not write diagnostic information to jccdiag.log.

connlicj.bin
Contains information about IBM Data Server Driver for JDBC and SQLJ license verification, for direct connections to DB2 for z/OS. The IBM Data Server Driver for JDBC and SQLJ writes this file when server license verification is performed successfully for a data server. When a copy of the license verification information is stored at the client, performance of license verification on subsequent connections can be improved.

If db2.jcc.outputDirectory is not specified, the IBM Data Server Driver for JDBC and SQLJ searches for a directory that is specified by the java.io.tmpdir system property. If the java.io.tmpdir system property is also not specified, the driver does not store a copy of server license verification information at the client. If a directory is specified, but connlicj.bin cannot be accessed, the driver does not store a copy of server license verification information at the client.

The IBM Data Server Driver for JDBC and SQLJ does not create the directory. You must create the directory and assign the required file permissions.

db2.jcc.outputDirectory can specify an absolute path or a relative path. However, an absolute path is recommended.

db2.jcc.pkList
Specifies a package list that is used for the underlying RRSAF CREATE THREAD call when a JDBC or SQLJ connection to a data source is established. Specify this property if you do not bind plans for your SQLJ programs or for the JDBC driver. If you specify this property, do not specify db2.jcc.planName.

db2.jcc.pkList applies only to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS. db2.jcc.pkList does not apply to applications that run under CICS or IMS, or to Java stored procedures. The JDBC driver ignores the db2.jcc.pkList setting in those cases.

Recommendation: Use db2.jcc.pkList instead of db2.jcc.planName.

The format of the package list is:

Read syntax diagramSkip visual syntax diagram
   .-,---------------.   
   V                 |   
>>---collection-ID.*-+-----------------------------------------><

The default value of db2.jcc.pkList is NULLID.*.

If you specify the -collection parameter when you run com.ibm.db2.jcc.DB2Binder, the collection ID that you specify for IBM Data Server Driver for JDBC and SQLJ packages when you run com.ibm.db2.jcc.DB2Binder must also be in the package list for the db2.jcc.pkList property.

You can override db2.jcc.pkList by setting the pkList property for a Connection or DataSource object.

The following example specifies a package list for a IBM Data Server Driver for JDBC and SQLJ instance whose packages are in collection JDBCCID. SQLJ applications that are prepared under this driver instance are bound into collections SQLJCID1, SQLJCID2, or SQLJCID3.

db2.jcc.pkList=JDBCCID.*,SQLJCID1.*,SQLJCID2.*,SQLJCID3.*

This configuration property applies only to DB2 for z/OS.

db2.jcc.planName
Specifies a DB2 for z/OS plan name that is used for the underlying RRSAF CREATE THREAD call when a JDBC or SQLJ connection to a data source is established. Specify this property if you bind plans for your SQLJ programs and for the JDBC driver packages. If you specify this property, do not specify db2.jcc.pkList.

db2.jcc.planName applies only to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS. db2.jcc.planName does not apply to applications that run under CICS or IMS, or to Java stored procedures. The JDBC driver ignores the db2.jcc.planName setting in those cases.

If you do not specify this property or the db2.jcc.pkList property, the IBM Data Server Driver for JDBC and SQLJ uses the db2.jcc.pkList default value of NULLID.*.

If you specify db2.jcc.planName, you need to bind the packages that you produce when you run com.ibm.db2.jcc.DB2Binder into a plan whose name is the value of this property. You also need to bind all SQLJ packages into a plan whose name is the value of this property.

You can override db2.jcc.planName by setting the planName property for a Connection or DataSource object.

The following example specifies a plan name of MYPLAN for the IBM Data Server Driver for JDBC and SQLJ JDBC packages and SQLJ packages.

db2.jcc.planName=MYPLAN

This configuration property applies only to DB2 for z/OS.

db2.jcc.progressiveStreaming or db2.jcc.override.progressiveStreaming
Specifies whether the JDBC driver uses progressive streaming when progressive streaming is supported on the data source.

With progressive streaming, also known as dynamic data format, the data source dynamically determines the most efficient mode in which to return LOB or XML data, based on the size of the LOBs or XML objects.

Valid values are:
1
Use progressive streaming, if the data source supports it.
2
Do not use progressive streaming.
db2.jcc.rollbackOnShutdown
Specifies whether DB2 for z/OS forces a rollback operation and disables further operations on JDBC connections that are in a unit of work during processing of JVM shutdown hooks.

db2.jcc.rollbackOnShutdown applies to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity only.

db2.jcc.rollbackOnShutdown does not apply to the CICS, IMS, stored procedure, or WebSphere® Application Server environments.

Possible values are:

yes or true
The IBM Data Server Driver for JDBC and SQLJ directs DB2 for z/OS to force a rollback operation and disables further operations on JDBC connections that are in a unit of work during processing of JVM shutdown hooks.
Any other value
The IBM Data Server Driver for JDBC and SQLJ takes no action with respect to rollback processing during processing of JVM shutdown hooks. This is the default.

This configuration property applies only to DB2 for z/OS.

db2.jcc.sendCharInputsUTF8
Specifies whether the IBM Data Server Driver for JDBC and SQLJ converts character input data to the CCSID of the DB2 for z/OS database server, or sends the data in UTF-8 encoding for conversion by the database server. db2.jcc.sendCharInputsUTF8 applies to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity to DB2 for z/OS database servers only. If this property is also set at the connection level, the connection-level setting overrides this value.
Possible values are:
no, false, or 2
Specifies that the IBM Data Server Driver for JDBC and SQLJ converts character input data to the target encoding before the data is sent to the DB2 for z/OS database server. This is the default.
yes, true, or 1
Specifies that the IBM Data Server Driver for JDBC and SQLJ sends character input data to the DB2 for z/OS database server in UTF-8 encoding. The data source converts the data from UTF-8 encoding to the target CCSID.

Specify yes, true, or 1 only if conversion to the target CCSID by the SDK for Java causes character conversion problems. The most common problem occurs when you use IBM Data Server Driver for JDBC and SQLJ type 2 connectivity to insert a Unicode line feed character (U+000A) into a table column that has CCSID 37, and then retrieve that data from a non-z/OS client. If the SDK for Java does the conversion during insertion of the character into the column, the line feed character is converted to the EBCDIC new line character X'15'. However, during retrieval, some SDKs for Java on operating systems other than z/OS convert the X'15' character to the Unicode next line character (U+0085) instead of the line feed character (U+000A). The next line character causes unexpected behavior for some XML parsers. If you set db2.jcc.sendCharInputsUTF8 to yes, the DB2 for z/OS database server converts the U+000A character to the EBCDIC line feed character X'25' during insertion into the column, so the character is always retrieved as a line feed character.

Conversion of data to the target CCSID on the data source might cause the IBM Data Server Driver for JDBC and SQLJ to use more memory than conversion by the driver. The driver allocates memory for conversion of character data from the source encoding to the encoding of the data that it sends to the data source. The amount of space that the driver allocates for character data that is sent to a table column is based on the maximum possible length of the data. UTF-8 data can require up to three bytes for each character. Therefore, if the driver sends UTF-8 data to the data source, the driver needs to allocate three times the maximum number of characters in the input data. If the driver does the conversion, and the target CCSID is a single-byte CCSID, the driver needs to allocate only the maximum number of characters in the input data.

For example, any of the following settings for db2.jcc.sendCharInputsUTF8 causes the IBM Data Server Driver for JDBC and SQLJ to convert input character strings to UTF-8, rather than the target encoding, before sending the data to the data source:
db2.jcc.sendCharInputsUTF8=yes
db2.jcc.sendCharInputsUTF8=true
db2.jcc.sendCharInputsUTF8=1

This configuration property applies only to DB2 for z/OS.

db2.jcc.sqljToolsExitJVMOnCompletion
Specifies whether the Java programs that underlie SQLJ tools such as db2sqljcustomize and db2sqljbind issue the System.exit call on return to the calling programs.
Possible values are:
true
Specifies that the Java programs that underlie SQLJ tools issue the System.exit call upon completion. true is the default.
false
Specifies that the Java programs that underlie SQLJ tools do not issue the System.exit call.
db2.jcc.sqljUncustomizedWarningOrException
Specifies the action that the IBM Data Server Driver for JDBC and SQLJ takes when an uncustomized SQLJ application runs. db2.jcc.sqljUncustomizedWarningOrException can have the following values:
0
The IBM Data Server Driver for JDBC and SQLJ does not throw a Warning or Exception when an uncustomized SQLJ application is run. This is the default.
1
The IBM Data Server Driver for JDBC and SQLJ throws a Warning when an uncustomized SQLJ application is run.
2
The IBM Data Server Driver for JDBC and SQLJ throws an Exception when an uncustomized SQLJ application is run.

This configuration property applies only to DB2 for z/OS or DB2 for Linux, UNIX, and Windows.

db2.jcc.ssid
Specifies the DB2 for z/OS subsystem to which applications make connections with IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS.

The db2.jcc.ssid value can be the name of the local DB2 subsystem or a group attachment name or subgroup attachment name.

For example:
db2.jcc.ssid=DB2A

The ssid Connection and DataSource property overrides db2.jcc.ssid.

If you specify a group attachment name or subgroup attachment name, and the DB2 subsystem to which an application is connected fails, the connection terminates. However, when new connections use that group attachment name or subgroup attachment name, DB2 for z/OS uses group attachment or subgroup attachment processing to find an active DB2 subsystem to which to connect.

If you do not specify the db2.jcc.ssid property, the IBM Data Server Driver for JDBC and SQLJ uses the SSID value from the application defaults load module. When you install DB2 for z/OS, an application defaults load module is created in the prefix.SDSNEXIT data set and the prefix.SDSNLOAD data set. Other application defaults load modules might be created in other data sets for selected applications.

The IBM Data Server Driver for JDBC and SQLJ must load an application defaults load module before it can read the SSID value. z/OS searches data sets in the following places, and in the following order, for the application defaults load module:
  1. Job pack area (JPA)
  2. TASKLIB
  3. STEPLIB or JOBLIB
  4. LPA
  5. Libraries in the link list
You need to ensure that if your system has more than one copy of the application defaults load module, z/OS finds the data set that contains the correct copy for the IBM Data Server Driver for JDBC and SQLJ first.

This configuration property applies only to DB2 for z/OS.

db2.jcc.traceDirectory or db2.jcc.override.traceDirectory
Enables the IBM Data Server Driver for JDBC and SQLJ trace for Java driver code, and specifies a directory into which trace information is written. When db2.jcc.override.traceDirectory is specified, trace information for multiple connections on the same DataSource is written to multiple files.
When db2.jcc.override.traceDirectory is specified, a connection is traced to a file named file-name_origin_n.
  • n is the nth connection for a DataSource.
  • If neither db2.jcc.traceFileName nor db2.jcc.override.traceFileName is specified, file-name is traceFile. If db2.jcc.traceFileName or db2.jcc.override.traceFileName is also specified, file-name is the value of db2.jcc.traceFileName or db2.jcc.override.traceFileName.
  • origin indicates the origin of the log writer that is in use. Possible values of origin are:
    cpds
    The log writer for a DB2ConnectionPoolDataSource object.
    driver
    The log writer for a DB2Driver object.
    global
    The log writer for a DB2TraceManager object.
    sds
    The log writer for a DB2SimpleDataSource object.
    xads
    The log writer for a DB2XADataSource object.

The db2.jcc.override.traceDirectory property overrides the traceDirectory property for a Connection or DataSource object.

For example, specifying the following setting for db2.jcc.override.traceDirectory enables tracing of the IBM Data Server Driver for JDBC and SQLJ Java code to files in a directory named /SYSTEM/tmp:
db2.jcc.override.traceDirectory=/SYSTEM/tmp

You should set the trace properties under the direction of IBM Software Support.

db2.jcc.traceLevel or db2.jcc.override.traceLevel
Specifies what to trace.

The db2.jcc.override.traceLevel property overrides the traceLevel property for a Connection or DataSource object.

You specify one or more trace levels by specifying a decimal value. The trace levels are the same as the trace levels that are defined for the traceLevel property on a Connection or DataSource object.

To specify more than one trace level, do an OR (|) operation on the values, and specify the result in decimal in the db2.jcc.traceLevel or db2.jcc.override.traceLevel specification.

For example, suppose that you want to specify TRACE_DRDA_FLOWS and TRACE_CONNECTIONS for db2.jcc.override.traceLevel. TRACE_DRDA_FLOWS has a hexadecimal value of X'40'. TRACE_CONNECTION_CALLS has a hexadecimal value of X'01'. To specify both traces, do a bitwise OR operation on the two values, which results in X'41'. The decimal equivalent is 65, so you specify:
db2.jcc.override.traceLevel=65
db2.jcc.traceFile or db2.jcc.override.traceFile
Enables the IBM Data Server Driver for JDBC and SQLJ trace for Java driver code, and specifies the name on which the trace file names are based.

Specify a fully qualified z/OS UNIX System Services file name for the db2.jcc.override.traceFile property value.

The db2.jcc.override.traceFile property overrides the traceFile property for a Connection or DataSource object.

For example, specifying the following setting for db2.jcc.override.traceFile enables tracing of the IBM Data Server Driver for JDBC and SQLJ Java code to a file named /SYSTEM/tmp/jdbctrace:
db2.jcc.override.traceFile=/SYSTEM/tmp/jdbctrace

You should set the trace properties under the direction of IBM Software Support.

db2.jcc.traceFileAppend or db2.jcc.override.traceFileAppend
Specifies whether to append to or overwrite the file that is specified by the db2.jcc.override.traceFile property. Valid values are true or false. The default is false, which means that the file that is specified by the traceFile property is overwritten.

The db2.jcc.override.traceFileAppend property overrides the traceFileAppend property for a Connection or DataSource object.

For example, specifying the following setting for db2.jcc.override.traceFileAppend causes trace data to be added to the existing trace file:
db2.jcc.override.traceFileAppend=true

You should set the trace properties under the direction of IBM Software Support.

db2.jcc.traceFileCount
Specifies the maximum number of trace files for circular tracing. The IBM Data Server Driver for JDBC and SQLJ uses this property only when db2.jcc.traceOption is set to 1. The default value is 2.

This property does not apply to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS.

You should set the trace properties under the direction of IBM Software Support.

db2.jcc.traceFileSize
Specifies the maximum size of each trace file, for circular tracing. The IBM Data Server Driver for JDBC and SQLJ uses this property only when db2.jcc.traceOption is set to 1. The default value is 10485760 (10 MB).

This property does not apply to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS.

You should set the trace properties under the direction of IBM Software Support.

db2.jcc.traceOption
Specifies the way in which trace data is collected. The data type of this property is int. Possible values are:
0
Specifies that a single trace file is generated, and that there is no limit to the size of the file. This is the default.
1
Specifies that the IBM Data Server Driver for JDBC and SQLJ does circular tracing. Circular tracing is done as follows:
  1. When an application writes its first trace record, the driver creates a file.
  2. The driver writes trace data to the file.
  3. When the size of the file is equal to the value of property db2.jcc.traceFileSize, the driver creates another file.
  4. The driver repeats steps 2 and 3 until the number of files to which data has been written is equal to the value of property db2.jcc.traceFileCount.
  5. The driver writes data to the first trace file, overwriting the existing data.
  6. The driver repeats steps 3 through 5 until the application completes.

The file names for the trace files are the file names that are determined by the db2.jcc.traceFile, db2.jcc.override.traceFile, db2.jcc.traceDirectory, db2.jcc.override.traceDirectory property, appended with .1 for the first file, .2 for the second file, and so on.

This property does not apply to IBM Data Server Driver for JDBC and SQLJ type 2 connectivity on DB2 for z/OS.

You should set the trace properties under the direction of IBM Software Support.

db2.jcc.tracePolling
Indicates whether the IBM Data Server Driver for JDBC and SQLJ polls the global configuration file for changes in trace directives and modifies the trace behavior to match the new trace directives. Possible values are true or false. False is the default.

The IBM Data Server Driver for JDBC and SQLJ modifies the trace behavior at the beginning of the next polling interval after the configuration properties file is changed. If db2.jcc.tracePolling is set to true while an application is running, the trace is enabled, and information about all the PreparedStatement objects that were created by the application before the trace was enabled are dumped to the trace destination.

db2.jcc.tracePolling polls the following global configuration properties:
  • db2.jcc.override.traceLevel
  • db2.jcc.override.traceFile
  • db2.jcc.override.traceDirectory
  • db2.jcc.override.traceFileAppend
db2.jcc.tracePollingInterval
Specifies the interval, in seconds, for polling the IBM Data Server Driver for JDBC and SQLJ global configuration file for changes in trace directives. The property value is a positive integer. The default is 60. For the specified trace polling interval to be used, the db2.jcc.tracePollingInterval property must be set before the driver is loaded and initialized. Changes to db2.jcc.tracePollingInterval after the driver is loaded and initialized have no effect.
db2.jcc.t2zosTraceFile
Enables the IBM Data Server Driver for JDBC and SQLJ trace for C/C++ native driver code for IBM Data Server Driver for JDBC and SQLJ type 2 connectivity, and specifies the name on which the trace file names are based. This property is required for collecting trace data for C/C++ native driver code.

Specify a fully qualified z/OS UNIX System Services file name for the db2.jcct.t2zosTraceFile property value.

For example, specifying the following setting for db2.jcct.t2zosTraceFile enables tracing of the IBM Data Server Driver for JDBC and SQLJ C/C++ native code to a file named /SYSTEM/tmp/jdbctraceNative:
db2.jcc.t2zosTraceFile=/SYSTEM/tmp/jdbctraceNative

You should set the trace properties under the direction of IBM Software Support.

This configuration property applies only to DB2 for z/OS.

db2.jcc.t2zosTraceBufferSize
Specifies the size, in kilobytes, of a trace buffer in virtual storage that is used for tracing the processing that is done by the C/C++ native driver code. This value is also the maximum amount of C/C++ native driver trace information that can be collected.

Specify an integer between 64 (64 KB) and 4096 (4096 KB). The default is 256 (256 KB).

The JDBC driver determines the trace buffer size as shown in the following table:

Specified value (n) Trace buffer size (KB)
<64 64
64<=n<128 64
128<=n<256 128
256<=n<512 256
512<=n<1024 512
1024<=n<2048 1024
2048<=n<4096 2048
n>=4096 4096

db2.jcc.t2zosTraceBufferSize is used only if the db2.jcc.t2zosTraceFile property is set.

Recommendation: To avoid a performance impact, specify a value of 1024 or less.

For example, to set a trace buffer size of 1024 KB, use this setting:

db2.jcc.t2zosTraceBufferSize=1024

You should set the trace properties under the direction of IBM Software Support.

This configuration property applies only to DB2 for z/OS.

db2.jcc.t2zosTraceWrap
Enables or disables wrapping of the SQLJ trace. db2.jcc.t2zosTraceWrap can have one of the following values:
1
Wrap the trace
0
Do not wrap the trace
The default is 1. This parameter is optional. For example:
DB2SQLJ_TRACE_WRAP=0

You should set db2.jcc.t2zosTraceWrap only under the direction of IBM Software Support.

This configuration property applies only to DB2 for z/OS.

db2.jcc.useCcsid420ShapedConverter
Specifies whether Arabic character data that is in EBCDIC CCSID 420 maps to Cp420S encoding.

db2.jcc.useCcsid420ShapedConverter applies only to connections to DB2 for z/OS database servers.

If the value of db2.jcc.useCcsid420ShapedConverter is true, CCSID 420 maps to Cp420S encoding. If the value of db2.jcc.useCcsid420ShapedConverter is false, CCSID 420 maps to Cp420 encoding. false is the default.

This configuration property applies only to DB2 for z/OS.