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.
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.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.sendCharInputsUTF8 | sendCharInputsUTF8 | 3.50, 4.0 | 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:
|
The meanings of the configuration properties are:
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.
To enable this support, set db2.jcc.allowSqljDuplicateStaticQueries to YES or true.
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.
This configuration property applies only to DB2 for z/OS or DB2 for Linux, UNIX, and Windows.
This configuration property applies only to DB2 for z/OS.
Possible values are:
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.
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.
This configuration property applies only to DB2 for z/OS.
db2.jcc.dumpPoolStatisticsOnSchedule and db2.jcc.dumpPoolStatisticsOnScheduleFile must also be set for writing statistics before any statistics are written.
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.
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.
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.
When you specify true, applications might take longer to run because of the additional time that is required for DNS lookup operations.
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 must be set to false if INSERT FROM SELECT statements are executed in a batch. Otherwise, the driver throws a BatchUpdateException.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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:
.-,---------------. 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 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.
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.
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:
This configuration property applies only to DB2 for z/OS.
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.
db2.jcc.sendCharInputsUTF8=yes
db2.jcc.sendCharInputsUTF8=true
db2.jcc.sendCharInputsUTF8=1
This configuration property applies only to DB2 for z/OS.
This configuration property applies only to DB2 for z/OS or DB2 for Linux, UNIX, and Windows.
The db2.jcc.ssid value can be the name of the local DB2 subsystem or a group attachment name or subgroup attachment name.
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.
This configuration property applies only to DB2 for z/OS.
The db2.jcc.override.traceDirectory property overrides the traceDirectory property for a Connection or DataSource object.
db2.jcc.override.traceDirectory=/SYSTEM/tmp
You should set the trace properties under the direction of IBM Software Support.
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.
db2.jcc.override.traceLevel=65
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.
db2.jcc.override.traceFile=/SYSTEM/tmp/jdbctrace
You should set the trace properties under the direction of IBM Software Support.
The db2.jcc.override.traceFileAppend property overrides the traceFileAppend property for a Connection or DataSource object.
db2.jcc.override.traceFileAppend=true
You should set the trace properties under the direction of IBM Software Support.
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.
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.
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.
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.
Specify a fully qualified z/OS UNIX System Services file name for the db2.jcct.t2zosTraceFile property value.
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.
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.
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 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.