Package oracle.jdbc

Interface OracleConnection

    • Field Detail

      • ACCESSMODE_JAVAPROP

        static final byte ACCESSMODE_JAVAPROP
        Bitmask which can be applied to the CONNECTION_PROPERTY_{name}_ACCESSMODE constants defined in this interface.
        Indicates that the driver will read a connection property from a Properties object.
        See Also:
        Constant Field Values
      • ACCESSMODE_SYSTEMPROP

        static final byte ACCESSMODE_SYSTEMPROP
        Bitmask which can be applied to the CONNECTION_PROPERTY_{name}_ACCESSMODE constants defined in this interface.
        Indicates that the driver will read a connection property from the JVM's system properties.
        See Also:
        Constant Field Values
      • ACCESSMODE_BOTH

        static final byte ACCESSMODE_BOTH
        Bitmask which can be applied to the CONNECTION_PROPERTY_{name}_ACCESSMODE constants defined in this interface.
        Indicates that the driver will read a connection property from either a Properties object or the JVM's system properties. If a property is defined in both sources, the value given by the Properties object takes precedence.
        See Also:
        Constant Field Values
      • ACCESSMODE_FILEPROP

        static final byte ACCESSMODE_FILEPROP
        Bitmask which can be applied to the CONNECTION_PROPERTY_{name}_ACCESSMODE constants defined in this interface.
        Indicates that the driver will read a connection property from a properties file.
        See Also:
        CONNECTION_PROPERTY_CONFIG_FILE, Constant Field Values
      • ACCESSMODE_PROVIDER

        static final byte ACCESSMODE_PROVIDER
        Bitmask which can be applied to the CONNECTION_PROPERTY_{name}_ACCESSMODE constants defined in this interface.
        Indicates that the driver will read a connection property from a OracleConfigurationProvider.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RETAIN_V9_BIND_BEHAVIOR

        static final java.lang.String CONNECTION_PROPERTY_RETAIN_V9_BIND_BEHAVIOR
        This is applicable only for the thin driver. Pass "true" to retain the V9 bind behavior for Long and potential long binds. "false" is the default behavior which would emulate the same behavior as in OCI driver.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RETAIN_V9_BIND_BEHAVIOR_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_RETAIN_V9_BIND_BEHAVIOR_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RETAIN_V9_BIND_BEHAVIOR_ACCESSMODE

        static final byte CONNECTION_PROPERTY_RETAIN_V9_BIND_BEHAVIOR_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USER_NAME

        static final java.lang.String CONNECTION_PROPERTY_USER_NAME

        The value of this property is used as the user name when connecting to the database. Note that there are other ways to set the username: in the URL or in a wallet but the value of this property overwrites any other value.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USER_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_USER_NAME_DEFAULT
      • CONNECTION_PROPERTY_USER_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_USER_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NEW_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_NEW_PASSWORD

        This property enables users to set a new password during connection creation if user's password got expired. User can also change the password using this property even if their password is not expired.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NEW_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_NEW_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_NEW_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_NEW_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_APPLICATION_CONTEXT

        static final java.lang.String CONNECTION_PROPERTY_APPLICATION_CONTEXT

        This property sets the application context before the connection is established. The expected format is a semi-colon separated list of: <namespace>.<attribute>=<values>.

        Since:
        23ai

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_APPLICATION_CONTEXT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_APPLICATION_CONTEXT_DEFAULT
      • CONNECTION_PROPERTY_APPLICATION_CONTEXT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_APPLICATION_CONTEXT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DATABASE

        static final java.lang.String CONNECTION_PROPERTY_DATABASE

        This property identifies the database that Oracle JDBC connects to. The value of this property may be any string that can appear after the '@' symbol in a "jdbc:oracle:driver_type:@" URL. This value is referred to as a "database specifier". See section 8.2 Database URLs and Database Specifiers of the Oracle JDBC Developer's Guide for more information about database specifiers.

        If this property is set, the value takes precedence over any database specifier that appears in a jdbc:oracle:driver_type:@database_specifier URL.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DATABASE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DATABASE_DEFAULT
      • CONNECTION_PROPERTY_DATABASE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DATABASE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AUTOCOMMIT

        static final java.lang.String CONNECTION_PROPERTY_AUTOCOMMIT
        This property is used to enable/disable auto-commit mode. By default, the value is set to "true", which enables auto commit. Setting this property to any value other than "true" disables auto commit.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AUTOCOMMIT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_AUTOCOMMIT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AUTOCOMMIT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_AUTOCOMMIT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROTOCOL

        static final java.lang.String CONNECTION_PROPERTY_PROTOCOL
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROTOCOL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PROTOCOL_DEFAULT
      • CONNECTION_PROPERTY_PROTOCOL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PROTOCOL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_STREAM_CHUNK_SIZE

        static final java.lang.String CONNECTION_PROPERTY_STREAM_CHUNK_SIZE
        Deprecated.
        Stream chunk size for input streams. This property is deprecated since 12.1 and is no longer used internally.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_STREAM_CHUNK_SIZE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_STREAM_CHUNK_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_STREAM_CHUNK_SIZE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_STREAM_CHUNK_SIZE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SET_FLOAT_AND_DOUBLE_USE_BINARY

        static final java.lang.String CONNECTION_PROPERTY_SET_FLOAT_AND_DOUBLE_USE_BINARY
        If the value of this property is "true", the JDBC PreparedStatement setFloat and setDouble API's convert float and double values to the internal binary format for BINARY_FLOAT or BINARY_DOUBLE before sending to the database. If the property is not set or set to other than "true", the setFloat and setDouble API's convert float and double values to the internal format for NUMBER. See the JavaDoc for setBinaryFloat in oracle.jdbc.PreparedStatement. Use only for 10g or later databases.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SET_FLOAT_AND_DOUBLE_USE_BINARY_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SET_FLOAT_AND_DOUBLE_USE_BINARY_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SET_FLOAT_AND_DOUBLE_USE_BINARY_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SET_FLOAT_AND_DOUBLE_USE_BINARY_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_TERMINAL

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_TERMINAL
        Use this connection property to change the value that will show up in the "terminal" column of the "v$session" table for this connection. Note that this setting only applies to the thin driver.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_TERMINAL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_TERMINAL_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_TERMINAL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_VSESSION_TERMINAL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_MACHINE

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_MACHINE
        Use this connection property to change the value that will show up in the "machine" column of the "v$session" table for this connection. Note that this setting only applies to the thin driver.

        If you don't specify a value, by default, the driver will attempt to retrieve your host name. If the attempt fails, it will use "jdbcclient".

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_MACHINE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_MACHINE_DEFAULT
      • CONNECTION_PROPERTY_THIN_VSESSION_MACHINE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_VSESSION_MACHINE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_OSUSER

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_OSUSER
        By default, the driver retrieves the OS username from the "user.name" system property which is set by the JVM. You can however override this value by using this connection property (thin driver only).

        The OS username will show up in the "osuser" column of the "v$session" table for this connection.

        If you don't specify any value and if the JVM's "user.name" system property is null, the value will be set to "jdbcuser".

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_OSUSER_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_OSUSER_DEFAULT
      • CONNECTION_PROPERTY_THIN_VSESSION_OSUSER_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_VSESSION_OSUSER_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_PROGRAM

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_PROGRAM
        Use this connection property to change the value that will show up in the "program" column of the "v$session" table for this connection. Note that this setting only applies to the thin driver.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_PROGRAM_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_PROGRAM_DEFAULT
      • CONNECTION_PROPERTY_THIN_VSESSION_PROGRAM_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_VSESSION_PROGRAM_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_PROCESS

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_PROCESS
        Use this connection property to change the value that will show up in the "process" column of the "v$session" table for this connection. Note that this setting only applies to the thin driver.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_PROCESS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_PROCESS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_PROCESS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_VSESSION_PROCESS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_INAME

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_INAME
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_INAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_INAME_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_INAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_VSESSION_INAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_ENAME

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_ENAME
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_VSESSION_ENAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_VSESSION_ENAME_DEFAULT
      • CONNECTION_PROPERTY_THIN_VSESSION_ENAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_VSESSION_ENAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_PROFILE

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_PROFILE
        Deprecated.
        This property no longer has any effect.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_PROFILE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_PROFILE_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_PROFILE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_PROFILE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_EXTERNAL_AUTHENTICATION

        static final java.lang.String CONNECTION_PROPERTY_OCI_EXTERNAL_AUTHENTICATION
        Use this connection property to enable external authentication mechanism such as Kerberos, RADIUS or TCPS for the JDBC-OCI driver. The default value is false. This property must be set to true while using external authentication along with DRCP. While DRCP is not used, setting this property is optional and native driver implementation will try to resolve authentication type automatically.
        Since:
        22c
        See Also:
        CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES, Constant Field Values
      • CONNECTION_PROPERTY_OCI_EXTERNAL_AUTHENTICATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_EXTERNAL_AUTHENTICATION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_EXTERNAL_AUTHENTICATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_EXTERNAL_AUTHENTICATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES
        Use this connection property to turn on the authentication adaptors. The adaptors are "RADIUS", "KERBEROS5", "BEQ" or "TCPS" which is SSL authentication.

        For example, to turn on KERBEROS authentication:

            Properties prop = new Properties();
            prop.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES,
                             "( KERBEROS5 )");  
            prop.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_MUTUAL,
                             "true");
            // Specify where my krb5 configuration file is because JSSE can't find it:
            System.setProperty("java.security.krb5.conf","C:\\WINDOWS\\krb5.ini");
            

        Since 23ai, KERBEROS principal and password can be configured via the user and password properties. JDBC Thin will initialize the KERBEROS context using these values when CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION is set to KERBEROS5.

        Or to turn on RADIUS:

            prop.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES,
                             "( RADIUS)");
            
        Or to turn on RADIUS, KERBEROS and SSL authentication adaptors:
            prop.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES,
                             "( RADIUS, KERBEROS5, TCPS)");
            

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_RADIUS_CHALLENGE_RESPONSE_HANDLER

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_RADIUS_CHALLENGE_RESPONSE_HANDLER
        This property is used to configure fully qualified name of the class that will be used during the Challenge/Response phase of RADIUS authentication. The implementation must provide a public no argument constructor which the Thin driver calls to instansiate the handler. The handler must implement the functional interface java.util.function.Function.

        The byte[] input is the challenge hint text that is used while prompting the user for a response. The text is UTF-8 encoded. The handler is expected to return the response for the challenge as byte[].

        This can also be configured via OracleConnectionBuilder.radiusChallengeResponseHandler(Function). The value configured via OracleConnectionBuilder has higher priority than the value configured through connection properties.


        Example:
              OracleDataSource ods  = new OracleDataSource();
              ods.setURL(url);
              ods.setUser("myRadiusUser");
              ods.setPassword("myRadiusPassword");
              ods.setConnectionProperty(
              OracleConnection.CONNECTION_PROPERTY_THIN_NET_RADIUS_CHALLENGE_RESPONSE_HANDLER,
                    "com.mycompany.RadiusChallengeResponseHandler");
              OracleConnection conn  = (OracleConnection)ods.getConnection();
            
        Example implementation that handles the RADIUS Challenge/Response:
              package com.mycompany;
              import java.util.function.Function;
              import java.nio.charset.StandardCharsets;
           
              public class RadiusChallengeResponseHandler
                 implements Function<byte[], byte[]> {
           
              public byte[] apply(final byte[] hint) {
                // do some processing to calculate the challenge response
                final String response = getChallengeResponse(hint);
                return response.getBytes(StandardCharsets.UTF_8);
              }
            }
            
        Since:
        23ai
        See Also:
        CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES, Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_RADIUS_CHALLENGE_RESPONSE_HANDLER_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_RADIUS_CHALLENGE_RESPONSE_HANDLER_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_RADIUS_CHALLENGE_RESPONSE_HANDLER_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_RADIUS_CHALLENGE_RESPONSE_HANDLER_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_MUTUAL

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_MUTUAL
        To turn on Kerberos mutual authentication, set this property to "true".
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_MUTUAL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_MUTUAL_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_MUTUAL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_MUTUAL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_CC_NAME

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_CC_NAME
        Use this connection property to specify the location of the Kerberos credential cache.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_CC_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_CC_NAME_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_CC_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_CC_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_REALM

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_REALM
        Use this connection property to specify the realm used for Kerberos authentication.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_REALM_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_REALM_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_REALM_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_REALM_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_JAAS_LOGIN_MODULE

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_JAAS_LOGIN_MODULE
        Use this connection property to specify the name of the JAAS login module which will be used for initializing javax.security.auth.login.LoginContext. This property works in conjunction with the JAAS configuration. Please refer JDK documentation to know about configuring the JAAS config file. By default the Thin driver uses com.sun.security.auth.module.Krb5LoginModule as LoginModule and the Kerberos Credential Cache configured via CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_CC_NAME is used for retreiving the TGT. The default value is null. The JAAS configuration is used only if this property is configured with login module name.
        Since:
        23ai
        See Also:
        CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB5_CC_NAME, CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_SERVICES, Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_JAAS_LOGIN_MODULE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_JAAS_LOGIN_MODULE_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_JAAS_LOGIN_MODULE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_AUTHENTICATION_KRB_JAAS_LOGIN_MODULE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_SET_FIPS_MODE

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_SET_FIPS_MODE
        Use this connection property to enable FIPS140-2 mode for native network encryption. The default key pair generation mechanism is not FIPS140-2 compliant and fails to generate a Diffie-Hellman key pair while negotiating the network encryption. Set the value to true to enable FIPS-140-2 mode. The default value is false and FIPS140-2 mode is disabled.
        Since:
        21c
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_SET_FIPS_MODE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_SET_FIPS_MODE_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_SET_FIPS_MODE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_SET_FIPS_MODE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_DEBUG_JDWP

        static final java.lang.String CONNECTION_PROPERTY_THIN_DEBUG_JDWP
        Use this connection property to enable debugging of PL/SQL stored procedures and Java stored procedures over Java Debug Wire Protocol (JDWP).
        The value must contain hostname and portnumber of the JDWP debugger in the following format host=HOST_NAME;port=PORT_NUMBER. Following are some valid examples :
        • host=127.0.0.1;port=8880
        • host=myjdwpserver;port=8002
        The default value is null and JDWP debugging is disabled by default.
        Since:
        23ai
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_DEBUG_JDWP_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_DEBUG_JDWP_DEFAULT
      • CONNECTION_PROPERTY_THIN_DEBUG_JDWP_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_DEBUG_JDWP_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_ALLOW_WEAK_CRYPTO

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_ALLOW_WEAK_CRYPTO

        Starting in release 23ai, the driver can be configured to use strong session keys when Native Network Encryption is used. But this breaks compatibility with older versions of the server which may not have the same capability. An exception with error code 12268 is thrown when the server does not have this capabilty. By default, in order to allow compatibility with such servers, and at the cost of security, this property is set to "true". When this property is configured to "false" then strong session keys are used.

        Since 23ai, the following algorithms are not supported. De-supported encryption algorithms : RC4_40, DES40, DES, RC4_56, RC4_128, 3DES112, 3DES168 and RC4_256. De-supported checksum algorithms : MD5.

        This property can also be configured through URL. The value configured through URL has higher priority than the value configured through connection properties. Please see the below examples to know how to configure this property through URL.


        EzConnectPlus Format:
        jdbc:oracle:thin:@//host:port/servicename?allow_weak_crypto=false
        TNS Long URL Format:
        jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=5521))(CONNECT_DATA= (SERVICE_NAME=servicename))(Security=(ALLOW_WEAK_CRYPTO=false)))
        Since:
        23ai
        See Also:
        CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL, CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES, CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES, CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL, Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_ALLOW_WEAK_CRYPTO_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_ALLOW_WEAK_CRYPTO_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_ALLOW_WEAK_CRYPTO_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_ALLOW_WEAK_CRYPTO_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL
        Use this property to specify the level of security for the encryption service. In order of increasing security the parameter can be (note that the default is "ACCEPTED"):<bt>
        • "REJECTED": Select this value if you do not elect to enable the encryption service, even if required by the other side. In this scenario, this side of the connection specifies that the encryption service is not permitted. If the other side is set to REQUIRED, the connection terminates with error message ORA-12650. If the other side is set to REQUESTED, ACCEPTED, or REJECTED, the connection continues without error and without the encryption service enabled.
        • "ACCEPTED": Select this value to enable the encryption service if required or requested by the other side. In this scenario, this side of the connection does not require the encryption service, but it is enabled if the other side is set to REQUIRED or REQUESTED. If the other side is set to REQUIRED or REQUESTED, and an encryption algorithm match is found, the connection continues without error and with the encryption service enabled. If the other side is set to REQUIRED and no algorithm match is found, the connection terminates with error message ORA-12650. If the other side is set to REQUESTED and no algorithm match is found, or if the other side is set to ACCEPTED or REJECTED, the connection continues without error and without the security service enabled.
        • "REQUESTED": Select this value to enable the encryption service if the other side permits it. In this scenario, this side of the connection specifies that the security service is desired but not required. The security service is enabled if the other side specifies ACCEPTED, REQUESTED, or REQUIRED. There must be a matching algorithm available on the other side--otherwise the service is not enabled. If the other side specifies REQUIRED and there is no matching algorithm, the connection fails.
        • "REQUIRED": Select this value to enable the encryption service or preclude the connection. In this scenario, this side of the connection specifies that the encryption service must be enabled. The connection fails if the other side specifies REJECTED or if there is no compatible algorithm on the other side.
        This property can also be configured through URL. The value configured through URL has higher priority than the value configured through connection properties. Please see the below examples to know how to configure this property through URL.
        EzConnectPlus Format:
        jdbc:oracle:thin:@//host:port/servicename?encryption_client=REQUIRED
        TNS Long URL Format:
        jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=5521))(CONNECT_DATA= (SERVICE_NAME=servicename))(Security=(ENCRYPTION_CLIENT=REQUESTED)))
        See Also:
        CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES, CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL, Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES
        Use this connection property to specify the list of encryption algorithms that you want to activate.

        The supported algorithms are:

        • "AES256": AES 256-bit key
        • "AES192": AES 192-bit key
        • "AES128": AES 128-bit key

        For example, if you require the connection to be encrypted with either AES256 or AES192, you would set the following properties:

            prop.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES,
                             "( AES256, AES192 )");
            prop.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL,
                             "REQUIRED");
            
        This property can also be configured through URL. The value configured through URL has higher priority than the value configured through connection properties. Please see the below examples to know how to configure this property through URL.
        EzConnectPlus Format:
        jdbc:oracle:thin:@//host:port/servicename?encryption_client=required&encryption_types_client=AES128,AES192
        TNS Long URL Format:
        jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=5521))(CONNECT_DATA= (SERVICE_NAME=servicename))(Security=(ENCRYPTION_CLIENT=REQUESTED)(ENCRYPTION_TYPES_CLIENT=AES128, AES192)))

        See Also:
        CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL, CONNECTION_PROPERTY_THIN_NET_ALLOW_WEAK_CRYPTO, Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL
        Use this property to specify the level of security for the integrity service. Please refer CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL to know more about the accepted values and information on each of the values as both of these properties support same set of values. This property can also be configured through URL. The value configured through URL has higher priority than the value configured through the connection properties. Please see the below examples to know how to configure this property through URL.
        EzConnectPlus Format:
        jdbc:oracle:thin:@//host:port/servicename?crypto_checksum_client=required
        TNS Long URL Format:
        jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=5521))(CONNECT_DATA= (SERVICE_NAME=servicename))(Security=(CRYPTO_CHECKSUM_CLIENT=REQUESTED)))
        See Also:
        CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL, CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES, Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES
        Use this connection property to specify the list of integrity algorithms that you want to activate.

        The supported algorithms are:

        • "SHA1"
        • "SHA256"
        • "SHA384"
        • "SHA512"
          • For example, if you require checksumming to be turned on and you want either SHA1, SHA256, SHA384 or SHA512:

                prop.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES,
                                 "( SHA1, SHA256, SHA384 or SHA512 )");
                prop.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL,
                                 "REQUIRED");
                
            This property can also be configured through URL. The value configured through URL has higher priority than the value configured through the connection properties. Please see the below examples to know how to configure this property through URL.
            EzConnectPlus Format:
            jdbc:oracle:thin:@//host:port/servicename?crypto_checksum_client=required&crypto_checksum_types_client=sha256,sha1
            TNS Long URL Format:
            jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=5521))(CONNECT_DATA= (SERVICE_NAME=servicename))(Security=(CRYPTO_CHECKSUM_CLIENT=REQUESTED)(CRYPTO_CHECKSUM_TYPES_CLIENT=SHA256,SHA1)))

        See Also:
        CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL, CONNECTION_PROPERTY_THIN_NET_ALLOW_WEAK_CRYPTO, Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CRYPTO_SEED

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CRYPTO_SEED
        Use this connection property to specify the encryption seed (between 10 and 70 random characters). The encryption seed for the client should not be the same as that for the server. Note that you don't have to specify a seed on the client.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CRYPTO_SEED_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CRYPTO_SEED_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_CRYPTO_SEED_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_CRYPTO_SEED_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_USE_JCE_API

        static final java.lang.String CONNECTION_PROPERTY_THIN_USE_JCE_API
        Deprecated.
        If the value of this property is "true" and Data Encryption service is enabled, then JDK Crypto(JCE) APIs are used for encryption and decryption of the data between the JDBC client and the Oracle Server, otherwise the built-in crypto implementation is used. Since 19.1, the default value is true for the Thin driver. If the JVM version is older than 1.8.0_u151, then you need to change the JVM security policy to allow unlimited key sizes. This is done by downloading and replacing the files found in $JAVA_HOME/lib/security (local_policy.jar and US_export_policy.jar). Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files can be downloaded from Oracle website. When this property value is set to "true" and the Unlimited Crypto Strength is not available then the Thin driver will automatically change this property value to "false" and will use the built-in crypto implementation.
        Since 23ai, this property has no effect and built-in crypto implementation is not available.
        See Also:
        CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES, CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL, CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES, CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL, Constant Field Values
      • CONNECTION_PROPERTY_THIN_USE_JCE_API_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_USE_JCE_API_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_USE_JCE_API_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_USE_JCE_API_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_TCP_NO_DELAY

        static final java.lang.String CONNECTION_PROPERTY_THIN_TCP_NO_DELAY
        If the value of this property is "true", the TCP_NODELAY property is set on the socket when using the Thin driver. See java.net.SocketOptions.TCP_NODELAY. Can be either a system property or a connection property
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_TCP_NO_DELAY_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_TCP_NO_DELAY_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_TCP_NO_DELAY_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_TCP_NO_DELAY_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_READ_TIMEOUT

        static final java.lang.String CONNECTION_PROPERTY_THIN_READ_TIMEOUT

        Configures the socket read timeout (in milliseconds) for the JDBC thin driver.

        Starting in 12.2, this timeout value is set right after the socket establishment and is applicable to all socket read calls including those that happen during the initial NS Protocol negotiation.

        When connecting to ADB-S a value higher than 239000ms has no effect because every 4 minutes ADB-S sends a probe packet for DCD (Dead Connection Detection).

        Since 18.1 this value can be followed by 'ms', 'sec' or 'min' (case not sensitive) to indicate 'milliseconds', 'seconds' or 'minutes'.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_READ_TIMEOUT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_READ_TIMEOUT_DEFAULT
      • CONNECTION_PROPERTY_THIN_READ_TIMEOUT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_READ_TIMEOUT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_OUTBOUND_CONNECT_TIMEOUT

        static final java.lang.String CONNECTION_PROPERTY_THIN_OUTBOUND_CONNECT_TIMEOUT
        The outbound connect timeout controls the time allowed to connect the socket, let the server accept the connection to the desired service, negotiate the NS protocol as well as complete the ASO negotiation. It doesn't include the user authentication.
        The timeout is applicable for each ADDRESS in an ADDRESS_LIST, and each IP address to which a host name is mapped.
        This value is assumed in seconds if no explicit unit is indicated (both in the URL and in the connection's properties).
        Default value is "0" (no timeout).
        This affects only the thin driver.
        This property can also be set through connection URL. The outbound timeout value set in the connection URL overrides the value set using connection properties. Since 18.1 this value can be followed by 'ms', 'sec' or 'min' (case not sensitive) to indicate 'milliseconds', 'seconds' or 'minutes'. Here is an example of how to set the outbound connect timeout to 10 seconds through the URL:
        jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_TIMEOUT=10)
        (ADDRESS_LIST=(ADDRESS=(HOST=myhost)(PORT=5521)(PROTOCOL=tcp)))(CONNECT_DATA=(SERVICE_NAME=myService)))
        Since:
        12.2
        See Also:
        CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT, Constant Field Values
      • CONNECTION_PROPERTY_THIN_OUTBOUND_CONNECT_TIMEOUT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_OUTBOUND_CONNECT_TIMEOUT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_OUTBOUND_CONNECT_TIMEOUT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_OUTBOUND_CONNECT_TIMEOUT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT
        The connect timeout controls how much time is allowed to connect the socket to the database. Successfully connecting the socket doesn't necessarily mean that the database service is up but it means that the listener is accepting connections.
        This value is assumed in seconds if set in the URL with no explicit units and in milliseconds if set in the connection's properties.
        Starting in 23.6, the default value was changed from "0" (no timeout) to "20000" (20 seconds). This affects only the thin driver. The connect timeout can also be set through the connection URL using TRANSPORT_CONNECT_TIMEOUT like in the example below. The value set in the URL overrides the value set in this property.
        Since 18.1 this value can be followed by 'ms', 'sec' or 'min' (case not sensitive) to indicate 'milliseconds', 'seconds' or 'minutes'.
        Here is an example of how to set the connect timeout to 5 seconds through the URL:
        jdbc:oracle:thin:@(DESCRIPTION=(TRANSPORT_CONNECT_TIMEOUT=5)
        (ADDRESS_LIST=(ADDRESS=(HOST=myhost)(PORT=5521)(PROTOCOL=tcp)))(CONNECT_DATA=(SERVICE_NAME=myService)))
        See Also:
        CONNECTION_PROPERTY_THIN_OUTBOUND_CONNECT_TIMEOUT, Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_DISABLE_OUT_OF_BAND_BREAK

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_DISABLE_OUT_OF_BAND_BREAK
        Thin uses out of band breaks by default from 11g onwards. If the user prefers to use Inband breaks instead of Out of Band ones then this property could be set to true.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_DISABLE_OUT_OF_BAND_BREAK_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_DISABLE_OUT_OF_BAND_BREAK_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_DISABLE_OUT_OF_BAND_BREAK_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_DISABLE_OUT_OF_BAND_BREAK_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_USE_ZERO_COPY_IO

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_USE_ZERO_COPY_IO
        The thin driver uses the zero-copy IO codepath for SecureFile Lobs by default from 11gR2 onwards. To use the regular codepath, set this property to "false".
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_USE_ZERO_COPY_IO_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_USE_ZERO_COPY_IO_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_USE_ZERO_COPY_IO_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_USE_ZERO_COPY_IO_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_1900_AS_YEAR_FOR_TIME

        static final java.lang.String CONNECTION_PROPERTY_USE_1900_AS_YEAR_FOR_TIME
        setTime used to set the date component to 01 Jan, 1900 by default in earlier versions (version < 10g). However, this changed after 10.1 where the time date component in the time was also honored by Jdbc. This flag is introduced to retain the old behavior (as in 9.2)
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_1900_AS_YEAR_FOR_TIME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_USE_1900_AS_YEAR_FOR_TIME_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_1900_AS_YEAR_FOR_TIME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_USE_1900_AS_YEAR_FOR_TIME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TIMESTAMPTZ_IN_GMT

        static final java.lang.String CONNECTION_PROPERTY_TIMESTAMPTZ_IN_GMT
        Obtain TIMESTAMP WITH TIME ZONE value in GMT than adjusting the same to local time zone. default is true.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TIMESTAMPTZ_IN_GMT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TIMESTAMPTZ_IN_GMT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TIMESTAMPTZ_IN_GMT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TIMESTAMPTZ_IN_GMT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TIMEZONE_AS_REGION

        static final java.lang.String CONNECTION_PROPERTY_TIMEZONE_AS_REGION
        Use JVM default timezone as specified rather than convert to a GMT offset. Default is true.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TIMEZONE_AS_REGION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TIMEZONE_AS_REGION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TIMEZONE_AS_REGION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TIMEZONE_AS_REGION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_ALIAS

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_ALIAS
        When a keystore (either wallet or jks file) contains multiple certificates, this property can be used to specify the alias name of the certificate to be used by the driver during the client authentication part of the SSL handshake. Starting in 23ai, this can also be configured via the connection URL using the SECURITY parameter SSL_CERTIFICATE_ALIAS.
        The value set using the URL has higher precedence over the value set using connection property. This property can also be set using EZConnectPlus alias ssl_certificate_alias.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_ALIAS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_ALIAS_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_ALIAS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_ALIAS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_THUMBPRINT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_THUMBPRINT
        When a keystore (either wallet or jks file) contains multiple certificates, this property can be used to specify the thumbprint of the certificate to be used by the driver during the client authentication part of the SSL handshake. This can also be configured via the connection URL using the SECURITY parameter SSL_CERTIFICATE_THUMBPRINT.
        The value set using the URL has higher precedence over the value set using connection property. This property can also be set using EZConnectPlus alias ssl_certificate_thumbprint. Hashing algorithm can be prepended to thumbprint. If no algorithm configured then SHA-1 is used by default.
            Examples :
                 SHA1:CD:C6:8B:0D:36:FE:20:0E:7F:86:5F:94:0B:4D:EC:EE:1B:C0:D1:09
                 CD:C6:8B:0D:36:FE:20:0E:7F:86:5F:94:0B:4D:EC:EE:1B:C0:D1:09
                 SHA1:CDC68B0D36FE200E7F865F940B4DECEE1BC0D109
                 CDC68B0D36FE200E7F865F940B4DECEE1BC0D109
            
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_THUMBPRINT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_THUMBPRINT_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_THUMBPRINT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_CERTIFICATE_THUMBPRINT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_SERVER_DN_MATCH

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_SERVER_DN_MATCH
        Use this connection property to enable or disable the authentication of the server during the SSL handshake. Authenticating the server means that the driver will verify that the Distinguished Name (DN) of the server's certificate matches the one that's specified either in the connection string using "ssl_server_cert_dn" or through the connection property "oracle.net.ssl_server_cert_dn". Starting in 18.0, the driver will automatically authenticate the server if its DN is specified. You can use this property to disable authentication by setting the value to "false". Starting in 23ai, this can also be configured via the connection URL using the SECURITY parameter SSL_SERVER_DN_MATCH.
        The value set using the URL has higher precedence over the value set using connection property. This property can also be set using EZConnectPlus alias ssl_server_dn_match.
        See Also:
        CONNECTION_PROPERTY_THIN_SSL_SERVER_CERT_DN, Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_SERVER_DN_MATCH_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_SERVER_DN_MATCH_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_SERVER_DN_MATCH_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_SERVER_DN_MATCH_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_SERVER_CERT_DN

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_SERVER_CERT_DN
        Use this connection property to specify the distinguished name (DN) of the server used during the SSL handshake to authenticate the server. This value can also be configured in the URL using the parameter "ssl_server_cert_dn". The value set in the URL overrides the value set in this property.
        Since:
        18.0
        See Also:
        CONNECTION_PROPERTY_THIN_SSL_SERVER_DN_MATCH, Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_SERVER_CERT_DN_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_SERVER_CERT_DN_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_SERVER_CERT_DN_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_SERVER_CERT_DN_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_ALLOW_WEAK_DN_MATCH

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_ALLOW_WEAK_DN_MATCH
        Use this connection property to enable or disable the authentication of the server during the SSL handshake using the service name specified in the connection string. Also when this property is set to true the DN is verified only after establishing NS Session, otherwise the DN is verified after every SSL handshake. This can also be configured via the connection URL using the SECURITY parameter SSL_ALLOW_WEAK_DN_MATCH.
        By default, weak dn match is disabled. Set the value to true to enable it.
        The value set using the URL has higher precedence over the value set using connection property. This property can also be set using EZConnectPlus alias ssl_allow_weak_dn_match.
        Since:
        23ai
        See Also:
        CONNECTION_PROPERTY_THIN_SSL_SERVER_DN_MATCH, CONNECTION_PROPERTY_THIN_SSL_SERVER_CERT_DN, Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_ALLOW_WEAK_DN_MATCH_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_ALLOW_WEAK_DN_MATCH_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_ALLOW_WEAK_DN_MATCH_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_ALLOW_WEAK_DN_MATCH_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_VERSION

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_VERSION
        Sets the SSL version which will be used for SSL protocol negotiation.
        This is an optional property. By default the JDBC thin driver uses all the protocols supported by JVM out of which SSLv3 and SSLv2Hello are excluded since they are not supported by the Oracle Database starting in 12.2.
        Either specify a comma separated list of protocol versions enclosed within a curly braces and the list must include at least one protocol version enabled for the database or specify the valid values in the given format. Following are the valid values and the corresponding protocol versions used during negotiation.
        "1.2" - TLSv1.2
        "1.3" - TLSv1.3
        "1.3 or 1.2" - TLSv1.3 or TLSv1.2
        Since 23ai, SSL version can also be configured via the connection URL using the SECURITY parameter SSL_VERSION.
        The value set using the URL has higher precedence over the value set using connection property.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_VERSION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_VERSION_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_VERSION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_VERSION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CIPHER_SUITES

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_CIPHER_SUITES

        Specify a comma separated list of cipher suites to enable for TLS communications with a database. The list must include at least one cipher suite that is also enabled for the database. If the driver and the database do not share a common cipher, then connection establishment will result in a TLS handshake failure.

        Note that the standard list of cipher suite names may be found in the JSSE Cipher Suite Names section of the Java Cryptography Architecture Standard Algorithm Name Documentation. Providers may support cipher suite names not found in this list or might not use the recommended name for a certain cipher suite.

        If no value is set for this property, the driver will use the set of cipher suites which your JSSE Security Provider has enabled by default.

        This property is only supported by the jdbc:oracle:thin driver. This property can also be configured through the EZConnect Plus URL format using the parameter SSL_CIPHERS. Since 26.1, this property can also be configured through TNS URL format using SSL_CIPHER_SUITES parameter under SECURITY section.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CIPHER_SUITES_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_CIPHER_SUITES_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_CIPHER_SUITES_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_CIPHER_SUITES_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORE_DEFAULT
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORETYPE

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORETYPE

        Specify the format of a key store file specified by CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORE. Examples of commonly used formats are "SSO", "PKCS12", and "JKS".

        This property has no effect if CONNECTION_PROPERTY_WALLET_LOCATION has also been set.

        If this property is not set, the JDBC driver will attempt to automatically recognize the key store type based on the file extension of the key store.

        Automatic Type Recognition
        Recognized Type File Extension(s)
        SSO .sso
        PKCS12 .p12 or .pfx
        JKS .jks
        For example, if the key store file is named "MyKeyStore.jks", and a type is not specified using this property, then the type is automatically recognized as JKS.

        This property is only supported by the jdbc:oracle:thin driver.

        See Also:
        CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORE, Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORETYPE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORETYPE_DEFAULT
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORETYPE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORETYPE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTOREPASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTOREPASSWORD_DEFAULT
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTOREPASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTOREPASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE

        Specify the file system path of a trust store file which contains certificate authorities that can be trusted when authenticating a database's certificate.

        If no value is set for this property, the driver will use the cacerts file included with your JDK installation.

        If a database's certificate can not be authenticated, then connection establishment will result in a TLS handshake failure. The failure message may describe a problem with building or finding a verification path.

        This property has no effect if CONNECTION_PROPERTY_WALLET_LOCATION has also been set.

        This property is only supported by the jdbc:oracle:thin driver.

        See Also:
        CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORETYPE, CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTOREPASSWORD, Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE_DEFAULT
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORETYPE

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORETYPE

        Specify the format of a trust store file specified by CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE. Examples of commonly used formats are "SSO", "PKCS12", and "JKS".

        This property has no effect if CONNECTION_PROPERTY_WALLET_LOCATION has also been set.

        If this property is not set, the JDBC driver will attempt to automatically recognize the trust store type based on the file extension of the trust store.

        Automatic Type Recognition
        Recognized Type File Extension(s)
        SSO .sso
        PKCS12 .p12 or .pfx
        JKS .jks
        For example, if the trust store file is named "MyTrustStore.jks", and a type is not specified using this property, then the type is automatically recognized as JKS.

        This property is only supported by the jdbc:oracle:thin driver.

        See Also:
        CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE, Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORETYPE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORETYPE_DEFAULT
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORETYPE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORETYPE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTOREPASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTOREPASSWORD_DEFAULT
      • CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTOREPASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTOREPASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_KEYMANAGERFACTORY_ALGORITHM

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_KEYMANAGERFACTORY_ALGORITHM

        Specify the algorithm to use when managing the key meterial of the key store file specified by CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORE.

        If this property is not set, the JDBC driver will use your JDK's default algorithm, as returned by KeyManagerFactory.getDefaultAlgorithm().

        This property is only supported by the jdbc:oracle:thin driver.

        See Also:
        CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_KEYSTORE, Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_KEYMANAGERFACTORY_ALGORITHM_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_KEYMANAGERFACTORY_ALGORITHM_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_KEYMANAGERFACTORY_ALGORITHM_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_KEYMANAGERFACTORY_ALGORITHM_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_TRUSTMANAGERFACTORY_ALGORITHM_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_TRUSTMANAGERFACTORY_ALGORITHM_DEFAULT
      • CONNECTION_PROPERTY_THIN_SSL_TRUSTMANAGERFACTORY_ALGORITHM_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_TRUSTMANAGERFACTORY_ALGORITHM_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_OLDSYNTAX

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_OLDSYNTAX
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_OLDSYNTAX_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_OLDSYNTAX_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_OLDSYNTAX_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_OLDSYNTAX_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_JNDI_LDAP_CONNECT_TIMEOUT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_JNDI_LDAP_CONNECT_TIMEOUT_DEFAULT
      • CONNECTION_PROPERTY_THIN_JNDI_LDAP_CONNECT_TIMEOUT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_JNDI_LDAP_CONNECT_TIMEOUT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_JNDI_LDAP_READ_TIMEOUT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_JNDI_LDAP_READ_TIMEOUT_DEFAULT
      • CONNECTION_PROPERTY_THIN_JNDI_LDAP_READ_TIMEOUT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_JNDI_LDAP_READ_TIMEOUT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WALLET_LOCATION

        static final java.lang.String CONNECTION_PROPERTY_WALLET_LOCATION
        Use this property to specify the wallet location. The driver will use this wallet to:
        • Retrieve the username and password which can be stored in a wallet. The driver attempts to retrieve the username and password from the wallet unless they are specified in the JDBC URL or in the properties (in order, it will look in the properties first, then in the URL and then in the wallet). The "mkstore" utility can be used to store the username and password in an existing wallet. For example, if the wallet is in the "client_wallet" directory: mkstore -wrl ./client_wallet -createCredential \(DESCRIPTION=\(ADDRESS=\(PROTOCOL=tcp\)\(HOST=servername\)\( PORT=5560\)\)\(CONNECT_DATA=\(SERVICE_NAME=service_name\)\)\) scott tiger
        • Create an SSL connection if the TCPS protocol is enabled. The wallet is used for both the truststore and the keystore and overwrites the JSSE properties.

        The wallet location can be set in three formats:

        • "file:/path/ewallet.sso" or "file:/path/cwallet.p12" or "file:/path/to/directory/"
        • (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path/to/directory)))
        • "data:;base64,<Base64 representation of the bytes in cwallet.sso>"

        This property can also be configured through EZConnectPlus alias wallet_location and TNS URL parameters WALLET_LOCATION or MY_WALLET_DIRECTORY. The value configured in the URL has higher priority over the value configured over connection properties.
        Please see the below examples.
        EzConnectPlus Format:
        jdbc:oracle:thin:@tcps://host:port/servicename?wallet_location=/mywallets/cwallet.sso
        For setting base64 value of cwallet.sso:
        jdbc:oracle:thin:@tcps://host:port/servicename?wallet_location=data:;base64,bGlnaHQgd29yaw==
        TNS Long URL Format:
        jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=5521))(CONNECT_DATA= (SERVICE_NAME=servicename))(SECURITY=(WALLET_LOCATION=/mywallets/cwallet.sso)))
        Incase of One-Way TLS, to use the default truststore the wallet location can be configured to a special value SYSTEM in the URL and the wallet location value specified via connection properties can be used to retrieve username and password for authenticating to the Oracle Database.

        Note that if you don't use SSO wallets but PKCS12 wallets, you must provide the wallet password through the oracle.net.wallet_password property.

        A wallet located by this property may store credentials for an Azure service principal. When CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "AZURE_SERVICE_PRINCIPAL", a username is interpreted as a client id, and a password is interpreted as a client secret.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WALLET_LOCATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_WALLET_LOCATION_DEFAULT
      • CONNECTION_PROPERTY_WALLET_LOCATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_WALLET_LOCATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WALLET_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_WALLET_PASSWORD
        Use this property to set the wallet password which is only required if you don't enable enable auto-login in the wallet. In this case "ewallet.p12" will be used instead of "cwallet.sso".
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WALLET_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_WALLET_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_WALLET_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_WALLET_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PEM_PRIVATE_KEY_INDEX

        static final java.lang.String CONNECTION_PROPERTY_PEM_PRIVATE_KEY_INDEX
        Use this property to specify which private key to use in a PEM file. By default, the driver will use the first private key it finds, unless a different index is specified in this connection property.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PEM_PRIVATE_KEY_INDEX_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PEM_PRIVATE_KEY_INDEX_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PEM_PRIVATE_KEY_INDEX_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PEM_PRIVATE_KEY_INDEX_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CONTEXT_CACHE_SIZE

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_CONTEXT_CACHE_SIZE
        Use this property to configure the maximum number of SSLContext instances that can be cached in SSLContextCache. An SSLContext is cached to improve performance and to achieve the TLS session resumption. The SSLContextCache is a singleton instance and is used across all the connection instances. When a connection requires an SSLContext for establishing a TLS session with the Oracle Database, it queries the SSLContextCache. If an SSLContext exists for an identical TLS configuration, then it is used. Otherwise a new SSLContext instance is created, cached and returned. A cached SSLContext instance is invalidated if its keystore / truststore file is modified or its provider is removed. When the SSLContextCache becomes full, the least recently used SSLContext instance is removed before adding a new SSLContext instance to the cache. The default maximum cache size is 15 and can be tuned using this property. If this property is set to 0 then SSLContextCache is disabled.
        Each SSLContext instance caches the SSLSessions created using it. The cached sessions are used during TLS session resumption. By default JDK implementation does not have any limit on the maximum number of sessions that can be cached. But this can be optimised using the system property javax.net.ssl.sessionCacheSize.
        Since:
        26.1
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CONTEXT_CACHE_SIZE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_SSL_CONTEXT_CACHE_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_SSL_CONTEXT_CACHE_SIZE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_SSL_CONTEXT_CACHE_SIZE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_CIPHER_SUITES

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_CIPHER_SUITES
        Use this property to specify the set of cipher suites to be used while SSL negotiation with LDAP server. Multiple cipher suite names can be seperated by comma. This is an optional property and by default the JDBC Thin driver uses all the cipher suites supported by the JVM.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_CIPHER_SUITES_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_CIPHER_SUITES_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_CIPHER_SUITES_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_CIPHER_SUITES_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_VERSIONS

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_VERSIONS
        Use this property to specify the valid SSL protocol version(s) used while SSL negotiation with LDAP Server. Multiple protocol versions can be seperated by comma. The default value is null. The valid protocol versions are
        TLSv1.2
        TLSv1.1
        TLSv1
        SSLv3
        SSLv2Hello
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_VERSIONS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_VERSIONS_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_VERSIONS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_VERSIONS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_TYPE

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_TYPE
        Use this property to specify type of the configured KeyStore file to be used while SSL negotiation with LDAP Server. This is an optional property and the JDBC Thin driver will try to resolve the key store type automatically using the file extension. JVM's default KeyStoreType is used if the type is not configured and the driver is not able to resolve the type automatically.
        See Also:
        CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE, Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_TYPE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_TYPE_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_TYPE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_TYPE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_PASSWORD
        This property is used to specify the password for the KeyStore file which will be used while SSL negotiation with LDAP server. The default value is null.
        See Also:
        CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE, Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYSTORE_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYMANAGER_FACTORY_ALGORITHM

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYMANAGER_FACTORY_ALGORITHM
        Use this property to override the default algorithm used by KeyManagerFactory. The default value is null.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYMANAGER_FACTORY_ALGORITHM_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYMANAGER_FACTORY_ALGORITHM_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYMANAGER_FACTORY_ALGORITHM_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_KEYMANAGER_FACTORY_ALGORITHM_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_TYPE

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_TYPE
        Use this property to specify type of the configured TrustStore file to be used while SSL negotiation with LDAP Server. This is an optional property and the JDBC Thin driver will try to resolve the trust store type automatically using the file extension. JVM's default KeyStoreType is used if the type is not configured and the driver is not able to resolve the type automatically.
        See Also:
        CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE, Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_TYPE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_TYPE_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_TYPE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_TYPE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_PASSWORD
        This property is used to specify the password for the TrustStore file which will be used while SSL negotiation with LDAP server. The default value is null.
        See Also:
        CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE, Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTSTORE_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTMANAGER_FACTORY_ALGORITHM

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTMANAGER_FACTORY_ALGORITHM
        Use this property to override the default algorithm used by TrustManagerFactory. The default value is null.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTMANAGER_FACTORY_ALGORITHM_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTMANAGER_FACTORY_ALGORITHM_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTMANAGER_FACTORY_ALGORITHM_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_TRUSTMANAGER_FACTORY_ALGORITHM_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_LOCATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_LOCATION_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_LOCATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_LOCATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_PASSWORD
        Use this property to specify the password of the wallet file which will be used while SSL negotiation with LDAP server. The default value is null and no password is required for accessing the wallet.
        Since:
        21c
        See Also:
        CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_LOCATION, Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_WALLET_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_AUTHENTICATION

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SECURITY_AUTHENTICATION
        Specifies the authentication mechanism to be used by the LDAP service provider in the JDK.
        This can be one of the following strings: none or simple. The default value is none and LDAP authentication is disabled. If it is configured with the value simple then the LDAP Server authentication details must to be set through either wallet secret store or connection properties.
        Since:
        21c
        See Also:
        CONNECTION_PROPERTY_THIN_LDAP_SECURITY_PRINCIPAL, CONNECTION_PROPERTY_THIN_LDAP_SECURITY_CREDENTIALS, Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_AUTHENTICATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SECURITY_AUTHENTICATION_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_AUTHENTICATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SECURITY_AUTHENTICATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_PRINCIPAL

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SECURITY_PRINCIPAL
        Use this property to specify the value of the username(DN) which will be used while authenticating with the LDAP server.
        The default value is null. This property can also be configured via wallet secret store entry oracle.ldap.client.dn. The value configured in connection property has higher priority over the value configured in the wallet secret store. This property is used only when the LDAP authentication is set to simple.
        Since:
        21c
        See Also:
        CONNECTION_PROPERTY_THIN_LDAP_SECURITY_AUTHENTICATION, CONNECTION_PROPERTY_THIN_LDAP_SECURITY_CREDENTIALS, Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_PRINCIPAL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SECURITY_PRINCIPAL_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_PRINCIPAL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SECURITY_PRINCIPAL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_CREDENTIALS

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SECURITY_CREDENTIALS
        Use this property to configure the password which will be used while authenticating with the LDAP server.
        The default value is null. This property can also be configured via wallet secret store entry oracle.ldap.client.password. The value configured in connection property has higher priority over the value configured in the wallet secret store. This property is used only when the LDAP authentication is set to simple.
        Since:
        21c
        See Also:
        CONNECTION_PROPERTY_THIN_LDAP_SECURITY_AUTHENTICATION, CONNECTION_PROPERTY_THIN_LDAP_SECURITY_PRINCIPAL, Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_CREDENTIALS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SECURITY_CREDENTIALS_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SECURITY_CREDENTIALS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SECURITY_CREDENTIALS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_CONTEXT_PROTOCOL

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_CONTEXT_PROTOCOL

        Specifies a protocol name for the driver to use when obtaining an instance of SSLContext from SSLContext.getInstance(String) for a TLS enabled LDAP connection.

        This property has no effect on which versions of SSL or TLS will be accepted during handshakes with the LDAP server. To configure the set of protocol versions accepted during handshakes, use CONNECTION_PROPERTY_THIN_LDAP_SSL_VERSIONS.

        If this property is not specified, the driver will use "TLS" by default.

        This property is only supported by the Oracle JDBC Thin driver (ie: jdbc:oracle:thin).

        Since:
        21c
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_CONTEXT_PROTOCOL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_LDAP_SSL_CONTEXT_PROTOCOL_DEFAULT
      • CONNECTION_PROPERTY_THIN_LDAP_SSL_CONTEXT_PROTOCOL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_LDAP_SSL_CONTEXT_PROTOCOL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROXY_CLIENT_NAME

        static final java.lang.String CONNECTION_PROPERTY_PROXY_CLIENT_NAME
        The value of this property is used to specify the name of the proxy client during proxy authentication.

        For example if a database user "proxyclient" is setup to connect through another user called "proxy", then you would set the value of this property to "proxyclient".

        Note that this connection property can be used to obtain a proxy client connection from scratch and in this model there is only one database session involved instead of two when you first create a regular connection as "proxy" and then call openProxySession(...) to obtain a proxy client session. This is called the single-session proxy model. This property is only supported for connections to database versions of 10.2 and higher. There is no support for the single-session proxy model in earlier database versions.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROXY_CLIENT_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PROXY_CLIENT_NAME_DEFAULT
      • CONNECTION_PROPERTY_PROXY_CLIENT_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PROXY_CLIENT_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_USE_NIO

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_USE_NIO
        In case of Jdbc-OCI drivers the data is copied from C layer to Java using Jni array copy api. Alternatively by setting this property to "true" the user can instruct the driver to copy data using NIO. Note that the feature would enabled if the underlying JVM supports NIO in JNI layer. The flag is turned off by default (set to false).
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_USE_NIO_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_USE_NIO_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_USE_NIO_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DEFAULT_USE_NIO_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_HTTPS_PROXY_HOST

        static final java.lang.String CONNECTION_PROPERTY_THIN_HTTPS_PROXY_HOST
        Use this property to set the hostname or address of the https proxy server. This can also be set via the URL. The value set through the URL has higher priority than the value set using this property. Here is an example of how to set the proxy host name through the URL:
        jdbc:oracle:thin:@(DESCRIPTION=
        (ADDRESS_LIST= (ADDRESS=(HTTPS_PROXY=myproxyserver)(HTTPS_PROXY_PORT=8080)(HOST=myhost)(PORT=5521)(PROTOCOL=tcp))) (CONNECT_DATA=(SERVICE_NAME=myService)))
        Since:
        19.3
        See Also:
        CONNECTION_PROPERTY_THIN_HTTPS_PROXY_PORT, Constant Field Values
      • CONNECTION_PROPERTY_THIN_HTTPS_PROXY_HOST_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_HTTPS_PROXY_HOST_DEFAULT
      • CONNECTION_PROPERTY_THIN_HTTPS_PROXY_HOST_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_HTTPS_PROXY_HOST_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_HTTPS_PROXY_PORT

        static final java.lang.String CONNECTION_PROPERTY_THIN_HTTPS_PROXY_PORT
        Use this property to set the port of the https proxy server. This can also be set via the URL. The value set through the URL has higher priority than the value set using this property. Here is an example of how to set the proxy port through the URL:
        jdbc:oracle:thin:@(DESCRIPTION=
        (ADDRESS_LIST= (ADDRESS=(HTTPS_PROXY=myproxyserver)(HTTPS_PROXY_PORT=8080)(HOST=myhost)(PORT=5521)(PROTOCOL=tcp))) (CONNECT_DATA=(SERVICE_NAME=myService)))
        Since:
        19.3
        See Also:
        CONNECTION_PROPERTY_THIN_HTTPS_PROXY_HOST, Constant Field Values
      • CONNECTION_PROPERTY_THIN_HTTPS_PROXY_PORT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_HTTPS_PROXY_PORT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_HTTPS_PROXY_PORT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_HTTPS_PROXY_PORT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_LOCAL_HOST_NAME

        static final java.lang.String CONNECTION_PROPERTY_LOCAL_HOST_NAME
        The property is used to set the value of the local host name. The default value is InetAddress.getLocalHost().getHostName(). If this does not exists, then the value is set to "__jdbc__". This value shows up in the connect data of the connect packet in the listener logs.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_LOCAL_HOST_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_LOCAL_HOST_NAME_DEFAULT
      • CONNECTION_PROPERTY_LOCAL_HOST_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_LOCAL_HOST_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CONNECTIONID_PREFIX

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CONNECTIONID_PREFIX
        This property oracle.net.connectionIdPrefix can be used to customize the first 8 characters of the Net connection id that's sent to the listener during connection establishment for tracing purposes. Its value is a 8 character long string (can contain only alphabets, numbers and _). For example the value can be set to App_231 (which contains only supported characters) to identify connections coming from a particular application.
        Starting in 23ai, this can also be configured via the connection URL using the CONNECT_DATA parameter CONNECTION_ID_PREFIX.
        The value set using the connection property has higher precedence over the value set using URL. This property can also be set using EZConnectPlus alias connection_id_prefix.
        Since:
        21c
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_NET_CONNECTIONID_PREFIX_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_NET_CONNECTIONID_PREFIX_DEFAULT
      • CONNECTION_PROPERTY_THIN_NET_CONNECTIONID_PREFIX_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_NET_CONNECTIONID_PREFIX_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_DRIVER_CHARSET

        static final java.lang.String CONNECTION_PROPERTY_OCI_DRIVER_CHARSET
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_DRIVER_CHARSET_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_DRIVER_CHARSET_DEFAULT
      • CONNECTION_PROPERTY_OCI_DRIVER_CHARSET_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_DRIVER_CHARSET_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_EDITION_NAME

        static final java.lang.String CONNECTION_PROPERTY_EDITION_NAME
        This connection property can be used to specify a name for the "session edition". The value is sent to the server at connection time.

        The following SQL query:

        SELECT sys_context('USERENV', 'CURRENT_EDITION_NAME') 
            FROM dual
        will return the same value.

        Note that this property can also be set as a system property.

        By default, if you don't set this property, the "session edition" will be set to the database default edition (for example "ORA$BASE").

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_EDITION_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_EDITION_NAME_DEFAULT
      • CONNECTION_PROPERTY_EDITION_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_EDITION_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_INTERNAL_LOGON

        static final java.lang.String CONNECTION_PROPERTY_INTERNAL_LOGON
        The value of this property is used as the user name when performing an internal logon. Usually this will be "SYS" or "SYSDBA".

        As of 12.1 server and driver, "SYSBACKUP", "SYSDG" and "SYSKM" are also supported.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_INTERNAL_LOGON_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_INTERNAL_LOGON_DEFAULT
      • CONNECTION_PROPERTY_INTERNAL_LOGON_ACCESSMODE

        static final byte CONNECTION_PROPERTY_INTERNAL_LOGON_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CREATE_DESCRIPTOR_USE_CURRENT_SCHEMA_FOR_SCHEMA_NAME

        static final java.lang.String CONNECTION_PROPERTY_CREATE_DESCRIPTOR_USE_CURRENT_SCHEMA_FOR_SCHEMA_NAME
        The user has to provide fully qualified ADT name ([username].[adt name]) for all ADT operations. However, if the user does not provide fully qualified name, the user name provided during login is appended to the ADT name to obtain fully qualified name. This is also the behavior when this flag is set to false.

        The user also has an option to append the CURRENT_USER value to the ADT name to obtain fully qualified name by setting this property to true. Note that it takes a network round trip to fetch the CURRENT_SCHEMA value.

        The default value of this flag is false which means that the driver appends the user name used to login as the user name to append to the ADT name.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CREATE_DESCRIPTOR_USE_CURRENT_SCHEMA_FOR_SCHEMA_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CREATE_DESCRIPTOR_USE_CURRENT_SCHEMA_FOR_SCHEMA_NAME_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CREATE_DESCRIPTOR_USE_CURRENT_SCHEMA_FOR_SCHEMA_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CREATE_DESCRIPTOR_USE_CURRENT_SCHEMA_FOR_SCHEMA_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_SVC_CTX_HANDLE

        static final java.lang.String CONNECTION_PROPERTY_OCI_SVC_CTX_HANDLE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_SVC_CTX_HANDLE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_SVC_CTX_HANDLE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_SVC_CTX_HANDLE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_SVC_CTX_HANDLE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_ENV_HANDLE

        static final java.lang.String CONNECTION_PROPERTY_OCI_ENV_HANDLE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_ENV_HANDLE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_ENV_HANDLE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_ENV_HANDLE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_ENV_HANDLE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_ERR_HANDLE

        static final java.lang.String CONNECTION_PROPERTY_OCI_ERR_HANDLE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_ERR_HANDLE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_ERR_HANDLE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_ERR_HANDLE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_ERR_HANDLE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PRELIM_AUTH

        static final java.lang.String CONNECTION_PROPERTY_PRELIM_AUTH
        If this property is set to "true", JDBC drivers connect in PRELIM_AUTH mode, which is the only mode that is permitted when the database is down.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PRELIM_AUTH_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PRELIM_AUTH_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PRELIM_AUTH_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PRELIM_AUTH_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_EXECUTE_BATCH

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_EXECUTE_BATCH
        Deprecated.
        Oracle-Style batching is desupported. Standard JDBC batch execution is recommended instead.
        The value of this property is ignored since the 20c release. Prior to 20c, the value of this property would configure the default batch size when using Oracle-Style batching.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_EXECUTE_BATCH_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_EXECUTE_BATCH_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_EXECUTE_BATCH_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DEFAULT_EXECUTE_BATCH_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_ROW_PREFETCH

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_ROW_PREFETCH
        The value of this property is used as the default number of rows to prefetch.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_ROW_PREFETCH_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_ROW_PREFETCH_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_ROW_PREFETCH_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DEFAULT_ROW_PREFETCH_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_LOB_PREFETCH_SIZE

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_LOB_PREFETCH_SIZE
        The value of this property is used as the default LOB prefetch size for this connection.

        The LOB prefetch size can be overriden at the statement level through the setLobPrefetchSize(int) which is defined in oracle.jdbc.OracleStatement. The statement level LOB prefetch size can be overriden at the column level through the defineColumnType method.

        The value can be "-1" to disable LOB prefetch for this connection, "0" to enable LOB prefetch for meta-data only or any value greater than 0 which represents a number of bytes for BLOBs and chars for CLOBs to be prefetched along with the locator during fetch operations. The default value for this property is "32768".

        Since:
        11.2
        See Also:
        OracleStatement.setLobPrefetchSize, Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_LOB_PREFETCH_SIZE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_LOB_PREFETCH_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_LOB_PREFETCH_SIZE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DEFAULT_LOB_PREFETCH_SIZE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_DATA_IN_LOCATOR

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_DATA_IN_LOCATOR
        The value of this property is used to control the use of the Data in Locator feature of the server.

        Data in Locator is a server side feature introduced in 10.2. For small lobs the actual data in included in the locator bytes shipped to the client. These may be shipped back and forth several times as the client accesses the lob using the lob APIs. For fast networks this actually increases performance because it greatly reduces server CPU consumption.

        For slower networks there is a net slow down. Setting this property to false will disable this feature.

        This property is currently only effective for the thin driver.

        Data in Locator is automatically disabled when Lob Prefetch is enabled. Thus this property will most likely be used for 10.2 servers where lob prefetch is not available.

        Since:
        11.2
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_DATA_IN_LOCATOR_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_DATA_IN_LOCATOR_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_DATA_IN_LOCATOR_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_DATA_IN_LOCATOR_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_READ_DATA_IN_LOCATOR

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_READ_DATA_IN_LOCATOR
        The value of this property is used to control the use of the Data in Locator feature by the client.

        Data in Locator is a server side feature introduced in 10.2. The JDBC driver is enhanced to use this data directly. This saves a number of round trips which previously occurred when lob APIs were used to read the data.

        This feature is only enabled for 10.2 servers. For earlier servers the Data in Locator feature did not exist and for later ones the lob prefetch functionality make this uunnecessary and the new lob storage types complicate the locator structure.

        Since:
        11.2
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_READ_DATA_IN_LOCATOR_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_READ_DATA_IN_LOCATOR_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_READ_DATA_IN_LOCATOR_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_READ_DATA_IN_LOCATOR_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REPORT_REMARKS

        static final java.lang.String CONNECTION_PROPERTY_REPORT_REMARKS
        If the value of this property is "true", OracleDatabaseMetaData will include remarks in the meta data. This can result in a substantial reduction in performance.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REPORT_REMARKS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_REPORT_REMARKS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REPORT_REMARKS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_REPORT_REMARKS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_INCLUDE_SYNONYMS

        static final java.lang.String CONNECTION_PROPERTY_INCLUDE_SYNONYMS
        If the value of this property is "true", JDBC will include synonyms when getting information about a column.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_INCLUDE_SYNONYMS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_INCLUDE_SYNONYMS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_INCLUDE_SYNONYMS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_INCLUDE_SYNONYMS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RESTRICT_GETTABLES

        static final java.lang.String CONNECTION_PROPERTY_RESTRICT_GETTABLES
        If the value of this property is "true", JDBC will return a more refined value for DatabaseMeta.getTables. By default JDBC will return things that are not accessible tables. These can be non-table objects or accessible synonymns for inaccessible tables. If this property is true JDBC will return only accessible tables. This has a substantial performance penalty.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RESTRICT_GETTABLES_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_RESTRICT_GETTABLES_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RESTRICT_GETTABLES_ACCESSMODE

        static final byte CONNECTION_PROPERTY_RESTRICT_GETTABLES_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ACCUMULATE_BATCH_RESULT

        static final java.lang.String CONNECTION_PROPERTY_ACCUMULATE_BATCH_RESULT
        When using Oracle style batching, JDBC determines when to flush a batch to the database. If this property is true, then the number of modified rows accumulated across all batches flushed from a single statement. The default is to count each batch separately.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ACCUMULATE_BATCH_RESULT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ACCUMULATE_BATCH_RESULT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ACCUMULATE_BATCH_RESULT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ACCUMULATE_BATCH_RESULT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_FETCH_SIZE_WITH_LONG_COLUMN

        static final java.lang.String CONNECTION_PROPERTY_USE_FETCH_SIZE_WITH_LONG_COLUMN
        If the value of this property is "true", then JDBC will prefetch rows even though there is a LONG or LONG RAW column in the result. By default JDBC fetches only one row at a time if there are LONG or LONG RAW columns in the result. Setting this property to "true" can improve performance but can also cause SQLExceptions if the results are too big.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_FETCH_SIZE_WITH_LONG_COLUMN_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_USE_FETCH_SIZE_WITH_LONG_COLUMN_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_FETCH_SIZE_WITH_LONG_COLUMN_ACCESSMODE

        static final byte CONNECTION_PROPERTY_USE_FETCH_SIZE_WITH_LONG_COLUMN_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROCESS_ESCAPES_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PROCESS_ESCAPES_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROCESS_ESCAPES_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PROCESS_ESCAPES_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FIXED_STRING

        static final java.lang.String CONNECTION_PROPERTY_FIXED_STRING
        If the value of this property is "true", JDBC will use FIXED CHAR semantic when setObject is called with a String argument. By default JDBC uses VARCHAR semantics. The difference is in blank padding. With the default there is no blank padding so, for example, 'a' does not equal 'a ' in a CHAR(4). If true these two will be equal.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FIXED_STRING_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_FIXED_STRING_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FIXED_STRING_ACCESSMODE

        static final byte CONNECTION_PROPERTY_FIXED_STRING_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAP_STRING_PARAMETER_TO_CHAR

        static final java.lang.String CONNECTION_PROPERTY_MAP_STRING_PARAMETER_TO_CHAR

        This property changes the default parameter mapping of a Java String to its Oracle Type. The default mapping is to VARCHAR2 (SQLT_CHR). When this property is set to true, the String parameter will be defined as ANSI fixed char, CHAR (SQLT_AFC).

        This affects the behavior of setString(index, value) where "value" is a Java String.

        The correct way to define a parameter against a CHAR column is to use setObject(index, value, OracleTypes.FIXED_CHAR). This property may be used as a workaround for applications that can't be fixed and use setString against CHAR columns.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAP_STRING_PARAMETER_TO_CHAR_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_MAP_STRING_PARAMETER_TO_CHAR_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAP_STRING_PARAMETER_TO_CHAR_ACCESSMODE

        static final byte CONNECTION_PROPERTY_MAP_STRING_PARAMETER_TO_CHAR_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULTNCHAR

        static final java.lang.String CONNECTION_PROPERTY_DEFAULTNCHAR
        If the value of this property is "true", the default mode for all character data columns will be NCHAR.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULTNCHAR_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DEFAULTNCHAR_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULTNCHAR_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DEFAULTNCHAR_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RESOURCE_MANAGER_ID

        static final java.lang.String CONNECTION_PROPERTY_RESOURCE_MANAGER_ID
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RESOURCE_MANAGER_ID_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_RESOURCE_MANAGER_ID_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RESOURCE_MANAGER_ID_ACCESSMODE

        static final byte CONNECTION_PROPERTY_RESOURCE_MANAGER_ID_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DISABLE_DEFINECOLUMNTYPE

        static final java.lang.String CONNECTION_PROPERTY_DISABLE_DEFINECOLUMNTYPE
        Disable the method OracleStatement.defineColumnType when equal "true". When this connection property has the value true, the method defineColumnType is has no effect. This is highly recommended when using the Thin driver, especially when the database character set contains four byte characters that expand to two UCS2 surrogate characters, e.g. AL32UTF8. The method defineColumnType provides no performance benefit (or any other benefit) when used with the 10g Thin driver. This property is provided so that you do not have to remove the calls from your code. This is especially valuable if you use the same code with Thin driver and either the OCI or Server Internal driver.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DISABLE_DEFINECOLUMNTYPE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DISABLE_DEFINECOLUMNTYPE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DISABLE_DEFINECOLUMNTYPE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DISABLE_DEFINECOLUMNTYPE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONVERT_NCHAR_LITERALS

        static final java.lang.String CONNECTION_PROPERTY_CONVERT_NCHAR_LITERALS
        Convert NCHAR literals to Unicode literals when equal "true". The default is true.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONVERT_NCHAR_LITERALS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CONVERT_NCHAR_LITERALS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONVERT_NCHAR_LITERALS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CONVERT_NCHAR_LITERALS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AUTO_COMMIT_SPEC_COMPLIANT

        static final java.lang.String CONNECTION_PROPERTY_AUTO_COMMIT_SPEC_COMPLIANT
        Deprecated.
        It's recommended to use CONNECTION_PROPERTY_DISABLED_BUG_FIXES system property instead.
        The corresponding bug number for this connection property is SwitchableBugFix.BugNumber.BUG_11891661.
        Alters the auto-commit behavior of the driver. By default the driver complies with JDBC specification. User can choose to alter the behavior by changing the value of this flag.

        Oracle JDBC 12.1 drivers comply with JDBC specification 4.1 and will:

        • throw SQLException when Connection.commit() or Connection.rollback() is invoked when auto-commit is true.
        • issue an implicit commit of the local transaction when Connection.setAutoCommit(boolean) is called and the mode is changed from false to true.

        Because the standard behavior may break existing applications, this flag is provided as a convenience and can be set to false. Most applications may never need to set this flag. Users are encouraged to modify their applications to support the specification instead of using this flag.

        Since:
        12.1
        See Also:
        Connection.commit(), Connection.rollback(), Connection.setAutoCommit(boolean), Constant Field Values
      • CONNECTION_PROPERTY_AUTO_COMMIT_SPEC_COMPLIANT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_AUTO_COMMIT_SPEC_COMPLIANT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AUTO_COMMIT_SPEC_COMPLIANT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_AUTO_COMMIT_SPEC_COMPLIANT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_JDBC_STANDARD_BEHAVIOR

        static final java.lang.String CONNECTION_PROPERTY_JDBC_STANDARD_BEHAVIOR
        Ensures the driver is in strict compliance with the JDBC specification. When "false" (the default), previous Oracle specific non-standard deviations from the standard are maintained. When "true", this flag will override the behavior of all other compatibility flags. For complete backwards compatibility with previous drivers which differed from the JDBC standards, you should leave this flag set to "false". If you require compliance with the JDBC standard, then " set to "true"; this ensures ALL non-standard behavior is removed from the driver. Note that backwards compatibility and standards compliance is often contradictory and you can't have both.
        Since:
        12.2
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_JDBC_STANDARD_BEHAVIOR_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_JDBC_STANDARD_BEHAVIOR_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_JDBC_STANDARD_BEHAVIOR_ACCESSMODE

        static final byte CONNECTION_PROPERTY_JDBC_STANDARD_BEHAVIOR_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_J2EE13_COMPLIANT

        static final java.lang.String CONNECTION_PROPERTY_J2EE13_COMPLIANT
        Deprecated.
        This property could be removed in the future and the default will be true. So if this property is used as workaround to turn off compliant behavior, consider changing the application.
        If the value of this property is "true", JDBC uses strict compliance for some edge cases. In general Oracle's JDBC drivers will allow some operations that are not permitted in the strict interpretation of J2EE 1.3. Setting this property to true will cause those cases to throw SQLExceptions. There are some other edge cases where Oracle's JDBC drivers have slightly different behavior than defined in J2EE 1.3. This results from Oracle having defined the behavior prior to the J2EE 1.3 specification and the resultant need for compatibility with existing customer code. Setting this property will result in full J2EE 1.3 compliance at the cost of incompatibility with some customer code. Can be either a system property or a connection property.

        The driver would behave differently in the following way when the property is set.

        • Throws an exception when executeQuery is invoked on a DML
        • Throws an exception when executeUpdate is invoked on a Query
        • MetaData.getScale returns 0 for unconstrained NUMBER column
        • getObject on a NUMBER column with precision 0 and scale unconstrained returns Double
        • ResultSetMetaData.getColumnType on a NUMBER column with precision 0 and scale unconstrained returns FLOAT
        • ResultSetMetaData.getColumnClassName on a NUMBER column with precision 0 and scale unconstrained returns java.lang.Double
        • getObject on a TIMESTAMP column returns an object of type java.sql.Timestamp
        • ResultSetMetaData.getColumnClassName on a TIMESTAMP column returns java.sql.Timestamp

        The default value of this property is true if dms.jar is present in the classpath; false otherwise.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_J2EE13_COMPLIANT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_J2EE13_COMPLIANT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_PARENT_NAME

        static final java.lang.String CONNECTION_PROPERTY_DMS_PARENT_NAME
        Override the default DMS parent name. This property should only be set if it is absolutely necessary to do so. For most cases, the default name should be used.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_PARENT_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DMS_PARENT_NAME_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_PARENT_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DMS_PARENT_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_PARENT_TYPE

        static final java.lang.String CONNECTION_PROPERTY_DMS_PARENT_TYPE
        Override the default DMS parent type. This property should only be set if it is absolutely necessary to do so. For most cases, the default type should be used.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_PARENT_TYPE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DMS_PARENT_TYPE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_PARENT_TYPE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DMS_PARENT_TYPE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_STMT_METRICS

        static final java.lang.String CONNECTION_PROPERTY_DMS_STMT_METRICS
        Property which enables/disables DMS Statement metrics
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_STMT_METRICS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DMS_STMT_METRICS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_STMT_METRICS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DMS_STMT_METRICS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_STMT_CACHING_METRICS

        static final java.lang.String CONNECTION_PROPERTY_DMS_STMT_CACHING_METRICS
        Deprecated.
        This property no longer has any effect.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_STMT_CACHING_METRICS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DMS_STMT_CACHING_METRICS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DMS_STMT_CACHING_METRICS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DMS_STMT_CACHING_METRICS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAP_DATE_TO_TIMESTAMP

        static final java.lang.String CONNECTION_PROPERTY_MAP_DATE_TO_TIMESTAMP
        This connection property lets you define how the driver will map SQL DATE values in the database to Java types. Since Oracle SQL DATE includes a time component and java.sql.Date does not, mapping DATE to java.sql.Date looses information. It is more appropriate to map DATE to java.sql.Timestamp and that is the default behavior.

        The 9i and 10g drivers mistakenly mapped DATE to java.sql.Date by default. Setting this property to false will cause the driver to map SQL DATE to java.util.Date with the corresponding loss of time information in each DATE value. This is for backwards compatibility only.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAP_DATE_TO_TIMESTAMP_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_MAP_DATE_TO_TIMESTAMP_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAP_DATE_TO_TIMESTAMP_ACCESSMODE

        static final byte CONNECTION_PROPERTY_MAP_DATE_TO_TIMESTAMP_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_THREADLOCAL_BUFFER_CACHE

        static final java.lang.String CONNECTION_PROPERTY_USE_THREADLOCAL_BUFFER_CACHE
        If true, the statement data buffers are cached on a per thread basis. If false, the data buffers are cached on a per connection basis. These buffers can be quite large. It is important that the number of them be minimized.

        In most cases you should use the per connection cache. However if your app has many more idle connections than active connections at any given moment then using the thread local cache may reduce the total JDBC driver memory footprint. If you are not having a problem with Java heap size, leave this alone.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_THREADLOCAL_BUFFER_CACHE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_USE_THREADLOCAL_BUFFER_CACHE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_THREADLOCAL_BUFFER_CACHE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_USE_THREADLOCAL_BUFFER_CACHE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRIVER_NAME_ATTRIBUTE

        static final java.lang.String CONNECTION_PROPERTY_DRIVER_NAME_ATTRIBUTE
        The value passed to the server for the OCI_ATTR_DRIVER_NAME. This property is supported with both the OCI and Thin drivers. The attribute aids in diagnosability. In most cases you should not need to set it. The value is limited to a maximum of 8 printable 7-bit ASCII characters. The default value depends on which driver is used. The default value for the THIN driver is "jdbcthin" and the default value for the OCI driver is "jdbcoci".
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRIVER_NAME_ATTRIBUTE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DRIVER_NAME_ATTRIBUTE_DEFAULT
      • CONNECTION_PROPERTY_DRIVER_NAME_ATTRIBUTE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DRIVER_NAME_ATTRIBUTE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAX_CACHED_BUFFER_SIZE

        static final java.lang.String CONNECTION_PROPERTY_MAX_CACHED_BUFFER_SIZE
        The log base 2 of the size of the largest internal char or byte data buffer that the driver should cache. The default is 30 which means the largest cached buffer is 1 giga(byte/char). Values greater than 30 are treated as the actual buffer size. Values less than 12 will effectively disable the buffer cache. Rather than setting the value less than 16, you should increase the amount of heap available to your application by setting -Xmx and -Xms.

        The driver uses char and byte buffers to read BLOB, CLOB, LONG, and LONG RAW data. The type 2 (OCI) driver and the server side internal driver also use these buffers to store bind values.

        These buffers can be quite large and are cached. If some operations create particularly large buffers, the driver will attempt to cache those large buffers. This may possibly reduce performance. This property can be set to prevent these large buffers from being cached. The appropriate value depends on the heap size, number of connections open, number of statements open at once, and fraction of the heap that can be allocated to JDBC. A reasonable starting point for a middle-tier application server might be 21 (2MB).

        Prior to the 12.1.0.1 release, these buffers had been used to retrieve query results. In the current release, this is no longer the case.

        See Also:
        CONNECTION_PROPERTY_USE_THREADLOCAL_BUFFER_CACHE, Constant Field Values
      • CONNECTION_PROPERTY_MAX_CACHED_BUFFER_SIZE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_MAX_CACHED_BUFFER_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAX_CACHED_BUFFER_SIZE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_MAX_CACHED_BUFFER_SIZE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE

        static final java.lang.String CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE
        The maximum number of statements that will be stored in this connection's statement cache. The default is 0 which disables the statement cache. If set to a value greater than 0, the implicit statement cache is enabled. Calls to setStatementCacheSize and setImplicitCachingEnabled override this.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_LOB_STREAM_POS_STANDARD_COMPLIANT

        static final java.lang.String CONNECTION_PROPERTY_LOB_STREAM_POS_STANDARD_COMPLIANT
        Previous releases allowed the value of 0L to be set for the position parameter of Blob.setBinaryStream and Clob.setAsciiStream and setCharacterStream which is not correct in the specification. It had the same effect as setting 1L. This was a legacy of the orginal Oracle proprietary APiS. If this switch is set false the old incorrect behavior is retained for compatibility
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_LOB_STREAM_POS_STANDARD_COMPLIANT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_LOB_STREAM_POS_STANDARD_COMPLIANT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_LOB_STREAM_POS_STANDARD_COMPLIANT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_LOB_STREAM_POS_STANDARD_COMPLIANT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_STRICT_ASCII_CONVERSION

        static final java.lang.String CONNECTION_PROPERTY_STRICT_ASCII_CONVERSION
        The Oracle JDBC has been doing quick ASCII conversion (use only the low bytes) in different areas for the sake of performance. However, when the input characters are not pure ASCII, they need to be converted to the corresponding ASCII replacement characters. To accomodate this need, Oracle JDBC implements this flag. This flag is default to false, in which no characters will be converted, quick ASCII conversion is done for good performance. When this flag is set to true, Oracle JDBC will check for non-ASCII characters and convert them with replacement characters. This flag controls all areas where ASCII conversion is done.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_STRICT_ASCII_CONVERSION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_STRICT_ASCII_CONVERSION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_STRICT_ASCII_CONVERSION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_STRICT_ASCII_CONVERSION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONNECTION_CLASS

        static final java.lang.String CONNECTION_PROPERTY_CONNECTION_CLASS
        Specify the connection class name for Database Resident Connection Pool (DRCP). Connection class must be provided to enable DRCP. Along with the connection class the URL must be altered to include (SERVER=POOLED) in long URL form. In thin the short URL form should be modified to append :POOLED.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONNECTION_CLASS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CONNECTION_CLASS_DEFAULT
      • CONNECTION_PROPERTY_CONNECTION_CLASS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CONNECTION_CLASS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRCP_TAG_NAME

        static final java.lang.String CONNECTION_PROPERTY_DRCP_TAG_NAME
        This is the tag name that for Database Resident Connection Pool (DRCP). Tag name is provided during connect time. The server will make an attempt to obtain a server process of the same tag. If it succeeds the next attachServerConnection() will return true.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRCP_TAG_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DRCP_TAG_NAME_DEFAULT
      • CONNECTION_PROPERTY_DRCP_TAG_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DRCP_TAG_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONNECTION_PURITY

        static final java.lang.String CONNECTION_PROPERTY_CONNECTION_PURITY
        Specify the connection purity for a Database Resident Connection Pool (DRCP) connection. Session purity specifies whether the application wants a "brand new" session or whether the application logic is set up to reuse a "pooled" session. There are two possible values, NEW or SELF. The default is SELF.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONNECTION_PURITY_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CONNECTION_PURITY_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONNECTION_PURITY_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CONNECTION_PURITY_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_DRCP_MULTIPLE_TAG

        static final java.lang.String CONNECTION_PROPERTY_USE_DRCP_MULTIPLE_TAG
        Enables multiple tagging feature in DRCP. Default value is false.
        A valid tag has to be a key value pair separated by = character. Multiple tags are separated by ; character.
        Value of key and value can not be null or empty. This property is valid only for thin driver.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_DRCP_MULTIPLE_TAG_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_USE_DRCP_MULTIPLE_TAG_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_DRCP_MULTIPLE_TAG_ACCESSMODE

        static final byte CONNECTION_PROPERTY_USE_DRCP_MULTIPLE_TAG_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRCP_PLSQL_CALLBACK

        static final java.lang.String CONNECTION_PROPERTY_DRCP_PLSQL_CALLBACK
        This is PL/SQL "fix-up" callback name which is provided by the application, and it is used to transform a session checked out from the pool to the desired state requested by the application.
        "fix-up" callback can provide performance improvements to applications by running the "session state fix-up" logic on the server, thereby eliminating application round-trips to the database to run the "fix-up" logic.
        This is an optional configuration.
        This property is valid only for thin driver.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRCP_PLSQL_CALLBACK_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DRCP_PLSQL_CALLBACK_DEFAULT
      • CONNECTION_PROPERTY_DRCP_PLSQL_CALLBACK_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DRCP_PLSQL_CALLBACK_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_FORCE_DNS_LOAD_BALANCING

        static final java.lang.String CONNECTION_PROPERTY_THIN_FORCE_DNS_LOAD_BALANCING

        When a hostname resolves to multiple addresses, the JDBC thin driver retrieves an array of addresses by calling "InetAddress.getAllByName()" and attempts to connect to first address in the array. If the connection fails, it tries to connect to the second address and so on.

        By default, because "InetAddress.getAllByName()" always returns the addresses in the same order, the first connection attempt will always be made to the same IP address. This defeats the goal of SCAN (Single Client Access Name which is a 11.2 RAC feature). In order to force the the driver to make the first connection attempt to a different IP address each time, you can set this property to "true". The default value is "false".

        When this connection is set to "true", the array of IP addresses that a hostname resolves to, will be rotated by one for each new JDBC connection. As a result, DNS load balancing will happen properly.

        This is a JDBC thin driver property only.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_FORCE_DNS_LOAD_BALANCING_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_THIN_FORCE_DNS_LOAD_BALANCING_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_THIN_FORCE_DNS_LOAD_BALANCING_ACCESSMODE

        static final byte CONNECTION_PROPERTY_THIN_FORCE_DNS_LOAD_BALANCING_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_TEMP_LOB_REF_COUNT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_TEMP_LOB_REF_COUNT

        By default the JDBC thin driver counts the temp LOB references and only closes them on the server when this count is down to zero. For example it may happen that two instances of CLOB (or OracleClob) A and B point to the same temp lob. At this point thin's temp lob ref count is 2. If you close A, no roundtrip will be issued because B is still holding on the temp LOB (counts is 1). Thin will send a close to the database only when B is also closed.

        The JDBC Thin driver will tell the server that it's counting temp lob references so that the server's temp lob ref count is always 1 as long as a close hasn't been issued.

        If you're running into ORA-22922: NONEXISTENT LOB VALUE errors in your application you should make sure that you haven't accidentally set this property to false.

        This property applies to the JDBC Thin driver only. It's new in 11.2.0.3.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_TEMP_LOB_REF_COUNT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_TEMP_LOB_REF_COUNT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_TEMP_LOB_REF_COUNT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_TEMP_LOB_REF_COUNT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NET_KEEPALIVE

        static final java.lang.String CONNECTION_PROPERTY_NET_KEEPALIVE
        Enables TCP keep alive on the network connection.

        Valid values for this property are "true" or "false". If this property is not set, the default value is "false".

        When this property is set to "true", a TCP keep alive probe will be initiated when the network connection has been idle for some period of time.

        The behavior of the keep alive probe can be configured using additional connection properties:

        See Also:
        StandardSocketOptions.SO_KEEPALIVE, Constant Field Values
      • CONNECTION_PROPERTY_NET_KEEPALIVE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_NET_KEEPALIVE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NET_KEEPALIVE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_NET_KEEPALIVE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NET_USE_SNI

        static final java.lang.String CONNECTION_PROPERTY_NET_USE_SNI

        Enables Server Name Indication (SNI) to avoid the TLS handshake with the listener. SNI information is passed as part of the ClientHello during the TLS handshake. The listener uses this information to hand-off the connection to the appropriate server process therefore avoiding the TLS handshake that would otherwise happen with the listener.

        The default value is "false". To enable SNI, set this property to "true".
        This property can also be configured via the connection URL using the DESCRIPTION parameter USE_SNI. The value set using the URL has higher precedence over the value set using connection property.

        See Also:
        CONNECTION_PROPERTY_NET_SNI_IGNORE_LIST, Constant Field Values
      • CONNECTION_PROPERTY_NET_USE_SNI_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_NET_USE_SNI_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NET_USE_SNI_ACCESSMODE

        static final byte CONNECTION_PROPERTY_NET_USE_SNI_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NET_SNI_IGNORE_LIST

        static final java.lang.String CONNECTION_PROPERTY_NET_SNI_IGNORE_LIST

        The Server Name Indication (SNI) value is created using the SERVICE_NAME, SERVER, INSTANCE_NAME and COLOCATION_TAG parameters found under the CONNECT_DATA section of the connect string.

        The CONNECT_DATA section may contain other parameters that could affect the selection of the server process; for example, if the sharding key is provided. Therefore, if the CONNECT_DATA section contains any other parameter than the 4 mentioned above, then SNI is disabled to avoid redirecting to the wrong handler.

        Some parameters are ignored because they don't have any impact on the selection of the server process, and so won't turn off SNI. By default CONNECTION_ID_PREFIX, CONNECTION_ID, POOL_PURITY, POOL_CONNECTION_CLASS, USE_TCP_FAST_OPEN and CID are ignored. More parameters of the CONNECT_DATA can be ignored using this property. The value is a comma-separated list of the CONNECT_DATA parameter names.

        If SOURCE_ROUTE is ON, then SNI is always disabled.

        See Also:
        CONNECTION_PROPERTY_NET_USE_SNI, Constant Field Values
      • CONNECTION_PROPERTY_NET_SNI_IGNORE_LIST_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_NET_SNI_IGNORE_LIST_DEFAULT
      • CONNECTION_PROPERTY_NET_SNI_IGNORE_LIST_ACCESSMODE

        static final byte CONNECTION_PROPERTY_NET_SNI_IGNORE_LIST_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN

        static final java.lang.String CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN

        This is an ADB-S specific property for clients connecting from within OCI Cloud network. Please refer to ADB-S documentation for more information.

        Since:
        23ai
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN_ACCESSMODE

        static final byte CONNECTION_PROPERTY_NET_USE_TCP_FAST_OPEN_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SQL_TRANSLATION_PROFILE

        static final java.lang.String CONNECTION_PROPERTY_SQL_TRANSLATION_PROFILE

        The string identifier for the translation profile or the translator to be used. Presence of this property activates the support for SQL Translation and is thus mandatory if SQL Translation feature is required.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SQL_TRANSLATION_PROFILE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SQL_TRANSLATION_PROFILE_DEFAULT
      • CONNECTION_PROPERTY_SQL_TRANSLATION_PROFILE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SQL_TRANSLATION_PROFILE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SQL_ERROR_TRANSLATION_FILE

        static final java.lang.String CONNECTION_PROPERTY_SQL_ERROR_TRANSLATION_FILE

        Path to an xml file which provides the Error code translations for those errors which occur if a connection can not be established to the server. The XML file is to be provided by the user and must conform to the following DTD. This is an optional property and if not provided then untranslated exceptions with oracle error codes are thrown. This property only affects the exceptions which happen when a connection to the server cannot be established. Once connection is established the translation happens on the server bypassing the local error translation file.

        <!DOCTYPE LocalTranslationProfile[
        <!ELEMENT LocalTranslationProfile (Exception+)>
        <!ELEMENT Exception (ORAError, ErrorCode, SQLState )>
        <!ELEMENT ORAError (#PCDATA)>
        <!ELEMENT ErrorCode (#PCDATA)>
        <!ELEMENT SQLState (#PCDATA)>
        ]>
        
              
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SQL_ERROR_TRANSLATION_FILE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SQL_ERROR_TRANSLATION_FILE_DEFAULT
      • CONNECTION_PROPERTY_SQL_ERROR_TRANSLATION_FILE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SQL_ERROR_TRANSLATION_FILE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_READONLY_INSTANCE_ALLOWED

        static final java.lang.String CONNECTION_PROPERTY_READONLY_INSTANCE_ALLOWED
        This property allows connection creation to a read-only instance if the value is set to true. It is applicable for sharded database only. The default value is false. This property is only supported by Thin driver.
        Since:
        21c
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_READONLY_INSTANCE_ALLOWED_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_READONLY_INSTANCE_ALLOWED_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_READONLY_INSTANCE_ALLOWED_ACCESSMODE

        static final byte CONNECTION_PROPERTY_READONLY_INSTANCE_ALLOWED_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_RESULTSET_CACHE

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_RESULTSET_CACHE
        This property is ignored in 18c.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_RESULTSET_CACHE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_RESULTSET_CACHE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_RESULTSET_CACHE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_RESULTSET_CACHE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_QUERY_RESULT_CACHE

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_QUERY_RESULT_CACHE
        This property is introduced in 18c. If set to false, this property turns off the ResultSet Cache feature of the JDBC Thin driver. To use this feature the server-side initialization parameter CLIENT_RESULT_CACHE_SIZE also has to be configured to a non zero value. This value controls how much memory the Thin driver can use for its cache.
        A read-only or read-mostly table can then be annoted (RESULT_CACHE(MODE FORCE) for example) for its data to be cached on the driver. You can also use a SQL hint /*+result_cache */ to identify queries that are worth being cached.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_QUERY_RESULT_CACHE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_QUERY_RESULT_CACHE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_QUERY_RESULT_CACHE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_QUERY_RESULT_CACHE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_BACKWARD_COMPATIBLE_UPDATEABLE_RESULTSET

        static final java.lang.String CONNECTION_PROPERTY_BACKWARD_COMPATIBLE_UPDATEABLE_RESULTSET
        If set to true, use the old, pre 12.1.0.2.0, updateable ResultSet behavior. If false use JDBC standard compliant updateable ResultSet behavior.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_BACKWARD_COMPATIBLE_UPDATEABLE_RESULTSET_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_BACKWARD_COMPATIBLE_UPDATEABLE_RESULTSET_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_BACKWARD_COMPATIBLE_UPDATEABLE_RESULTSET_ACCESSMODE

        static final byte CONNECTION_PROPERTY_BACKWARD_COMPATIBLE_UPDATEABLE_RESULTSET_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ALLOWED_LOGON_VERSION

        static final java.lang.String CONNECTION_PROPERTY_ALLOWED_LOGON_VERSION

        Minimum authentication protocol required by the client. The term VERSION in the parameter name refers to the version of the authentication protocol, not the Oracle Database release. If the database doesn't meet or exceed the value defined by this parameter, then JDBC throws ORA-17292 : No valid logon method found. Allowed values :

        • 12a
        • 12
        • 11
        • 10
        • 8
        Thus if client sets the allowedLogonVersion to be 10. Then connection would fail if the database server doesn support authentication protocol 10 or above ie 11, 12 and 12a. And similarly for other values. Default logon version for JDBC thin is 8. These values are JDBC thin counterpart of SQLNET.ALLOWED_LOGON_VERSION_CLIENT. For more information on the logon values and authentication protocol, read the documenation for SQLNET.ALLOWED_LOGON_VERSION_CLIENT and SQLNET.ALLOWED_LOGON_VERSION_SERVER.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ALLOWED_LOGON_VERSION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ALLOWED_LOGON_VERSION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ALLOWED_LOGON_VERSION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ALLOWED_LOGON_VERSION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_COMMIT_OPTION

        static final java.lang.String CONNECTION_PROPERTY_COMMIT_OPTION
        This connection property lets you define a default commit option that will be used when calling connection.commit();. This can be useful in cases where you don't want to rewrite your application to specify a commit option at the call level, such as connection.commit(myCommitOption);.

        This property can be set at the system level (all connections will use it) or at the connection level (only that particular connection will be affected). A call level commit option will override the default value.

        Note that by default, if you don't set this property, the commit option is '0', zero, and the Oracle server's defaults apply. These defaults are: IMMEDIATE and WAIT (IO operations are done immediately and the call waits until the operation has completed to return).

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_COMMIT_OPTION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_COMMIT_OPTION_DEFAULT
      • CONNECTION_PROPERTY_COMMIT_OPTION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_COMMIT_OPTION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DOWN_HOSTS_TIMEOUT

        static final java.lang.String CONNECTION_PROPERTY_DOWN_HOSTS_TIMEOUT

        To specify the amount of time in seconds that information about the down state of server hosts is kept in JDBC-Thin driver's cache. This property is specific to the JDBC-Thin Driver.

        The driver discovers the down state of server hosts when attempting connections. When a connection attempt fails, the information about the down state of the server host is added to the driver's cache. Subsequent connection attempts moves the down hosts to the end of the address list, thereby reducing the priority of such hosts. When the time specified by the oracle.net.DOWN_HOSTS_TIMEOUT parameter has passed, the host is purged from the driver's cache, and its priority in the address list is restored.

        Default value is 600 seconds.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DOWN_HOSTS_TIMEOUT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DOWN_HOSTS_TIMEOUT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DOWN_HOSTS_TIMEOUT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DOWN_HOSTS_TIMEOUT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FAN_ENABLED

        static final java.lang.String CONNECTION_PROPERTY_FAN_ENABLED
        Specifies whether driver High Availability (HA) or FAN (Fast Application Notification) is enabled.

        This property can be set at the system level (which applies to all connections), or at the connection level (which applies to a particular connection). The property is applicable to THIN and JDBC-OCI drivers only.

        By default, if you don't set this property, FAN/HA is enabled. The primary use of this property is to disable driver HA/FAN.

        Note that this property is automatically switched off when Bequeath protocol is used.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FAN_ENABLED_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_FAN_ENABLED_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FAN_ENABLED_ACCESSMODE

        static final byte CONNECTION_PROPERTY_FAN_ENABLED_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TNS_ADMIN

        static final java.lang.String CONNECTION_PROPERTY_TNS_ADMIN
        This property is used for setting the TNS Admin path. When using TNS Names with JDBC Thin driver this property has to be set to the directory which contains the tnsnames.ora file.
        This property can also be used to set the path of a properties file. When set, the driver will look for a file named ojdbc.properties in the TNS Admin directory.
        See Also:
        CONNECTION_PROPERTY_CONFIG_FILE, Constant Field Values
      • CONNECTION_PROPERTY_TNS_ADMIN_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TNS_ADMIN_DEFAULT
      • CONNECTION_PROPERTY_TNS_ADMIN_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TNS_ADMIN_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION

        static final java.lang.String CONNECTION_PROPERTY_NETWORK_COMPRESSION

        Enables compression of the protocol data sent over network. The value can be either "on" , "off" or "auto". The default value is "off".

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_NETWORK_COMPRESSION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_NETWORK_COMPRESSION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION_LEVELS

        static final java.lang.String CONNECTION_PROPERTY_NETWORK_COMPRESSION_LEVELS
        The value is a comma separated list of supported levels in the user preference order surrounded by brackets. The value is used at the time of negotiation to check what levels can be supported by both the client and the server and decide on the first common match. Thin driver only supports ("high") compression level and it is the default value, so setting this property is optional. Please note that the server should be configured to support high compression level. By default the server supports only low compression level.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION_LEVELS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_NETWORK_COMPRESSION_LEVELS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION_LEVELS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_NETWORK_COMPRESSION_LEVELS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION_THRESHOLD

        static final java.lang.String CONNECTION_PROPERTY_NETWORK_COMPRESSION_THRESHOLD
        Minimum size of data in packet required to perform compression. Packet compression will not be done if size of data to be sent in the packet is less than specified value. The default is "1024". The value cannot be less than "200". The value is in bytes.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION_THRESHOLD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_NETWORK_COMPRESSION_THRESHOLD_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_NETWORK_COMPRESSION_THRESHOLD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_NETWORK_COMPRESSION_THRESHOLD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONFIG_FILE

        static final java.lang.String CONNECTION_PROPERTY_CONFIG_FILE

        Specifies the path of a connection properties file. Oracle JDBC reads connection properties from this file each time it opens a connection. File reading is disabled by setting this property to an empty string.

        There are a small number of connection properties which may not be configured in a file. The ACCESSMODE of these properties will not include ACCESSMODE_FILEPROP.

        File Syntax

        A connection properties file contains "name=value" pairs that assign a value to the name of a connection property. The values may reference system properties or environment variables. This syntax is shown in the example below.

            oracle.jdbc.database=${DB_CONNECTION_STRING}
            oracle.jdbc.user=${DB_USER}
            oracle.jdbc.password=${DB_PASSWORD}
            oracle.jdbc.loginTimeout=30
            

        The basic "name=value" syntax is specified by java.util.Properties. Oracle JDBC extends the syntax as follows:

        • "${name}" is evaluated as a system property or environment variable of the given name. A system property takes precedence over an environment variable. A SQLException is thrown if no value is defined for the name.
        • "?" is evaluated as the ORACLE_HOME environment variable. A SQLException is thrown if ORACLE_HOME is not defined.
        • "${/}" is evaluated as the OS dependent file path separator. The value "path${/}to${/}" is evaluated as "path/to/" on Linux, and "path\to\" on Windows.

        Two consecutive "$" or "?" characters will escape these evaluations.

        Default File Location

        If this property is not configured, the default behavior is to check for a file named "ojdbc.properties" in a directory defined as TNS_ADMIN. A definition for TNS_ADMIN is resolved in the following order:

        1. A URL parameter, as in: "jdbc:oracle:thin:@dbname?TNS_ADMIN=..."
        2. The oracle.net.tns_admin connection property
        3. A JVM system property named "TNS_ADMIN"
        4. An environment variable named "TNS_ADMIN"

        In addition to the "ojdbc.properties" file, Oracle JDBC will also recorgnize a file named ojdbc_alias.properties, where alias matches the section of a JDBC URL following the "@" symbol. For example, if the JDBC URL is "jdbc:oracle:thin:@dbname", then a file named "ojdbc_dbname.properties" will be recognized. A property defined in the ojdbc_alias.properties file will override any definition of that property in the ojdbc.properties file. This mechanism allows certain connection properties to be configured only when connecting to a specific alias of a tnsnames.ora file.

        Setting up a connection properties file for the default behavior is completely optional. If TNS_ADMIN is not defined, or it does not contain a connection properties file, then a connection will be opened using any connection properties defined elsewhere.

        Overriding the Default File Location

        The default behavior is overridden by configuring this property with the path of a connection properties file. The path may be expressed with OS dependent separators:

            oracle.jdbc.config.file=/path/to/connection.properties
        The path may also be expressed using a platform neutral file URI:
            oracle.jdbc.config.file=file:///path/to/connection.properties

        Multiple files may be expressed as a comma separated list of paths:

            oracle.jdbc.config.file=file:///path/to/common.properties,file:///path/to/more.properties

        Higher precedence is given to files appearing at later positions in the list. In the example seen above, a connection property defined in "more.properties" would override a definition appearing in "common.properties". The list may also contain the value "default", which will be resolved as the default location.

        Precedence

        An order of precedence is applied when connection properties are defined by multiple sources. A property's value will always be resolved by the source which has the highest precedence. The sources of connection properties, ranked from highest to lowest precedence are:

        1. Properties set in the connection URL
        2. Properties configured by calling a method of OracleDataSource, DriverManager, etc.
        3. Properties retrieved by an OracleConfigurationProvider
        4. The jar-internal properties file: defaultConnectionProperties.properties in the oracle.jdbc package
        5. Java system properties
        6. A default properties file, or one configured as oracle.jdbc.config.file
        7. The default value of a property, as specified by the CONNECTION_PROPERTY_{name}_DEFAULT constants

        See Also:
        Properties.load(java.io.Reader), ACCESSMODE_FILEPROP, Constant Field Values
      • CONNECTION_PROPERTY_CONFIG_FILE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CONFIG_FILE_DEFAULT
      • CONNECTION_PROPERTY_CONFIG_FILE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CONFIG_FILE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WEBSOCKET_USER

        static final java.lang.String CONNECTION_PROPERTY_WEBSOCKET_USER
        This connection property is used to configure the username of the webserver, when the JDBC Thin driver is configured to connect to a webserver using the Secure Websocket protocol (WSS).
        The webserver acts as a reverse proxy for the Oracle Database.
        The default value of this property is null.
        See Also:
        CONNECTION_PROPERTY_WEBSOCKET_PASSWORD, Constant Field Values
      • CONNECTION_PROPERTY_WEBSOCKET_USER_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_WEBSOCKET_USER_DEFAULT
      • CONNECTION_PROPERTY_WEBSOCKET_USER_ACCESSMODE

        static final byte CONNECTION_PROPERTY_WEBSOCKET_USER_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WEBSOCKET_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_WEBSOCKET_PASSWORD
        This connection property is used to configure the password of the webserver, when the JDBC Thin driver is configured to connect to a webserver using the Secure Websocket protocol (WSS).
        The webserver acts as a reverse proxy for the Oracle Database.
        The default value of this property is null.
        See Also:
        CONNECTION_PROPERTY_WEBSOCKET_USER, Constant Field Values
      • CONNECTION_PROPERTY_WEBSOCKET_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_WEBSOCKET_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_WEBSOCKET_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_WEBSOCKET_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SOCKS_PROXY_HOST

        static final java.lang.String CONNECTION_PROPERTY_SOCKS_PROXY_HOST
        This connection property is used to configure the host name of the SOCKS proxy server. When this property is configured the connection to the Oracle Database Server is attempted via this SOCKS proxy server. The default value of this property is null. The HTTPS proxy configuration has higher precedence over SOCKS proxy. If both are configured then HTTPS proxy is used for establishing connection to the Oracle Database Server.
        Since:
        20c
        See Also:
        CONNECTION_PROPERTY_SOCKS_PROXY_PORT, CONNECTION_PROPERTY_THIN_HTTPS_PROXY_HOST, CONNECTION_PROPERTY_THIN_HTTPS_PROXY_PORT, Constant Field Values
      • CONNECTION_PROPERTY_SOCKS_PROXY_HOST_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SOCKS_PROXY_HOST_DEFAULT
      • CONNECTION_PROPERTY_SOCKS_PROXY_HOST_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SOCKS_PROXY_HOST_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SOCKS_PROXY_PORT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SOCKS_PROXY_PORT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SOCKS_PROXY_PORT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SOCKS_PROXY_PORT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SOCKS_REMOTE_DNS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SOCKS_REMOTE_DNS_DEFAULT
      • CONNECTION_PROPERTY_SOCKS_REMOTE_DNS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SOCKS_REMOTE_DNS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROXY_REMOTE_DNS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PROXY_REMOTE_DNS_DEFAULT
      • CONNECTION_PROPERTY_PROXY_REMOTE_DNS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PROXY_REMOTE_DNS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_CONNECTION_VALIDATION

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_CONNECTION_VALIDATION
        This connection property is used to specify how much effort to put into validating a Connection.
        This property controls what isValid() does.
        The possible values for this property are - "NONE", "LOCAL", "INBAND_DOWN", "SOCKET", "NETWORK", "SERVER" and "COMPLETE".
        The behavior for each value is specified by OracleConnection.ConnectionValidation
        The values are case-sensitive, setting any other value throws exception.
        The default value of this property is "NETWORK".
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_CONNECTION_VALIDATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DEFAULT_CONNECTION_VALIDATION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEFAULT_CONNECTION_VALIDATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DEFAULT_CONNECTION_VALIDATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_AC_SUPPORT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_AC_SUPPORT
        Specifies whether driver support for Application Continuity (AC) is enabled.

        This property can be set at the system level (which applies to all connections), or at the connection level (which applies to a particular connection). The property is applicable to THIN driver only.

        By default, if you don't set this property, AC support is enabled on the JDBC driver data sources. The primary use of this property is to disable AC on the data sources.

        Note that when this property is set to true, whether AC is actually active depends on other factors like server AC configuration.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_AC_SUPPORT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_AC_SUPPORT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_AC_SUPPORT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_AC_SUPPORT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_TG_SUPPORT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_TG_SUPPORT
        Specifies whether driver support for Transaction Guard (TG) is enabled.

        This property can be set at the system level (which applies to all connections), or at the connection level (which applies to a particular connection). The property is applicable to THIN driver only.

        By default, if you don't set this property, TG support is disabled on the JDBC driver data sources, unless Application Continuity (AC) is enabled. The primary use of this property is to enable TG on the data sources, when AC is not enabled.

        Note that when this property is set to true, whether TG is actually active depends on other factors like server TG configuration. One way to check if TG is actually enabled is to call getLogicalTransactionId on oracle.jdbc.OracleConnection and verify that the returned value is not null.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_TG_SUPPORT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_TG_SUPPORT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_TG_SUPPORT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_TG_SUPPORT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_IMPLICIT_REQUESTS

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_IMPLICIT_REQUESTS
        Specifies whether to enable implicit request boundary support for Application Continuity (AC).

        Implicit request support helps to reduce application failover recovery time. This AC optimization should be used with caution for applications that change server session states during a request. For more details, please consult the JDBC and RAC documentations on Auto-AC.

        This property can be set at the system level (which applies to all connections), or at the connection level (which applies to a particular connection). The property is applicable to THIN driver only.

        By default, the value of this property is "true", which means that implicit request support is enabled.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_IMPLICIT_REQUESTS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_IMPLICIT_REQUESTS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_IMPLICIT_REQUESTS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_IMPLICIT_REQUESTS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_SSS_CURSOR

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_SSS_CURSOR
        Specifies whether to enable Session-State-Stable (SSS) cursor support for Transparent Application Continuity (TAC).

        The SSS cursor support helps to increase TAC protection coverage and reduces application failover recovery time. It allows applications to establish implicit request boundaries more frequently. SSS cursors can stay open throughout an entire explicit request, until endRequest.

        This AC optimization should be used with caution for applications that change server session states during a request. For more details, please consult the JDBC and RAC documentations on TAC.

        This property can be set at the system level (which applies to all connections), or at the connection level (which applies to a particular connection). The property is applicable to THIN driver only.

        By default, the value of this property is "true", which means that SSS cursor support is enabled for TAC.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_SSS_CURSOR_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_SSS_CURSOR_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_SSS_CURSOR_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_SSS_CURSOR_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRCP_MULTIPLEXING_IN_REQUEST_APIS

        static final java.lang.String CONNECTION_PROPERTY_DRCP_MULTIPLEXING_IN_REQUEST_APIS
        Specifies whether to enable DRCP-attach in beginRequest and DRCP-detach in endRequest.

        Enabling this makes DRCP transparent to connection pools that call the request-APIs at pool check-out and check-in.

        This property can be set at the system level (which applies to all connections), or at the connection level (which applies to a particular connection).

        By default, the value of this property is "false", which means that the support is disabled.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRCP_MULTIPLEXING_IN_REQUEST_APIS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DRCP_MULTIPLEXING_IN_REQUEST_APIS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DRCP_MULTIPLEXING_IN_REQUEST_APIS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DRCP_MULTIPLEXING_IN_REQUEST_APIS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONTINUE_BATCH_ON_ERROR

        static final java.lang.String CONNECTION_PROPERTY_CONTINUE_BATCH_ON_ERROR
        This connection property specifies whether to continue batch execution when server encounters an erroneous row in the batch. If this property value is set to "true", server skips the erroneous row in the batch and continues processing rest of the rows. BatchUpdateException.getLargeUpdateCounts() method can be used to know which row in the batch failed.

        This property is applicable to the THIN driver only. The default value of this property is "false".

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONTINUE_BATCH_ON_ERROR_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CONTINUE_BATCH_ON_ERROR_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONTINUE_BATCH_ON_ERROR_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CONTINUE_BATCH_ON_ERROR_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPIDLE

        static final java.lang.String CONNECTION_PROPERTY_TCP_KEEPIDLE
        Specifies a number of seconds for a network connection to remain idle before initiating a keep alive probe. If this property is set to a value other than -1, the property value will override any other value set by an EXPIRE_TIME parameter in a connect descriptor URL.

        This property is applicable to the THIN driver only.

        CONNECTION_PROPERTY_NET_KEEPALIVE must be set to "true" to enable TCP keep alive.

        The default value is system dependent. If this property is not set, or if it is set to -1, the driver will use the system dependent default value.

        Since:
        20
        See Also:
        ExtendedSocketOptions.TCP_KEEPIDLE, Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPIDLE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TCP_KEEPIDLE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPIDLE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TCP_KEEPIDLE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPINTERVAL

        static final java.lang.String CONNECTION_PROPERTY_TCP_KEEPINTERVAL
        Specifies a number of seconds to wait before retransmitting a keep alive probe.

        This property is applicable to the THIN driver only.

        CONNECTION_PROPERTY_NET_KEEPALIVE must be set to "true" to enable TCP keep alive.

        The default value is system dependent. If this property is not set, or if it is set to -1, the driver will use the system dependent default value.

        Since:
        20
        See Also:
        ExtendedSocketOptions.TCP_KEEPINTERVAL, Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPINTERVAL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TCP_KEEPINTERVAL_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPINTERVAL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TCP_KEEPINTERVAL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_SHARDING_DRIVER_CONNECTION

        static final java.lang.String CONNECTION_PROPERTY_USE_SHARDING_DRIVER_CONNECTION
        This is applicable only for the thin driver. Pass "true" to use the sharding driver connection. The sharding driver connection derives a sharding key from a SQL command. "false" is the default behavior which would give a Thin driver connection.
        Since:
        20
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_SHARDING_DRIVER_CONNECTION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_USE_SHARDING_DRIVER_CONNECTION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_SHARDING_DRIVER_CONNECTION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_USE_SHARDING_DRIVER_CONNECTION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPCOUNT

        static final java.lang.String CONNECTION_PROPERTY_TCP_KEEPCOUNT
        Specifies a maximum number of keep alive probes to be sent before a connection is considered broken.

        This property is applicable to the THIN driver only.

        CONNECTION_PROPERTY_NET_KEEPALIVE must be set to "true" to enable TCP keep alive.

        The default value is system dependent. If this property is not set, or if it is set to -1, the driver will use the system dependent default value.

        Since:
        20
        See Also:
        ExtendedSocketOptions.TCP_KEEPCOUNT, Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPCOUNT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TCP_KEEPCOUNT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TCP_KEEPCOUNT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TCP_KEEPCOUNT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REQUEST_SIZE_LIMIT

        static final java.lang.String CONNECTION_PROPERTY_REQUEST_SIZE_LIMIT
        Specifies the maximum request size, in terms of number of JDBC calls, beyond which AC replay will be disabled. For example, if the property value is set to 100, it means replay will be disabled for any request with more than 100 JDBC calls in it.

        We recommend that applicationss do not set this property unless there is a demonstrated memory size problem caused by request size and no better solution is feasible.

        Replay disabling applies only to any request that exceeds the limit. Replay will be reenabled at the next beginRequest on the same JDBC physical connection.

        This property can be set at the system level (which applies to all connections), or at the connection level (which applies to a particular connection). The property is applicable to THIN driver only.

        There is a request-size histogram in the AC statistics that users can use to get an idea of the request size distribution of their application. It can be obtained by calling getRequestSizeHistogram() on oracle.jdbc.replay.ReplayStatistics.

        The histogram is also dumped into the Oracle JDBC driver logs, when the driver detects significant memory pressure.

        Users can use the histogram and AC statistics to determine the majority of their request sizes, and set the request-size limit to be slightly above those. For small number of long requests above the limit, users could consider alternatives such as more frequent connection pool checkout/checkin's, deploying Transparent Application Continuity (TAC) to reduce request size, or to allow replay being disabled for requests with only long queries.

        By default, the value of this property is "2147483647", which is Integer.MAX_VALUE that means replay is practically enabled for all requests.

        Since:
        20.1
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REQUEST_SIZE_LIMIT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_REQUEST_SIZE_LIMIT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REQUEST_SIZE_LIMIT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_REQUEST_SIZE_LIMIT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ONS_WALLET_FILE

        static final java.lang.String CONNECTION_PROPERTY_ONS_WALLET_FILE
        Use this property to specify the ONS wallet file, when you need Oracle Fast Application Notification (FAN).

        The Oracle JDBC driver just passes this wallet file to the lower layer. The file can be specified on a global or per-data source basis.

        The supported wallet file specification syntax is the same as for oracle.net.wallet_location

        If the oracle.jdbc.ons.walletfile property is not specified but the oracle.net.wallet_location property is, and if the oracle.jdbc.ons.protocol property is set to "TCPS", the driver will use oracle.net.wallet_location property's value as the ONS wallet file. In that case, both the JDBC connection and the ONS connection share the same Oracle wallet.

        Since:
        20.1
        See Also:
        CONNECTION_PROPERTY_WALLET_LOCATION, Constant Field Values
      • CONNECTION_PROPERTY_ONS_WALLET_FILE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ONS_WALLET_FILE_DEFAULT
      • CONNECTION_PROPERTY_ONS_WALLET_FILE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ONS_WALLET_FILE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ONS_WALLET_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_ONS_WALLET_PASSWORD
        Use this property to specify the ONS wallet password, which is only required if you don't enable auto-login in the ONS wallet. In this case "ewallet.p12" will be used instead of "cwallet.sso".

        Since:
        20.1
        See Also:
        CONNECTION_PROPERTY_WALLET_PASSWORD, Constant Field Values
      • CONNECTION_PROPERTY_ONS_WALLET_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ONS_WALLET_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_ONS_WALLET_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ONS_WALLET_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ONS_PROTOCOL

        static final java.lang.String CONNECTION_PROPERTY_ONS_PROTOCOL
        Use this property to specify the ONS connection protocol, as either "TCP" or "TCPS". The default is "TCP".

        When this property is "TCPS" and oracle.jdbc.ons.walletfile is not specified, any JDBC wallet configured via the connection property oracle.net.wallet_location will also be used as the ONS wallet for ONS connections.

        If oracle.jdbc.ons.walletfile is specified, it will be used as the ONS wallet and the ONS connection protocol is assumed to be TCPS.

        Since:
        20.1
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ONS_PROTOCOL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ONS_PROTOCOL_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ONS_PROTOCOL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ONS_PROTOCOL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_LOGIN_TIMEOUT

        static final java.lang.String CONNECTION_PROPERTY_LOGIN_TIMEOUT
        Configures a timeout for creating a new connection. The value of this property is parsed as an integer number of seconds. A value of 0 configures the driver to not use a timeout. The default value is 0. Values which are less than 0 are invalid.

        When specified, the timeout is applied to any method call which opens a new connection, such as DataSource.getConnection() or ConnectionBuilder.build(). If the timeout expires, these method calls will throw a SQLException with error code 18714.

        A value specified for this property can be overriden by a value set with CommonDataSource.setLoginTimeout(int).

        This property is only supported by the Oracle JDBC Thin driver (ie: jdbc:oracle:thin).

        Since:
        21
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_LOGIN_TIMEOUT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_LOGIN_TIMEOUT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_LOGIN_TIMEOUT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_LOGIN_TIMEOUT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_IN_BAND_NOTIFICATION

        static final java.lang.String CONNECTION_PROPERTY_IN_BAND_NOTIFICATION

        Specifies whether driver in-band notification support is enabled. This feature primarily helps applications to drain connections gracefully during Oracle Autonomous Database (ADB) and Real Application Clusters (RAC) planned maintenance.

        This property can be set at the system level (which applies to all connections), or at the connection level (which applies to a particular connection). The property is applicable to THIN and JDBC-OCI drivers only.

        By default, if you don't set this property, in-band notification is always enabled. The primary use of this property is to disable this feature, which might be necessary in case in-band notification interferes with similar features in upper-stacks (like a connection pool or application container), or malfunctions. Note that this property is automatically switched off when Bequeath protocol is used.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_IN_BAND_NOTIFICATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_IN_BAND_NOTIFICATION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_IN_BAND_NOTIFICATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_IN_BAND_NOTIFICATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SSL_CONTEXT_PROTOCOL

        static final java.lang.String CONNECTION_PROPERTY_SSL_CONTEXT_PROTOCOL

        Specifies a protocol name for the driver to use when obtaining an instance of SSLContext from SSLContext.getInstance(String) for a TLS enabled database connection.

        This property has no effect on which versions of SSL or TLS will be accepted during handshakes with the database server. To configure the set of protocol versions accepted during handshakes, use CONNECTION_PROPERTY_THIN_SSL_VERSION.

        If this property is not specified, the driver will use "TLS" by default.

        This property is only supported by the Oracle JDBC Thin driver (ie: jdbc:oracle:thin).

        Since:
        20.3
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SSL_CONTEXT_PROTOCOL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SSL_CONTEXT_PROTOCOL_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SSL_CONTEXT_PROTOCOL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SSL_CONTEXT_PROTOCOL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FETCH_SIZE_TUNING

        static final java.lang.String CONNECTION_PROPERTY_FETCH_SIZE_TUNING
        This property controls the row fetch size tuning behavior. Setting it to a larger value increases the fetch size for large results at the expense of substantially larger memory footprint and setting the value to less than 1 disables the fetch size tuning feature. The default value is 8 which means the feature is enabled by default. Setting the property value to less than 1 or setting the fetch size explicitly using Statement.setFetchSize(int) disables this feature.

        This property is only supported by the Oracle JDBC Thin driver (ie: jdbc:oracle:thin).

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FETCH_SIZE_TUNING_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_FETCH_SIZE_TUNING_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_FETCH_SIZE_TUNING_ACCESSMODE

        static final byte CONNECTION_PROPERTY_FETCH_SIZE_TUNING_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_TRUECACHE_DRIVER_CONNECTION

        static final java.lang.String CONNECTION_PROPERTY_USE_TRUECACHE_DRIVER_CONNECTION
        Setting the connection property value to "true" enables the True Cache feature. When this feature is enabled, the JDBC driver creates a logical connection that contains two physical connections one to the primary database and another to a True Cache instance.

        The JDBC driver executes a given SQL query either on the primary database or on a True Cache instance depending on the value returned by the API Connection.isReadOnly().
        If the API returns true, the query is executed on a True Cache instance, otherwise on the primary database.

        Please note that a True Cache instance may be lagging behind the primary database which means that an application may not see the most recent data when a query is executed on a True Cache instance. The default value of this property is "false" which means the True Cache feature is disabled by default.

        Note: When this property is set, make sure that UCP jar is present in classpath.


        This property is only supported by the Oracle JDBC Thin driver (ie: jdbc:oracle:thin).

        The following example illustrates the use of the True Cache feature
            
              OracleDataSource ods = new oracle.jdbc.pool.OracleDataSource();
              ods.setURL(DB_URL);
              ods.setUser(DB_USER);
              ods.setPassword(DB_PASSWORD);
              Properties props = new Properties();
              props.setProperty("oracle.jdbc.useTrueCacheDriverConnection", "true");
              ods.setConnectionProperties(props);
              // this is a True Cache driver connection and it can be used to execute 
              // queries on both the primary database and a True Cache instance
              Connection conn = ods.getConnection();
              Statement stmt = conn.createStatement();
              // Default value of connection read-only flag is false which means 
              // the SQL_QUERY1 is executed on the primary database 
              ResultSet rs = stmt.executeQuery(SQL_QUERY1);
              // set the read-only flag to true, in order to execute SQL_QUERY2 
              // on a True Cache instance
              conn.setReadOnly(true);
              ResultSet rs1 = stmt.executeQuery(SQL_QUERY2);
            
            
        Since:
        23ai
        See Also:
        Connection.isReadOnly(), Connection.setReadOnly(boolean), Constant Field Values
      • CONNECTION_PROPERTY_USE_TRUECACHE_DRIVER_CONNECTION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_USE_TRUECACHE_DRIVER_CONNECTION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_USE_TRUECACHE_DRIVER_CONNECTION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_USE_TRUECACHE_DRIVER_CONNECTION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PERMIT_SENSITIVE_DIAGNOSTICS

        static final java.lang.String CONNECTION_PROPERTY_PERMIT_SENSITIVE_DIAGNOSTICS
        Controls whether sensitive diagnostic logging is permitted. If false logging sensitive data, primarily SQL parameter values, is not permitted. Attempting to enable sensitive diagnostics will cause an exception. If true logging of sensitive data is permitted, though not enabled. To capture sensitive data in diagnostic logs, sensitive diagnostics must be enabled.

        Values known by JDBC to be passwords are never logged. This includes database authentication passwords passed to getConnection. Although the SQL text may include passwords, ALTER USER IDENTIFIED BY, or user data when represented by literals, JDBC considers the SQL text to be public, ie not sensitive. The SQL text is too valuable for diagnostics to be omitted from public diagnostic logs and vanishingly few, if any, apps do ALTER USER IDENTIFIED BY. Apps should not send user in SQL as literals. Use bind values instead. If the app does either of these things user data or even database use passwords can appear in diagnostic log files. In this case do not enable diagnostics.

        This property can only be set in the java command line via the -D option. Setting it any other way will have no effect.

        Since:
        23
        See Also:
        CONNECTION_PROPERTY_ENABLE_SENSITIVE_DIAGNOSTICS, Constant Field Values
      • CONNECTION_PROPERTY_PERMIT_SENSITIVE_DIAGNOSTICS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PERMIT_SENSITIVE_DIAGNOSTICS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PERMIT_SENSITIVE_DIAGNOSTICS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PERMIT_SENSITIVE_DIAGNOSTICS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_SENSITIVE_DIAGNOSTICS

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_SENSITIVE_DIAGNOSTICS
        Controls whether sensitive diagnostic logging is enabled. If false sensitive data, primarily SQL parameter values, is not captured or written. Attempting to enable sensitive diagnostics will cause an exception. If true logging of sensitive data is permitted, though not enabled. To capture sensitive data in diagnostic logs, sensitive diagnostics must be enabled. Sensitive diagnostics cannot be enabled unless it is permitted. Attempting to do so will cause an error.

        Although the SQL text can contain sensitive data in literals, putting sensitive data in the SQL text is poor practice for a wide variety of reasons and vanishingly few apps do so. The SQL text is so valuable for diagnostics that omitting it from public diagnostics logs would greatly reduce their value. Rather than requiring customers to enable sensitive diagnostics in order to see the SQL text which would also expose user data, JDBC treats the SQL text as not sensitive and includes it in public diagnostic logs.

        Since:
        23
        See Also:
        CONNECTION_PROPERTY_PERMIT_SENSITIVE_DIAGNOSTICS, Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_SENSITIVE_DIAGNOSTICS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_SENSITIVE_DIAGNOSTICS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_SENSITIVE_DIAGNOSTICS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_SENSITIVE_DIAGNOSTICS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DIAGNOSTIC_LOGGER_NAME

        static final java.lang.String CONNECTION_PROPERTY_DIAGNOSTIC_LOGGER_NAME
        This property controls which Logger is used to write diagnostic log output. Setting this property is not necessary unless debugging is enabled. In that case each connection which has debugging enabled should have a distinct Logger name. Failure to set a distinct name results in mixing the diagnostic output for multiple connections in a single log file and greatly reduces performance due to contention on the Logger. If debugging is enabled on only one connection (best practice) there is no need to set the Logger name.

        It should be unnecessary to set this property when only Diagnose First Failure is enabled. Usually failure are sufficiently infrequent that there is no simultaneous access to the Logger. If failures are so frequent that contention is an issue, then setting a distinct name for each connection would reduce contention improving performance and might make the logs easier to read.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DIAGNOSTIC_LOGGER_NAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DIAGNOSTIC_LOGGER_NAME_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DIAGNOSTIC_LOGGER_NAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DIAGNOSTIC_LOGGER_NAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DIAGNOSTIC_BUFFER_SIZE

        static final java.lang.String CONNECTION_PROPERTY_DIAGNOSTIC_BUFFER_SIZE
        This property controls the size of the ring buffer which holds Diagnose First Failure log records in memory. The size of this buffer is the amount of history that is written to the Logger when a failure is detected. A larger buffer size means more history but at the expense of more memory.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DIAGNOSTIC_BUFFER_SIZE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DIAGNOSTIC_BUFFER_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DIAGNOSTIC_BUFFER_SIZE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DIAGNOSTIC_BUFFER_SIZE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_DIAGNOSE_FIRST_FAILURE

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_DIAGNOSE_FIRST_FAILURE
        This property controls whether Diagnose First Failure is enabled. The default value is true; Diagnose First Failure is enabled by default. In a properly working app during normal operation this should result in no diagnostic output. Diagnostic output will be generated only on serious errors. Note that diagnostic output is produced regardless of whether the Exception is handled, for example by Application Continuity. If Diagnose First Failure is enabled and JDBC throws a recoverable exception, AC will attempt to recover. But Diagnose First Failure will generate the diagnostic output before AC starts recovery. Using an MBean operation DiagnosticsMXBean.addErrorCodeToWatchList(String), error codes can be configured to monitor their occurrence. The diagnostic output is generated when a configured error occurs. The list of preconfigured error codes can be fetched using the operation DiagnosticsMXBean.showErrorCodesWatchList().

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_DIAGNOSE_FIRST_FAILURE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_DIAGNOSE_FIRST_FAILURE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_DIAGNOSE_FIRST_FAILURE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_DIAGNOSE_FIRST_FAILURE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_LOGGING

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_LOGGING
        This property controls whether logging is enabled. The default is false and while it can be set to true as a System property, this is discouraged. Logging output can be voluminous and it reduces system performance. It is best practice to enable logging only for one or perhaps a very small number of connections. This will keep the log size more manageable and limit the performance reduction to only one connection. It is best practice to set a distinct name for the Logger for each connection using the CONNECTION_PROPERTY_DIAGNOSTIC_LOGGER_NAME property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_LOGGING_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_LOGGING_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_LOGGING_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_LOGGING_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_OBSERVABILITY

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_OBSERVABILITY
        This property controls whether observability is enabled. The default value is true. Observability requires dms.jar in CLASSPATH. Observability is disabled if the value of this property is false or dms.jar is not in CLASSPATH.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_OBSERVABILITY_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_OBSERVABILITY_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_OBSERVABILITY_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_OBSERVABILITY_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WRITE_LOGS_TO_DIAGNOSE_FIRST_FAILURE

        static final java.lang.String CONNECTION_PROPERTY_WRITE_LOGS_TO_DIAGNOSE_FIRST_FAILURE
        This property enables writing diagnostic logging output to Diagnose First Failure buffer. The default is false. If this property is set and logging is enabled, the complete logging output is written to Diagnose First Failure buffer. The logging output can be voluminous. Hence writing logging output to Diagnose First Failure buffer is discouraged. The Diagnose First Failure diagnostic output is generated when a configured error occurs. The list of preconfigured error codes can be fetched using the opeartion DiagnosticsMXBean.showErrorCodesWatchList(). One or more error codes can be added to the list of errors watched for occurrence using the operation DiagnosticsMXBean.addErrorCodeToWatchList(String).

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WRITE_LOGS_TO_DIAGNOSE_FIRST_FAILURE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_WRITE_LOGS_TO_DIAGNOSE_FIRST_FAILURE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_WRITE_LOGS_TO_DIAGNOSE_FIRST_FAILURE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_WRITE_LOGS_TO_DIAGNOSE_FIRST_FAILURE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEBUG_TENANT

        static final java.lang.String CONNECTION_PROPERTY_DEBUG_TENANT
        This property specifies one or more database tenant names in a JSON array String format. If set, debugging is enabled if the connection is attached to a tenant with any of those names. It is best practice to set this for only one or a very small number of connections. The default value is null. If no value is set debugging by tenant is disabled. For example, to enable debugging by tenant, set the tenant name(s) in a JSON array String format.
            Properties prop = new Properties();
            prop.setProperty(OracleConnection.CONNECTION_PROPERTY_DEBUG_TENANT, 
                                                  "[\"tenant_name_1\",\"tenant_name_2\"]");
            
        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEBUG_TENANT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DEBUG_TENANT_DEFAULT
      • CONNECTION_PROPERTY_DEBUG_TENANT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DEBUG_TENANT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEBUG_SQL

        static final java.lang.String CONNECTION_PROPERTY_DEBUG_SQL
        This property specifies one or more SQL texts in a JSON array String format. If set, debugging is enabled if the connection is doing work related to one of the specified SQL texts. The comparison by String.equals so the SQL texts in this property must match the SQL texts in the code exactly including white space. It is best practice to set this for only one or a very small number of connections. The default value is null. If no value is set debugging by SQL is disabled. For example, to enable debugging, set the SQL text(s) in a JSON array String format:
            Properties prop = new Properties();
            prop.setProperty(OracleConnection.CONNECTION_PROPERTY_DEBUG_SQL, 
                                      "[\"SELECT  FROM emp\",\"SELECT empno FROM emp\"]");
            
        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DEBUG_SQL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DEBUG_SQL_DEFAULT
      • CONNECTION_PROPERTY_DEBUG_SQL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DEBUG_SQL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DATABASE_CHANGE_NOTIFICATION_OPTIONS

        static final java.lang.String CONNECTION_PROPERTY_DATABASE_CHANGE_NOTIFICATION_OPTIONS
        Use this connection property to set one or more Database Change Notification options. See the JavaDoc of registerDatabaseChangeNotification(Properties) for the complete list of Database Change Notification options. The default value of this property is null. The Database Change Notification connection options set using this connection property take precedence over the Database Change Notification options set on DCN registration.

        Example:

            Properties prop = new Properties();
            properties.setProperty(OracleConnection.CONNECTION_PROPERTY_DATABASE_CHANGE_NOTIFICATION_OPTIONS,
                "DCN_NOTIFY_ROWIDS=true,DCN_CLIENT_INIT_CONNECTION=true,DCN_QUERY_CHANGE_NOTIFICATION=true");
            

        Since:
        26
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DATABASE_CHANGE_NOTIFICATION_OPTIONS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DATABASE_CHANGE_NOTIFICATION_OPTIONS_DEFAULT
      • CONNECTION_PROPERTY_DATABASE_CHANGE_NOTIFICATION_OPTIONS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DATABASE_CHANGE_NOTIFICATION_OPTIONS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TOKEN_AUTHENTICATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TOKEN_AUTHENTICATION_DEFAULT
      • CONNECTION_PROPERTY_TOKEN_AUTHENTICATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TOKEN_AUTHENTICATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TOKEN_LOCATION

        static final java.lang.String CONNECTION_PROPERTY_TOKEN_LOCATION

        When CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "OCI_TOKEN" or "OAUTH", this property specifies the file system path to obtain access tokens from. The path specified by this property must be a directory containing a file named "token", and the token file must contain a JSON Web Token (JWT) on a single line of UTF-8 encoded text. The JWT format is specified by RFC 7519.

        • If the value of CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is "OCI_TOKEN" then the path given by this property must be a directory containing a both a token file, and a file named "oci_db_key.pem" that stores the proof-of-possession key for the JWT token. The private key file must use the PEM format and must contain the base64 encoding of an RSA private key in the PKCS#8 format. The private key encoding must appear between the tags "-----BEGIN PRIVATE KEY---" and "-----END PRIVATE KEY-----". Oracle JDBC uses the private key to demonstrate proof of possession. Proof of possession is specified by RFC 7800.

          Note that the OCI CLI tool may be used to generate both the token and private key files. By default, the OCI CLI tool will write these files to the location of $HOME/.oci/db-token/. If the value of CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is "OCI_TOKEN", and no location is configured by this property, then Oracle JDBC will read the token and private key files from the default location of $HOME/.oci/db-token/.

        • If the value of CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is "OAUTH", then only the token file is required, and the path given by this property may locate either a file or directory. If a file is located, then the JWT is read from it. Otherwise, if a directory is located, then the JWT is read from a file named "token" in that directory.

        If an Oracle Net Descriptor style URL includes the TOKEN_LOCATION parameter then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TOKEN_LOCATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TOKEN_LOCATION_DEFAULT
      • CONNECTION_PROPERTY_TOKEN_LOCATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TOKEN_LOCATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION

        static final java.lang.String CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION

        Configures how Oracle JDBC performs authentication with a username and password. Possible values for this property are:

        If an Oracle Net Descriptor style URL includes the PASSWORD_AUTH parameter then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_IAM_URL

        static final java.lang.String CONNECTION_PROPERTY_OCI_IAM_URL

        When CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION is set to "OCI_TOKEN", this property must specify the full path of the Identity and Access Management (IAM) endpoint that Oracle JDBC requests an access token from.

        If an Oracle Net Descriptor style URL includes the OCI_IAM_URL parameter, then the value of that parameter takes precedence over a value defined by this property.

        The value of this property is typically a URL of the following form:

            https://auth.{region}.oraclecloud.com/v1/actions/generateScopedAccessBearerToken
            

        For a list of region-specific endpoints, see Identity and Access Management Data Plane API . The servers located at these HTTPS endpoints should have a certificate which is signed by an authority included in the JDK's built-in cacerts trust store. If a server presents a certificate which is not signed by an authority included in cacerts, then Oracle JDBC will close the connection without sending a request, and a SQLException is thrown. If necessary, CONNECTION_PROPERTY_WALLET_LOCATION or CONNECTION_PROPERTY_THIN_JAVAX_NET_SSL_TRUSTSTORE may be used to configure trusted certificates, in addition to those already included by cacerts.

        The request for an access token is authenticated by the database username and password of an IAM user. These credentials may be configured through any existing method of configuring a database username and password, such as the "user" and "password" properties passed to Driver.connect(String, Properties). For information about enabling authentication as an IAM user, including how to create a database username and password, see Authenticating and Authorizing IAM Users for Oracle DBaaS Databases .

        An access token requested from IAM will authorize logins to a scope of one or more databases. The scope must only include databases that an IAM policy has allowed a user to use, otherwise the request will fail. The scope may be configured as follows:

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_IAM_URL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_IAM_URL_DEFAULT
      • CONNECTION_PROPERTY_OCI_IAM_URL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_IAM_URL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_TENANCY

        static final java.lang.String CONNECTION_PROPERTY_OCI_TENANCY

        Specifies the Oracle Cloud ID (OCID) of a tenancy that Oracle JDBC authenticates with when requesting access tokens.

        This property is required when CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION is set to "OCI_TOKEN".

        This property is optional when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "OCI_API_KEY" or "OCI_INTERACTIVE". If this property is not set, then the tenancy OCID is read from a profile of an OCI configuration file.

        If an Oracle Net Descriptor style URL includes the OCI_TENANCY parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_TENANCY_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_TENANCY_DEFAULT
      • CONNECTION_PROPERTY_OCI_TENANCY_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_TENANCY_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_COMPARTMENT

        static final java.lang.String CONNECTION_PROPERTY_OCI_COMPARTMENT

        Specifies the scope of access tokens requested by Oracle JDBC as the Oracle Cloud ID (OCID) of a compartment.

        This property is optional when CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION is set to "OCI_TOKEN", or when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "OCI_API_KEY", "OCI_INSTANCE_PRINCIPAL", "OCI_RESOURCE_PRINCIPAL", "OCI_DELEGATION_TOKEN", or "OCI_INTERACTIVE". If this property is not set, then Oracle JDBC requests access to all databases within the tenancy identified by CONNECTION_PROPERTY_OCI_TENANCY.

        If an Oracle Net Descriptor style URL includes the OCI_COMPARTMENT parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_COMPARTMENT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_COMPARTMENT_DEFAULT
      • CONNECTION_PROPERTY_OCI_COMPARTMENT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_COMPARTMENT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_DATABASE

        static final java.lang.String CONNECTION_PROPERTY_OCI_DATABASE

        Specifies the scope of access tokens requested by Oracle JDBC as the Oracle Cloud ID (OCID) of a database.

        This property is optional when CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION is set to "OCI_TOKEN", or when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "OCI_API_KEY", "OCI_INSTANCE_PRINCIPAL", "OCI_RESOURCE_PRINCIPAL", "OCI_DELEGATION_TOKEN", or "OCI_INTERACTIVE". If this property is not set, then Oracle JDBC requests access to all databases within the compartment identified by CONNECTION_PROPERTY_OCI_COMPARTMENT.

        If this property is set, then CONNECTION_PROPERTY_OCI_COMPARTMENT MUST be set to the OCID of the database's compartment.

        If an Oracle Net Descriptor style URL includes the OCI_DATABASE parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_DATABASE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_DATABASE_DEFAULT
      • CONNECTION_PROPERTY_OCI_DATABASE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_DATABASE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_COMMIT_SELECT_ON_AUTOCOMMIT

        static final java.lang.String CONNECTION_PROPERTY_COMMIT_SELECT_ON_AUTOCOMMIT
        This property controls whether the driver will be committing all SELECT statements when autocommit is enabled.

        It is preferable to leave this property to its default value: false.

        SELECT statements involving a DB link will open a transaction unless this property is set to true.

        This property is only supported by the Oracle JDBC Thin driver (ie: jdbc:oracle:thin).

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_COMMIT_SELECT_ON_AUTOCOMMIT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_COMMIT_SELECT_ON_AUTOCOMMIT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_COMMIT_SELECT_ON_AUTOCOMMIT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_COMMIT_SELECT_ON_AUTOCOMMIT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_JSON_DEFAULT_GET_OBJECT_TYPE

        static final java.lang.String CONNECTION_PROPERTY_JSON_DEFAULT_GET_OBJECT_TYPE
        This property sets the default return type of getObject() methods when the column type is JSON. Specifically, this property controls the return type of the following methods:
        • ResultSet.getObject(int)
        • ResultSet.getObject(String)
        • CallableStatement.getObject(int)
        • CallableStatement.getObject(String)

        If this property is not set, the above mentioned methods will throw an exception when the column type is JSON.

        The return types supported are:

        • java.lang.String
        • java.io.Reader
        • java.io.InputStream
        • oracle.sql.json.OracleJsonValue
        • jakarta.json.JsonValue
        • oracle.sql.json.OracleJsonParser
        • jakarta.json.stream.JsonParser
        • oracle.sql.json.OracleJsonDatum

        The following example sets the default type to oracle.sql.json.OracleJsonValue:

              OracleDataSource ods = new oracle.jdbc.pool.OracleDataSource();
              ods.setURL(DB_URL);
              ods.setUser(DB_USER);
              ods.setPassword(DB_PASSWORD);
              Properties prop = new Properties();
              prop.setProperty(OracleConnection.CONNECTION_PROPERTY_JSON_DEFAULT_GET_OBJECT_TYPE,
                               "oracle.sql.json.OracleJsonValue");
              ods.setConnectionProperties(props);
              Connection conn = ods.getConnection();
              Statement stmt = conn.createStatement();
              ResultSet rs = stmt.executeQuery(SQL_QUERY);
              // to get the first record.
              rs.next();
              OracleJsonValue ojv = (OracleJsonValue) rs.getObject(COLUMN_NAME);
            
        Alternatively, the required object type can also be obtained using ResultSet.getObject(int,java.lang.Class) .
              OracleJsonValue ojv = (OracleJsonValue) rs.getObject(COLUMN_NAME,OracleJsonValue.class);
            

        Since:
        23
        See Also:
        ResultSet.getObject(int), ResultSet.getObject(String), ResultSet.getObject(String,java.lang.Class), Constant Field Values
      • CONNECTION_PROPERTY_JSON_DEFAULT_GET_OBJECT_TYPE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_JSON_DEFAULT_GET_OBJECT_TYPE_DEFAULT
      • CONNECTION_PROPERTY_JSON_DEFAULT_GET_OBJECT_TYPE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_JSON_DEFAULT_GET_OBJECT_TYPE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ACCESS_TOKEN

        static final java.lang.String CONNECTION_PROPERTY_ACCESS_TOKEN

        This property configures an access token that Oracle JDBC uses for authentication with Oracle Database. An access token configured with this property will only be used if neither a user name nor password has been provided when creating a new connection. If a user name or a password is provided, via connection properties, programmatic APIs, or by any other means, then the value of this property is ignored.

        If a value is configured for this property, then Oracle JDBC will ignore any token that is specified by CONNECTION_PROPERTY_TOKEN_AUTHENTICATION and CONNECTION_PROPERTY_TOKEN_LOCATION.

        The value of this property must be a JSON Web Token (JWT). The JWT format is specified by RFC 7519.

        The database instance that Oracle JDBC connects to must be configured to validate the token with the service that issued it. The Oracle Database Security Guide specifies how to configure the database for token based authentication.

        On systems where access tokens are stored in environment variables, it may be useful to note that an ojdbc.properties file can include expressions that resolve to the value of an environment variable. For example, this line in ojdbc.properties would configure this property as the value of an environment variable named "DATABASE_ACCESS_TOKEN":

            oracle.jdbc.accessToken=${DATABASE_ACCESS_TOKEN}
            
        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ACCESS_TOKEN_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ACCESS_TOKEN_DEFAULT
      • CONNECTION_PROPERTY_ACCESS_TOKEN_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ACCESS_TOKEN_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RETAIN_LOB_PREFETCH_DATA

        static final java.lang.String CONNECTION_PROPERTY_RETAIN_LOB_PREFETCH_DATA

        When this property is enabled, Blob, Clob, and NClob objects retain copies of their prefetched data until freed. This property is enabled by default.

        Disabling this property configures the driver to aggressively free memory that has been allocated for prefetched LOB data. When the value of this property is set to "false", Blob, Clob, and NClob objects created by a ResultSet will release prefetched data when the cursor is repositioned (by next(), absolute(int), etc), or when the the ResultSet is closed.

        Typically, it is best to leave this property as enabled (the default). Reading data that is retained in local memory is much faster than reading it from a remote database. Disabling this property may cause unexpected performance regressions for existing code, where LOBs are read after their ResultSet is repositioned or closed. However, in cases where LOBs are not read after repositioning or closing their ResultSet, and LOBs are not explicitly freed, retaining a copy of unused prefetched data will hinder performance.

        Programmers are strongly encouraged to make use of Blob.free() and Clob.free(). These methods signal when it is safe for the driver to release the resources of a LOB. If a LOB has been freed, then no copy of its prefetched data will be retained. This property should be set to false only in cases where it infeasible to invoke the free() method, and it is known that LOBs are not read after repositioning or closing a ResultSet.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RETAIN_LOB_PREFETCH_DATA_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_RETAIN_LOB_PREFETCH_DATA_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_RETAIN_LOB_PREFETCH_DATA_ACCESSMODE

        static final byte CONNECTION_PROPERTY_RETAIN_LOB_PREFETCH_DATA_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_CONFIG_FILE

        static final java.lang.String CONNECTION_PROPERTY_OCI_CONFIG_FILE

        Specifies the file system path of a configuration file for the OCI SDK and CLI. This property is optional when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "OCI_API_KEY" or "OCI_INTERACTIVE".

        If no value is specified for this property, then configuration is read from a default location of: $HOME/.oci/config

        If an Oracle Net Descriptor style URL includes the OCI_CONFIG_FILE parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_CONFIG_FILE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_CONFIG_FILE_DEFAULT
      • CONNECTION_PROPERTY_OCI_CONFIG_FILE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_CONFIG_FILE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_PROFILE

        static final java.lang.String CONNECTION_PROPERTY_OCI_PROFILE

        Specifies the name of a profile in a configuration file for the OCI SDK and CLI. This property is optional when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "OCI_API_KEY" or "OCI_INTERACTIVE".

        If no value is specified for this property, then configuration is read from a profile with the name "DEFAULT".

        If an Oracle Net Descriptor style URL includes the OCI_PROFILE parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_PROFILE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_OCI_PROFILE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_OCI_PROFILE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_OCI_PROFILE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AZURE_DB_APP_ID_URI

        static final java.lang.String CONNECTION_PROPERTY_AZURE_DB_APP_ID_URI

        Specifies the application ID URI of a database registered with Azure. This property is required when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "AZURE_SERVICE_PRINCIPAL", "AZURE_MANAGED_IDENTITY", or "AZURE_INTERACTIVE". This property is also required when CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION is set to "AZURE_TOKEN".

        If an Oracle Net Descriptor style URL includes the AZURE_DB_APP_ID parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AZURE_DB_APP_ID_URI_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_AZURE_DB_APP_ID_URI_DEFAULT
      • CONNECTION_PROPERTY_AZURE_DB_APP_ID_URI_ACCESSMODE

        static final byte CONNECTION_PROPERTY_AZURE_DB_APP_ID_URI_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TENANT_ID

        static final java.lang.String CONNECTION_PROPERTY_TENANT_ID

        Specifies the ID of an Azure tenant that Oracle JDBC authenticates with when requesting access tokens. This property is optional when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "AZURE_SERVICE_PRINCIPAL" or "AZURE_INTERACTIVE". This property is also optional when CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION is set to "AZURE_TOKEN".

        If no value is specified for this property, then Oracle JDBC authenticates with the tenant configured by environment variables of the Azure SDK for Java

        If an Oracle Net Descriptor style URL includes the TENANT_ID parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_TENANT_ID_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_TENANT_ID_DEFAULT
      • CONNECTION_PROPERTY_TENANT_ID_ACCESSMODE

        static final byte CONNECTION_PROPERTY_TENANT_ID_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CLIENT_ID

        static final java.lang.String CONNECTION_PROPERTY_CLIENT_ID

        Specifies the ID of an Azure client that Oracle JDBC authenticates as when requesting access tokens. This property is optional when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "AZURE_SERVICE_PRINCIPAL", "AZURE_MANAGED_IDENTITY", or "AZURE_INTERACTIVE". This property is also optional when CONNECTION_PROPERTY_PASSWORD_AUTHENTICATION is set to "AZURE_TOKEN".

        If no value is specified for this property, then Oracle JDBC authenticates as the client configured by environment variables of the Azure SDK for Java

        If an Oracle Net Descriptor style URL includes the CLIENT_ID parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CLIENT_ID_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CLIENT_ID_DEFAULT
      • CONNECTION_PROPERTY_CLIENT_ID_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CLIENT_ID_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CLIENT_SECRET

        static final java.lang.String CONNECTION_PROPERTY_CLIENT_SECRET

        Specifies the secret string for an Azure client that Oracle JDBC authenticates as when requesting access tokens. This property is optional when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "AZURE_SERVICE_PRINCIPAL".

        If no value is specified for this property, then Oracle JDBC authenticates with the client secret configured by environment variables of the Azure SDK for Java

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CLIENT_SECRET_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CLIENT_SECRET_DEFAULT
      • CONNECTION_PROPERTY_CLIENT_SECRET_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CLIENT_SECRET_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CLIENT_CERTIFICATE

        static final java.lang.String CONNECTION_PROPERTY_CLIENT_CERTIFICATE

        Specifies the file system path of a certificate for an Azure client that Oracle JDBC authenticates as when requesting access tokens. This property is optional when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "AZURE_SERVICE_PRINCIPAL".

        If no value is specified for this property, then Oracle JDBC authenticates with the client certificate configured by environment variables of the Azure SDK for Java

        If an Oracle Net Descriptor style URL includes the CLIENT_CERTIFICATE parameter, then the value of that parameter takes precedence over a value defined by this property.

        The value of this property is ignored if a client secret has been configured by a connection property, descriptor parameter, or SEPS wallet.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CLIENT_CERTIFICATE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CLIENT_CERTIFICATE_DEFAULT
      • CONNECTION_PROPERTY_CLIENT_CERTIFICATE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CLIENT_CERTIFICATE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CLIENT_CERTIFICATE_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CLIENT_CERTIFICATE_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_CLIENT_CERTIFICATE_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CLIENT_CERTIFICATE_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REDIRECT_URI

        static final java.lang.String CONNECTION_PROPERTY_REDIRECT_URI

        Specifies the redirect URI for an Azure client that Oracle JDBC authenticates as when requesting access tokens. This property is required when CONNECTION_PROPERTY_TOKEN_AUTHENTICATION is set to "AZURE_INTERACTIVE".

        If an Oracle Net Descriptor style URL includes the REDIRECT_URI parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REDIRECT_URI_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_REDIRECT_URI_DEFAULT
      • CONNECTION_PROPERTY_REDIRECT_URI_ACCESSMODE

        static final byte CONNECTION_PROPERTY_REDIRECT_URI_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_ERROR_URL

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_ERROR_URL
        Use this system property to enable error url to appear in the error message. The default value is true
        Since:
        23ai
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_ERROR_URL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ENABLE_ERROR_URL_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ENABLE_ERROR_URL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ENABLE_ERROR_URL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_PREPROCESS

        static final java.lang.String CONNECTION_PROPERTY_PARAMETER_METADATA_PREPROCESS

        This property controls whether the driver will pre-process queries for the Parameter Metadata API.

        If set to true, the driver will compress all IN clauses with multiple bind variables to an IN clause with a single bind variable. This addresses some performance issues when using the Parameter Metadata API with SQL queries containing IN clauses with thousands of bind variables (or parameters).

        Since:
        23
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_PREPROCESS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PARAMETER_METADATA_PREPROCESS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_PREPROCESS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PARAMETER_METADATA_PREPROCESS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_SIZE

        static final java.lang.String CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_SIZE

        The maximum number of statements that will be stored in the parameter metadata cache. The default is 0 which disables the parameter metadata cache. If set to a value greater than 0, the parameter metadata cache is enabled.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_SIZE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_SIZE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_SIZE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_INCLUDE_PARSING

        static final java.lang.String CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_INCLUDE_PARSING

        If we should include the parsing information with the parameter metadata cache. This allows fast re-query of types in the database at the cost of a larger cache size.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_INCLUDE_PARSING_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_INCLUDE_PARSING_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_INCLUDE_PARSING_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PARAMETER_METADATA_CACHE_INCLUDE_PARSING_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REMOTE_CONFIGURATION_FILTERING

        static final java.lang.String CONNECTION_PROPERTY_REMOTE_CONFIGURATION_FILTERING

        The property is used to disable the whitelist filtering of properties that can be set by a remote provider. The default value of the property is "true" which means that filtering is enabled and in that case only the whitelisted properties can be set by the remote provider. If the property is set to "false", the remote provider can set all the properties.

        If an application is multi-tenant and if the tenants can configure their JDBC URL then it's highly recommended to not disable the filtering. Filtering can be disabled in a single-tenant application server.

        Not all the properties are whitelisted due to security reasons. Only the properties that do not access the FileSystem or configure classes on the ClassPath are whitelisted. The list of properties whitelisted for remote configuration can be retrieved by using connection.getProviderAllowedProperties().

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REMOTE_CONFIGURATION_FILTERING_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_REMOTE_CONFIGURATION_FILTERING_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_REMOTE_CONFIGURATION_FILTERING_ACCESSMODE

        static final byte CONNECTION_PROPERTY_REMOTE_CONFIGURATION_FILTERING_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_ALL_DATA_FOR_VALUE_LOBS

        static final java.lang.String CONNECTION_PROPERTY_SEND_ALL_DATA_FOR_VALUE_LOBS

        The property is used to enable prefetching of full lob data for Value Based Lobs (VBLs). If the property value is set to "true", the server sends full lob data for value lobs irrespective of the lob prefetch size set by the application. The default value of this property is "false".

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_ALL_DATA_FOR_VALUE_LOBS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SEND_ALL_DATA_FOR_VALUE_LOBS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_ALL_DATA_FOR_VALUE_LOBS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SEND_ALL_DATA_FOR_VALUE_LOBS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_BOOLEAN_IN_PLSQL

        static final java.lang.String CONNECTION_PROPERTY_SEND_BOOLEAN_IN_PLSQL
        Deprecated.
        This property should no longer be used, oracle.jdbc.sendBooleanAsNativeBoolean should be used instead.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_BOOLEAN_IN_PLSQL_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SEND_BOOLEAN_IN_PLSQL_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_BOOLEAN_IN_PLSQL_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SEND_BOOLEAN_IN_PLSQL_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_BOOLEAN_AS_NATIVE_BOOLEAN

        static final java.lang.String CONNECTION_PROPERTY_SEND_BOOLEAN_AS_NATIVE_BOOLEAN

        This property controls how the driver sends a Boolean parameter. By default, it sends it as a BOOLEAN type (new type in 23ai), but if this property is set to "false" then the value will be sent as a VARNUM which was the default behavior until 23ai. This is useful when a PLSQL procedure with a NUMBER parameter is used and it is set by calling the setBoolean JDBC API or setBoolean is used to insert a value in a table with a VARCHAR2(1) type column.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_BOOLEAN_AS_NATIVE_BOOLEAN_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SEND_BOOLEAN_AS_NATIVE_BOOLEAN_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SEND_BOOLEAN_AS_NATIVE_BOOLEAN_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SEND_BOOLEAN_AS_NATIVE_BOOLEAN_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DATABASE_STATE_REQUIREMENT

        static final java.lang.String CONNECTION_PROPERTY_DATABASE_STATE_REQUIREMENT

        This property specifies in which state the database should be for the connection to succeed. By default, the value is "NOMOUNT", but if the property is set to "MOUNT" then it means that the DB is expected to be in MOUNT state.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DATABASE_STATE_REQUIREMENT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DATABASE_STATE_REQUIREMENT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DATABASE_STATE_REQUIREMENT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DATABASE_STATE_REQUIREMENT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ALLOW_MIXING_JDBC_AND_NAMED_BINDS

        static final java.lang.String CONNECTION_PROPERTY_ALLOW_MIXING_JDBC_AND_NAMED_BINDS

        This system property is used to allow the mixing of JDBC bind notation (?) and named bind notation (:bind) in the same statement. The default value of the property is "false" which means the driver will error out when encountering JDBC binds and named binds in the same statement. If the property is set to "true", the driver will allow mixing bind parameter types.

        It is strongly recommended to leave this property to its default value: "false".

        Mixing JDBC bind parameters and named binds in the same statement is not supported and such statement should be fixed. Because the driver used to accept these statements, this property can be set to true for backward compatibility.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ALLOW_MIXING_JDBC_AND_NAMED_BINDS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ALLOW_MIXING_JDBC_AND_NAMED_BINDS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ALLOW_MIXING_JDBC_AND_NAMED_BINDS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ALLOW_MIXING_JDBC_AND_NAMED_BINDS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ALLOW_SINGLE_SHARD_TRANSACTION_SUPPORT

        static final java.lang.String CONNECTION_PROPERTY_ALLOW_SINGLE_SHARD_TRANSACTION_SUPPORT

        This property is used to allow single shard transaction support when using sharding datasource. When the property value is set to "true", transactions can be started on direct shard, while setting the property value to "false" indicates that the transactions will always be started on the catalog database. The default value of the property is "false".

        This feature can be enabled in following ways:

        •     Properties prop = new Properties();
              prop.setProperty(OracleConnection.CONNECTION_PROPERTY_USE_SHARDING_DRIVER_CONNECTION,"true");  
              prop.setProperty(OracleConnection.CONNECTION_PROPERTY_ALLOW_SINGLE_SHARD_TRANSACTION_SUPPORT,"true");
              
        •     -Doracle.jdbc.useShardingDriverConnection=true
              -Doracle.jdbc.allowSingleShardTransactionSupport=true
              
        •     "jdbc:oracle:thin:@//host:port/service?oracle.jdbc.useShardingDriverConnection=true&oracle.jdbc.allowSingleShardTransactionSupport=true"
              

        See Also:
        CONNECTION_PROPERTY_USE_SHARDING_DRIVER_CONNECTION, Constant Field Values
      • CONNECTION_PROPERTY_ALLOW_SINGLE_SHARD_TRANSACTION_SUPPORT_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_ALLOW_SINGLE_SHARD_TRANSACTION_SUPPORT_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_ALLOW_SINGLE_SHARD_TRANSACTION_SUPPORT_ACCESSMODE

        static final byte CONNECTION_PROPERTY_ALLOW_SINGLE_SHARD_TRANSACTION_SUPPORT_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAX_BATCH_MEMORY

        static final java.lang.String CONNECTION_PROPERTY_MAX_BATCH_MEMORY

        This property configures the maximum amount of memory allocated by Statement.executeBatch() and Statement.executeLargeBatch() when converting Java bind values to SQL data types. The value of this property is an amount of bytes. The default value is 0, which configures no maximum.

        If this property is configured as a non-zero value, then executeBatch and executeLargeBatch may execute multiple database calls to complete a batch DML operation. Each database call will include no more than M bytes of bind values, where M is the value configured by this property. For example, if this property is set to "2000000", then a batch DML operation with 4,000,000 bytes of bind values will be executed as two database calls: Each call will include 2,000,000 bytes of bind values.

        A single set of bind values added by PreparedStatement.addBatch() may require more memory than the maximum configued by this property. The configured maximum is ignored in this case, and the batch DML operation will execute a database call that includes just this single set of bind values.

        Executing multiple database calls can significantly increase the amount of time required to complete a batch DML operation when compared to a single database call. The trade-off between memory usage and response time must be considered when configuring this property.

        Prior to the 23.4 release, the maximum amount of memory was fixed at 2,097,152 bytes. If consistent behavior is required, this fixed limit may be restored by setting this property as:

            oracle.jdbc.maxBatchMemory=2097152 
            
        Since:
        23.4
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAX_BATCH_MEMORY_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_MAX_BATCH_MEMORY_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_MAX_BATCH_MEMORY_ACCESSMODE

        static final byte CONNECTION_PROPERTY_MAX_BATCH_MEMORY_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_VECTOR_DEFAULT_GET_OBJECT_TYPE

        static final java.lang.String CONNECTION_PROPERTY_VECTOR_DEFAULT_GET_OBJECT_TYPE

        This property sets the default return type of getObject() methods when the column type is VECTOR. Specifically, this property controls the return type of the following methods:

        • ResultSet.getObject(int)
        • ResultSet.getObject(String)
        • CallableStatement.getObject(int)
        • CallableStatement.getObject(String)

        If this property is not set, the above mentioned methods will throw an exception when the column type is VECTOR.

        The return types supported are:

        • double[]
        • float[]
        • long[]
        • int[]
        • short[]
        • byte[]
        • boolean[]
        • String
        • Clob
        • VECTOR

        More details about these conversions are specified in the JavaDocs of OracleType.VECTOR, OracleType.VECTOR_INT8, OracleType.VECTOR_FLOAT32, and OracleType.VECTOR_FLOAT64.

        In addition to the type names listed above, this property may also be set to the value of: "preferred-array-class". When set to this value, getObject methods return an instance of the preferred array class for each VECTOR type:

        The following example sets the default type to double[]

        
              double[] queryVector() throws SQLException {
                Properties connectionProperties = new Properties();
                connectionProperties.setProperty(
                  "oracle.jdbc.vectorDefaultGetObjectType",
                  "double[]");
                ... set other properties like username and password, if needed ...
                try (
                  Connection connection =
                    DriverManager.getConnection("jdbc:oracle:thin:@example", connectionProperties);
                  Statement statement = connection.createStatement();
                  ResultSet resultSet = statement.executeQuery(
                    "SELECT vectorColumn FROM example");) {
           
                  resultSet.next();
                  return (double[])resultSet.getObject(1);
                }
              }
            
        Alternatively, the required object type can also be obtained using ResultSet.getObject(int,java.lang.Class) .
              double[] vector = resultSet.getObject(1, double[].class);
            

        Since:
        23.4
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_VECTOR_DEFAULT_GET_OBJECT_TYPE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_VECTOR_DEFAULT_GET_OBJECT_TYPE_DEFAULT
      • CONNECTION_PROPERTY_VECTOR_DEFAULT_GET_OBJECT_TYPE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_VECTOR_DEFAULT_GET_OBJECT_TYPE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DISABLED_BUG_FIXES

        static final java.lang.String CONNECTION_PROPERTY_DISABLED_BUG_FIXES

        This system property can be used to disable bug fixes when these fixes create a backward compatibility issue for existing applications that may rely on the bogus behavior. The value can be set to a comma-separated list of bug numbers which fixes need to be disabled.

        By default, this property is empty and, therefore, all the bug fixes are enabled.

        For example, to disable bug fixes 123123123 and 324324324 you can set this system property to:

         java -Doracle.jdbc.disabledBugFixes=123123123,324324324 ... 

        Note: Bug numbers can have the BUG_ prefix which is optional and case-insensitive, meaning that BUG_123123123 and bug_123123123 are also valid inputs.

        The list of bug fixes that can be turned off can be found in the SwitchableBugFix.BugNumber enum.

        Since:
        23.4
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DISABLED_BUG_FIXES_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_DISABLED_BUG_FIXES_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_DISABLED_BUG_FIXES_ACCESSMODE

        static final byte CONNECTION_PROPERTY_DISABLED_BUG_FIXES_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_SIZE

        static final java.lang.String CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_SIZE

        This system property can be used to configure the maximum size in bytes of the client's query ResultSet cache.

        The default value is -1.

        Specifying a size less than 32768 disables client result cache for this JVM.

        For example, to configure the max cache size on the client, you can set this property to:

         java -Doracle.jdbc.queryResultCacheMaxSize=65536 ... 

        Since:
        23.4
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_SIZE_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_SIZE_ACCESSMODE

        static final byte CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_SIZE_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_LAG

        static final java.lang.String CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_LAG

        This system property can be used to configure the maximum time (in milliseconds) of the client's query ResultSet cache lag.

        The default value is -1.

        For example, to configure the max cache lag on the client, you can set this property to:

         java -Doracle.jdbc.queryResultCacheMaxLag=6000 ... 

        Since:
        23.4
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_LAG_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_LAG_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_LAG_ACCESSMODE

        static final byte CONNECTION_PROPERTY_QUERY_RESULT_CACHE_MAX_LAG_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONFIGURATION_PROVIDERS

        static final java.lang.String CONNECTION_PROPERTY_CONFIGURATION_PROVIDERS

        This system property can be used to indicate which configuration providers can be used by the driver. This value can be "(ALL)" (all providers are enabled) or "(NONE)" (all providers are disabled) or a comma-separated names of allowed providers (case sensitive) between parenthesis.

        By default, all providers are enabled. The value is set to "(ALL)".

        The value is correlated to the type of the OracleConfigurationProvider. If the provider is present in the classpath but its type is not in this list (or the value is different than '(ALL)') then the provider will not be loaded and an error will be raised if an URL with its type is defined.

        For more information, please read the documentation in OracleConfigurationProvider.

        Since:
        23.4
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONFIGURATION_PROVIDERS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_CONFIGURATION_PROVIDERS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_CONFIGURATION_PROVIDERS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_CONFIGURATION_PROVIDERS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_XA_THROUGH_SESSIONLESS_TRANSACTIONS

        static final java.lang.String CONNECTION_PROPERTY_XA_THROUGH_SESSIONLESS_TRANSACTIONS

        Set this property to "true" to process XA transactions as sessionless transactions. The benefit is performance, as sessionless transaction operations can be piggybacked. But there are limitations: sessionless transactions are not truly global and can't have more than one branch.

        The default value of the property is "false".

        Since:
        23.6
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_XA_THROUGH_SESSIONLESS_TRANSACTIONS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_XA_THROUGH_SESSIONLESS_TRANSACTIONS_DEFAULT
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_XA_THROUGH_SESSIONLESS_TRANSACTIONS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_XA_THROUGH_SESSIONLESS_TRANSACTIONS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AZURE_CREDENTIALS

        static final java.lang.String CONNECTION_PROPERTY_AZURE_CREDENTIALS

        Specifies the location of an Oracle wallet containing a client secret for authentication with Azure. Where "{CLIENT_ID}" is an Azure client ID, Oracle JDBC will search the wallet for a secret named:

            oracle.security.azure.credential.{CLIENT_ID}
            

        The {CLIENT_ID} can be configured as a connection property or descriptor parameter

        This property is ignored if a client secret or client certificate are configured with oracle.jdbc.clientSecret or oracle.jdbc.clientCertificate

        If an Oracle Net Descriptor style URL includes the AZURE_CREDENTIALS parameter, then the value of that parameter takes precedence over a value defined by this property.

        Since:
        23.6
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_AZURE_CREDENTIALS_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_AZURE_CREDENTIALS_DEFAULT
      • CONNECTION_PROPERTY_AZURE_CREDENTIALS_ACCESSMODE

        static final byte CONNECTION_PROPERTY_AZURE_CREDENTIALS_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_PASSWORD
        The value of this property is used as the password when connecting to the database.
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SERVER

        static final java.lang.String CONNECTION_PROPERTY_SERVER
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_SERVER_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_SERVER_DEFAULT
      • CONNECTION_PROPERTY_SERVER_ACCESSMODE

        static final byte CONNECTION_PROPERTY_SERVER_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROVIDER_CONNECTION_STRING

        static final java.lang.String CONNECTION_PROPERTY_PROVIDER_CONNECTION_STRING

        Identifies the name of a ConnectionStringProvider that provides a connection string for establishing a network connection to Oracle Database.

        The provider is not used if a database specifier has been configured in any other way:

        • A JDBC URL having any character other than a single "@" symbol between the prefix of jdbc:oracle:{thin|oci|kprb} and an optional query section beginning with a "?" symbol.
        • The "oracle.jdbc.database" connection property.
        • The "server" connection property.
        • Any proprietary API that exposes methods to configure a connection string, such as a connection pool DataSource.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROVIDER_CONNECTION_STRING_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PROVIDER_CONNECTION_STRING_DEFAULT
      • CONNECTION_PROPERTY_PROVIDER_CONNECTION_STRING_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PROVIDER_CONNECTION_STRING_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROVIDER_USERNAME

        static final java.lang.String CONNECTION_PROPERTY_PROVIDER_USERNAME

        Identifies the name of a UsernameProvider that provides a user name for database authentication.

        The provider is not used if a user name has been configured in any other way:

        • The DataSource.getConnection(String, String) method.
        • The "user/password@" element of a JDBC URL.
        • The "user" connection property.
        • The "oracle.jdbc.user" connection property.
        • Any proprietary API that exposes methods to configure a username, such as a connection pool DataSource.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROVIDER_USERNAME_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PROVIDER_USERNAME_DEFAULT
      • CONNECTION_PROPERTY_PROVIDER_USERNAME_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PROVIDER_USERNAME_ACCESSMODE
        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROVIDER_PASSWORD

        static final java.lang.String CONNECTION_PROPERTY_PROVIDER_PASSWORD

        Identifies the name of a PasswordProvider that provides a password for database authentication.

        The provider is not used if a password has been configured in any other way:

        • The DataSource.getConnection(String, String) method.
        • The "user/password@" element of a JDBC URL.
        • The "password" connection property.
        • The "oracle.jdbc.password" connection property.
        • Any proprietary API that exposes methods to configure a username or password, such as a connection pool DataSource.

        See Also:
        Constant Field Values
      • CONNECTION_PROPERTY_PROVIDER_PASSWORD_DEFAULT

        static final java.lang.String CONNECTION_PROPERTY_PROVIDER_PASSWORD_DEFAULT
      • CONNECTION_PROPERTY_PROVIDER_PASSWORD_ACCESSMODE

        static final byte CONNECTION_PROPERTY_PROVIDER_PASSWORD_ACCESSMODE
        See Also:
        Constant Field Values

      The provider is not used if an username or password has been configured in any other way:

See Also:
Constant Field Values
  • Method Detail

    • commit

      void commit​(java.util.EnumSet<OracleConnection.CommitOption> options)
           throws java.sql.SQLException
      Commits the transaction with the given options.
      Parameters:
      options - commit options
      Throws:
      java.sql.SQLException
    • archive

      void archive​(int mode,
                   int aseq,
                   java.lang.String acstext)
            throws java.sql.SQLException
      Deprecated.
      This method will be removed in a future version.
      Not implemented.
      Throws:
      java.sql.SQLException
    • openProxySession

      void openProxySession​(int type,
                            java.util.Properties prop)
                     throws java.sql.SQLException
      Opens a new proxy session with the username provided in the prop argument and switches to this new session.

      This feature is supported for both thin and oci driver.

      Three proxy types are supported :
      • OracleConnection.PROXYTYPE_USER_NAME : In this type PROXY_USER_NAME needs to be provided in prop. The value should be a java.lang.String;
      • OracleConnection.PROXYTYPE_DISTINGUISHED_NAME : In this type PROXY_DISTINGUISHED_NAME has to be set in prop. The value is a java.lang.String object;
      • OracleConnection.PROXYTYPE_CERTIFICATE : In this type PROXY_CERTIFICATE has to be set in prop. The value is a bytep[] which contains the certificate.
      Roles can also be provided in the property argument. The key is OracleConnection.PROXY_ROLES. The value is a String[] which contains the roles.
      Parameters:
      type - has to be either OracleConnection.PROXYTYPE_USER_NAME or OracleConnection.PROXYTYPE_DISTINGUISHED_NAME or OracleConnection.PROXYTYPE_CERTIFICATE
      prop - keys/values
      Throws:
      java.sql.SQLException
    • getAutoClose

      boolean getAutoClose()
                    throws java.sql.SQLException
      The driver is always in auto-close mode.
      Returns:
      should always return true
      Throws:
      java.sql.SQLException - should never been raised
      See Also:
      setAutoClose
    • getDefaultExecuteBatch

      int getDefaultExecuteBatch()
      Deprecated.
      As of 12.1 all APIs related to oracle-style statement batching are deprecated in favor of standard JDBC batching. We recommend using the standard model going forward as it is spec compliant and provides more information and control to the application.
      Executions are not batched but sent immediately. Oracle style of batching has been deprecated in 12.1 and made a no-op in 12.2. We recommend using the standard model of batching.
      Returns:
      the batch value, always 1.
      See Also:
      OraclePreparedStatement.setExecuteBatch, setDefaultExecuteBatch
    • getDefaultRowPrefetch

      int getDefaultRowPrefetch()
      Retrieves the value of row prefetch for all statements associated with this connection and created after this value was set.

      The row-prefetching feature associates an integer row-prefetch setting with a given statement object. JDBC fetches that number of rows at a time from the database during the query. That is, JDBC will fetch N rows that match the query criteria and bring them all back to the client at once, where N is the prefetch setting. Then, once your next calls have run through those N rows, JDBC will go back to fetch the next N rows that match the criteria.

      You can set the number of rows to prefetch for a particular Oracle statement (any type of statement). You can also reset the default number of rows that will be prefetched for all statements in your connection with the setDefaultRowPrefetch method. Therefore, the row prefetch value returned by this getDefaultRowPrefetch entrypoint is valid for statements for which you have not defined a different row prefetch value.

      The default number of rows to prefetch to the client is 10.

      Example where conn is your connection object:
      //Get the default row-prefetch setting for this connection
      int defRowPref = ((OracleConnection)conn).getDefaultRowPrefetch();

      Returns:
      the row prefetch value
      See Also:
      OracleStatement.setRowPrefetch, setDefaultRowPrefetch
    • getDescriptor

      java.lang.Object getDescriptor​(java.lang.String sql_name)
      Gets a Descriptor object corresponding to a sql type.
      Parameters:
      sql_name - the sql type
      Returns:
      the Descriptor Object that matches the sql type
      See Also:
      putDescriptor, oracle.sql.TypeDescriptor
    • getEndToEndMetrics

      java.lang.String[] getEndToEndMetrics()
                                     throws java.sql.SQLException
      Deprecated.
      This has been deprecated since 12.1 in favor of getClientInfo(). It is not recommended to use this API intermingled with get/setClientInfo APIs.
      Gets the values of the end-to-end metrics, if any. Does not include the sequence number. If DMS is in use and metrics have been set via DMS, this method will return the metrics set via DMS, not those set via setEndToEndMetrics. The DMS metric override the metrics set by setEndToEndMetrics.
      Returns:
      a String[]. The indices are the END_TO_END_XXX_INDEX constants. The values are the values of the corresponding metrics.
      Throws:
      java.sql.SQLException - if an error occurs
      See Also:
      setEndToEndMetrics, Connection.getClientInfo(java.lang.String), Connection.getClientInfo()
    • getEndToEndECIDSequenceNumber

      short getEndToEndECIDSequenceNumber()
                                   throws java.sql.SQLException
      Deprecated.
      This is deprecated since 12.1 in favor of getClientInfo(). It is not recommended to use this API intermingled with get/setClientInfo APIs.
      Gets the current end to end tracing context id sequence number. This could be any of the following values: the value passed in the most recent call to setEndToEndMetrics the value returned by the database after the most recent statement execution the value incremented by JDBC diagnostic messages the value JDBC retrieved from DMS (only in a DMS environment)
      Returns:
      the current ECID sequence number
      Throws:
      java.sql.SQLException - if an error occurs
      See Also:
      Connection.getClientInfo(java.lang.String), Connection.getClientInfo()
    • getIncludeSynonyms

      boolean getIncludeSynonyms()
      Checks whether or not synonyms information is included in DatabaseMetaData.getColumns. By default and for performance reasons it won't but you can change this with the setIncludeSynonyms method.
      Returns:
      true if DatabaseMetaData.getColumns will report information if a table synonym is passed in, and false otherwise
      See Also:
      setIncludeSynonyms
    • getRestrictGetTables

      boolean getRestrictGetTables()
      Gets the restriction status of the returned data in DatabaseMetaData.getTables.

      The default behavior is to return information about all synonyms, including those which do not point to accessible tables or views. But you can change this with the setRestrictGetTables method.

      Returns:
      true if the information returned by DatabaseMetaData.getTables is restricted, and false otherwise
      See Also:
      setRestrictGetTables
    • getJavaObject

      java.lang.Object getJavaObject​(java.lang.String sql_name)
                              throws java.sql.SQLException
      Deprecated.
      Throws:
      java.sql.SQLException
    • getRemarksReporting

      boolean getRemarksReporting()
      Checks whether or not a call of getTables or getColumns of the DatabaseMetaData interface will report the REMARKS column.

      By default and for performance reasons it won't (it will return null) but you can change this with the setRemarksReporting method.

      Returns:
      true if the DatabaseMetaData calls getTables and getColumns will report the REMARKS column and false otherwise
      See Also:
      setRemarksReporting
    • getSQLType

      java.lang.String getSQLType​(java.lang.Object obj)
                           throws java.sql.SQLException
      Deprecated.
      Throws:
      java.sql.SQLException
    • getStmtCacheSize

      int getStmtCacheSize()
      Deprecated.
      Use getStatementCacheSize() instead.
    • getStructAttrCsId

      short getStructAttrCsId()
                       throws java.sql.SQLException
      Obtain the Oracle identifier of the character set used in STRUCT attributes. Note that the network transport layer always send structure attributes in the database character set.
      Returns:
      the Oracle identifier of the character set.
      Throws:
      java.sql.SQLException - if Conversion is null
      See Also:
      oracle.sql.CharacterSet for the set of constants defined for the identifiers."
    • getUserName

      java.lang.String getUserName()
                            throws java.sql.SQLException
      Gets the user name of the current connection.

      Example where conn is your connection object:
      String UserName = ((OracleConnection)conn).getUserName();

      Returns:
      the user name
      Throws:
      java.sql.SQLException - if the logical connection is closed
    • getCurrentSchema

      java.lang.String getCurrentSchema()
                                 throws java.sql.SQLException
      Obtains the current schema of the current connection.

      Returns:
      current_schema value
      Throws:
      java.sql.SQLException - If there was an error while fetching the results
    • getUsingXAFlag

      boolean getUsingXAFlag()
      Deprecated.
      Gets the value of the UsingXA flag which the driver sets to true when using XA to manage distributed transactions. If you are not using distributed transactions with the XA library, the value of the UsingXA flag will be false.
      Returns:
      true when using XA to manage distributed transactions and false otherwise.
      See Also:
      setUsingXAFlag
    • getXAErrorFlag

      boolean getXAErrorFlag()
      Deprecated.
      Gets the value of the XAError flag which is used with distributed transactions.

      When using distributed transactions with an XA library, you can ask the driver to raise exception when doing anything that might require a transaction. To do so, set the value of the XAError flag to true with the method setXAErrorFlag.

      The default value is false.

      Returns:
      false is the normal JDBC usage. true means that the driver will raise an exception when doing anything that might require a transaction.
      See Also:
      setXAErrorFlag
    • pingDatabase

      int pingDatabase()
                throws java.sql.SQLException
      Ping Database server to see if both database and the connection are actively up.
      Returns:
      DATABASE_OK if the database server is up, and DATABASE_CLOSED if any error occurs.
      Throws:
      java.sql.SQLException
    • pingDatabase

      int pingDatabase​(int timeOut)
                throws java.sql.SQLException
      Deprecated.
      ping Database
      Parameters:
      timeOut -
      Returns:
      Throws:
      java.sql.SQLException
    • putDescriptor

      void putDescriptor​(java.lang.String sql_name,
                         java.lang.Object desc)
                  throws java.sql.SQLException
      Store the Object Descriptor for later usage.
      Parameters:
      sql_name - the sql type
      desc - the Object Descriptor associated
      Throws:
      java.sql.SQLException - if sql_name or desc is null
      See Also:
      getDescriptor, oracle.sql.TypeDescriptor
    • removeDescriptor

      void removeDescriptor​(java.lang.String sql_name)
      Removes the Descriptor object corresponding to a sql type from the cache.
      Parameters:
      sql_name -
    • removeDescriptor

      void removeDescriptor​(byte[] toid)
      Removes the Descriptor object corresponding to a byte[] toid from the cache. inserted using the putDescriptor(byte[] toid, Object desc)
      Parameters:
      toid -
    • removeAllDescriptor

      void removeAllDescriptor()
      When STRUCT objects type is created/used/dropped/created/used/dropped (same name but different attributes) with the same Connection, then to avoid this Exception: ORA-21700: object does not exist or is marked for delete. removeAllDescriptor or removeDescriptor should be invoked to remove an existing cached Descriptor
    • registerSQLType

      void registerSQLType​(java.lang.String sql_name,
                           java.lang.Class<?> java_class)
                    throws java.sql.SQLException
      Deprecated.
      Throws:
      java.sql.SQLException
    • registerSQLType

      void registerSQLType​(java.lang.String sql_name,
                           java.lang.String java_class_name)
                    throws java.sql.SQLException
      Deprecated.
      Throws:
      java.sql.SQLException
    • setAutoClose

      void setAutoClose​(boolean autoClose)
                 throws java.sql.SQLException
      set auto-close mode. Only true is accepted.
      Parameters:
      autoClose - the boolean value
      Throws:
      java.sql.SQLException - when the argument autoClose is false
      See Also:
      getAutoClose
    • setDefaultExecuteBatch

      void setDefaultExecuteBatch​(int batch)
                           throws java.sql.SQLException
      Deprecated.
      As of 12.1 all APIs related to oracle-style statement batching are deprecated in favor of standard JDBC batching. We recommend using the standard model going forward as it is spec compliant and provides more information and control to the application.
      Executions are not batched but sent immediately. Oracle style of batching has been deprecated in 12.1 and made a no-op in 12.2. We recommend using the standard model of batching.
      Parameters:
      batch - value is discarded.
      Throws:
      java.sql.SQLException - never thrown.
      See Also:
      OraclePreparedStatement.setExecuteBatch, getDefaultExecuteBatch
    • setDefaultRowPrefetch

      void setDefaultRowPrefetch​(int value)
                          throws java.sql.SQLException
      Sets the value of row prefetch for all statements associated with this connection and created after this value was set.

      The row-prefetching feature associates an integer row-prefetch setting with a given statement object. JDBC fetches that number of rows at a time from the database during the query. That is, JDBC will fetch N rows that match the query criteria and bring them all back to the client at once, where N is the prefetch setting. Then, once your next calls have run through those N rows, JDBC will go back to fetch the next N rows that match the criteria.

      You can set the number of rows to prefetch for a particular Oracle statement (any type of statement) but this method allows you to reset the default number of rows that will be prefetched for all statements in your connection. The default number of rows to prefetch to the client is 10.

      Use the setDefaultRowPrefetch method to set the default number of rows to prefetch, passing in an integer that specifies the desired default. If you want to check the current setting of the default, then use the getDefaultRowPrefetch method. This method returns an integer.

      Example where conn is your connection object:
      //Set the default row-prefetch setting for this connection to 7
      ((OracleConnection)conn).setDefaultRowPrefetch(7);

      Note 1 : A statement object receives the default row-prefetch setting from the associated connection at the time the statement object is created. Subsequent changes to the connection's default row-prefetch setting have no effect on the statement's row-prefetch setting.

      Note 2 : If a column of a result set is of datatype LONG or LONG RAW (that is, the streaming types), JDBC changes the statement's row-prefetch setting to 1, even if you never actually read a value of either of those types.

      Note 3 : Do not mix the JDBC 2.0 fetch size API and the Oracle row-prefetching API in your application. You can use one or the other but not both.

      Parameters:
      value - the number of rows to prefetch
      Throws:
      java.sql.SQLException - if the argument value is <=0
      See Also:
      OracleStatement.setRowPrefetch, getDefaultRowPrefetch
    • setEndToEndMetrics

      void setEndToEndMetrics​(java.lang.String[] metrics,
                              short sequenceNumber)
                       throws java.sql.SQLException
      Deprecated.
      It has been deprecated since 12.1 in favor of setClientInfo(). It is not recommended to use this API intermingled with get/setClientInfo APIs.
      Sets the values of the end-to-end tracing metrics. The indices for the array are the END_TO_END_XXX_INDEX values defined in this class. The values set by this method are overridden by any values set via DMS if DMS is in use.
      Parameters:
      metrics - String[] containing the metric values.
      sequenceNumber - the sequence number for the context id
      Throws:
      java.sql.SQLException - if an error occurs
      See Also:
      getEndToEndMetrics, Connection.setClientInfo(java.util.Properties), Connection.setClientInfo(java.lang.String, java.lang.String)
    • setIncludeSynonyms

      void setIncludeSynonyms​(boolean synonyms)
      Turns on or off retrieval of synonym information in DatabaseMetaData. getColumns.

      Similar to setRemarksReporting, getColumns performs extremely slow if information about synonyms has to be included, because it neccessitates an outer join so, by default, the JDBC driver will not report information about synonyms.

      You can get synonym information by passing true to this method, and turn it off by passing false. You can also control this behavior by passing a property named "includeSynonyms" as "true" to DriverManager.getConnection.

      Parameters:
      synonyms - true if you want to retrieve synonym information in DatabaseMetaData.getColumns and false otherwise.
      See Also:
      getIncludeSynonyms
    • setRemarksReporting

      void setRemarksReporting​(boolean reportRemarks)
      Turns on or off the reporting of the REMARKS columns by the getTables and getColumns calls of the DatabaseMetaData interface.

      The DatabaseMetaData calls getTables and getColumns are extremely slow if the REMARKS column has to be reported as this necessitates an expensive outer join so by default the JDBC driver does not report the REMARKS columns.

      You can turn the reporting of REMARKS on by passing a true argument to this method. You turn it back off by passing a false argument.

      Example where conn is your connection object:
      ((OracleConnection)conn).setRemarksReporting(true);

      You can also control the reporting of REMARKS by passing a property named remarksReporting as true to the DriverManager.getConnection call.

      Parameters:
      reportRemarks - true if you want to turn on the reporting of the REMARKS columns and false otherwise.
      See Also:
      getRemarksReporting
    • setRestrictGetTables

      void setRestrictGetTables​(boolean restrict)
      Turns on or off the restriction of the returned data in DatabaseMetaData.getTables.

      DatabaseMetaData.getTables will return information about all accessible tables, views, and synonyms. There are two issues relating to synonyms which can affect the quality of the returned data:

      1. Public synonyms can exist for tables to which you don't have access. Although the synonym itself is viewable, the underlying table is not.
      2. Synonyms can exist for non-table objects, such as procedures, sequences, Java classes, etc.
      As a result of the above issues, getTables can return rows containing objects that are not describable with getColumns, either because they are not accessible (issue 1) or because they are not tables or views (issue 2).

      To remedy this, you can restrict the results of getTables to only those tables and views to which you have access. This is done by either passing true to this method, or by passing the restrictGetTables property as true to the DriverManager.getConnection call. The default behavior is to return information about all synonyms, including those which do not point to accessible tables or views.

      Note that getTables can return more than one row for the same object, one for the object itself, and additional rows for any synonyms defined for that object. This is the case regardless of the setting for restrictGetTables.

      The following code turns on the restriction:
      ((OracleConnection)conn).setRestrictGetTables(true);

      Parameters:
      restrict - true to turn on the restriction and false otherwise.
      See Also:
      getRestrictGetTables
    • setStmtCacheSize

      void setStmtCacheSize​(int size)
                     throws java.sql.SQLException
      Deprecated.
      Use setStatementCacheSize() instead.
      Throws:
      java.sql.SQLException
    • setStmtCacheSize

      void setStmtCacheSize​(int size,
                            boolean clearMetaData)
                     throws java.sql.SQLException
      Deprecated.
      Use setStatementCacheSize() instead.
      Throws:
      java.sql.SQLException
    • setStatementCacheSize

      void setStatementCacheSize​(int size)
                          throws java.sql.SQLException
      setStatementCacheSize Specifies the size of the size of the application cache (which will be used by both implicit and explicit caching).
      Parameters:
      size - Requested size of the cache. If the existing cache size is less than size, statements will be purged to reduce the size.
      Throws:
      java.sql.SQLException - if size < 0, or if called on a logical connection.
    • getStatementCacheSize

      int getStatementCacheSize()
                         throws java.sql.SQLException
      getStatementCacheSize Returns the current size of the application cache. This is valid on both physical and logical connections. If the statement cache has not been initialized with setStatementCacheSize(), then CACHE_SIZE_NOT_SET is returned.
      Returns:
      the cache size
      Throws:
      java.sql.SQLException
    • setImplicitCachingEnabled

      void setImplicitCachingEnabled​(boolean cache)
                              throws java.sql.SQLException
      setImplicitCachingEnabled Enables or disables the implicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().
      Parameters:
      cache - If true, then implicit caching will be enabled. If false, then any existing statements will be purged and the implicit cache will be disabled.
      Throws:
      java.sql.SQLException - if called on a logical connection.
    • getImplicitCachingEnabled

      boolean getImplicitCachingEnabled()
                                 throws java.sql.SQLException
      getImplicitCachingEnabled Returns true if the implicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.
      Returns:
      Throws:
      java.sql.SQLException
    • setExplicitCachingEnabled

      void setExplicitCachingEnabled​(boolean cache)
                              throws java.sql.SQLException
      setExplicitCachingEnabled Enables or disables the explicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().
      Parameters:
      cache - If true, then explicit caching will be enabled. If false, then any existing statements will be purged and the explicit cache will be disabled.
      Throws:
      java.sql.SQLException - if called on a logical connection.
    • getExplicitCachingEnabled

      boolean getExplicitCachingEnabled()
                                 throws java.sql.SQLException
      getExplicitCachingEnabled Returns true if the explicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.
      Returns:
      Throws:
      java.sql.SQLException
    • purgeImplicitCache

      void purgeImplicitCache()
                       throws java.sql.SQLException
      purgeImplicitCache Removes all existing statements from the implicit cache, after which it will be empty. This method does not affect the size of the application cache, nor the enabled/disabled status.
      Throws:
      java.sql.SQLException
    • purgeExplicitCache

      void purgeExplicitCache()
                       throws java.sql.SQLException
      purgeExplicitCache Removes all existing statements from the explicit cache, after which it will be empty. This method does not affect the size of the application cache, nor the enabled/disabled status.
      Throws:
      java.sql.SQLException
    • getStatementWithKey

      java.sql.PreparedStatement getStatementWithKey​(java.lang.String key)
                                              throws java.sql.SQLException
      getStatementWithKey Searches the explicit cache for a match on key. If found, the statement is returned, with the paramater and define metadata identical to the last usage. If no match is found, or if explicit caching is not enabled, then null is returned (as opposed to throwing an exception).
      Parameters:
      key - Specified key to search for
      Returns:
      Throws:
      java.sql.SQLException
    • getCallWithKey

      java.sql.CallableStatement getCallWithKey​(java.lang.String key)
                                         throws java.sql.SQLException
      getCallWithKey Searches the explicit cache for a match on key. If found, the statement is returned, with the paramater and define metadata identical to the last usage. If no match is found, or if explicit caching is not enabled, then null is returned (as opposed to throwing an exception).
      Parameters:
      key - Specified key to search for
      Returns:
      Throws:
      java.sql.SQLException
    • getProviderAllowedProperties

      java.util.Set<java.lang.String> getProviderAllowedProperties()
      getProviderAllowedProperties Get the list of properties that are whitelisted for a remote provider.
      Returns:
      Set<String> of whitelisted properties.
    • setUsingXAFlag

      void setUsingXAFlag​(boolean value)
      Deprecated.
      When using distributed transactions with XA, you can set the value of the UsingXA flag.

      XA is a general standard (not specific to Java) for distributed transactions. You should use this method only when using XA.

      By default, when using distributed transactions with XA, the driver will set the UsingXA flag to true and exceptions will be raised when you want to do anything with your logical connection that might require a transaction. Otherwise the flag UsingXA is always false.

      If you are actually using distributed transactions with XA and you dislike the default behavior, you can set the flag back to false.

      Parameters:
      value - the value of the UsingXA flag
      See Also:
      getUsingXAFlag
    • setXAErrorFlag

      void setXAErrorFlag​(boolean value)
      Deprecated.
      Sets the value of the XAError flag which is used with distributed transactions. When coexisting with an XA library, you can set the XAError flag to true and the driver will then raise an exception when doing anything that might require a transaction.
      Parameters:
      value - the value of the XAError flag
      See Also:
      getXAErrorFlag
    • shutdown

      void shutdown​(OracleConnection.DatabaseShutdownMode mode)
             throws java.sql.SQLException
      Shuts the database server down. This method requires to be connected as either SYSOPER or SYSDBA.
      Parameters:
      mode - can be either
      • OracleConnection.DatabaseShutdownMode.CONNECT
      • OracleConnection.DatabaseShutdownMode.TRANSACTIONAL
      • OracleConnection.DatabaseShutdownMode.TRANSACTIONAL_LOCAL
      • OracleConnection.DatabaseShutdownMode.IMMEDIATE
      • OracleConnection.DatabaseShutdownMode.ABORT
      • OracleConnection.DatabaseShutdownMode.FINAL
      Throws:
      java.sql.SQLException
    • startup

      void startup​(java.lang.String startup_str,
                   int mode)
            throws java.sql.SQLException
      Deprecated.
      This method will be removed in a future version.
      Not implemented
      Throws:
      java.sql.SQLException
    • startup

      void startup​(OracleConnection.DatabaseStartupMode mode)
            throws java.sql.SQLException
      Starts the database server up. This method requires to be connected as either SYSOPER or SYSDBA in the PRELIM_AUTH mode which is the only mode permietted when the database is down (see the connection property CONNECTION_PROPERTY_PRELIM_AUTH).
      Parameters:
      mode - can be either
      • OracleConnection.DatabaseStartupMode.NO_RESTRICTION
      • OracleConnection.DatabaseStartupMode.FORCE
      • OracleConnection.DatabaseStartupMode.RESTRICT
      Throws:
      java.sql.SQLException
    • startup

      void startup​(OracleConnection.DatabaseStartupMode mode,
                   java.lang.String pfileName)
            throws java.sql.SQLException
      Starts the database server up. This method requires to be connected as either SYSOPER or SYSDBA in the PRELIM_AUTH mode which is the only mode permietted when the database is down (see the connection property CONNECTION_PROPERTY_PRELIM_AUTH).
      Parameters:
      mode - can be either
      • OracleConnection.DatabaseStartupMode.NO_RESTRICTION
      • OracleConnection.DatabaseStartupMode.FORCE
      • OracleConnection.DatabaseStartupMode.RESTRICT
      pfileName - : PFILE name. If client-side parameter file is null or doesn't exist, it will throw exception otherwise read the file and pass parameters to server.
      Throws:
      java.sql.SQLException
    • prepareStatementWithKey

      java.sql.PreparedStatement prepareStatementWithKey​(java.lang.String key)
                                                  throws java.sql.SQLException
      Deprecated.
      This is same as prepareStatement, except if a Prepared Statement with the given KEY exists in the Cache, then the statement is returned AS IT IS when it was closed and cached with this KEY. An object returned from the Cache based on Key will have its state set to "KEYED". If no such Prepared Statement is found, a null is returned. Key cannot be null.
      Parameters:
      key - the key with which it was closed
      Returns:
      a OraclePreparedStatement object
      Throws:
      java.sql.SQLException - if a database access error occurs
    • prepareCallWithKey

      java.sql.CallableStatement prepareCallWithKey​(java.lang.String key)
                                             throws java.sql.SQLException
      Deprecated.
      This is same as prepareCall, except if a Callable Statement with the given KEY exists in the Cache, then the statement is returned AS IT IS when it was closed and cached with this KEY. An object returned from the Cache based on Key will have its state set to "KEYED". If no such Callable Statement is found, then null is returned. Key cannot be null.
      Parameters:
      key - the key with which it was closed
      Returns:
      a java.sql.CallableStatement object
      Throws:
      java.sql.SQLException - if a database access error occurs
    • setCreateStatementAsRefCursor

      void setCreateStatementAsRefCursor​(boolean value)
      When this is set to true, any new statements created from this connection will be created as a REF CURSOR. Only resultsets obtained from statements that are created as REF CURSORS can be returned from a Java Stored Procedure. This feature is supported by the server-side internal driver only, and is no-op in all other JDBC drivers.

      Default value is false.

      To use the setCreateStatementAsRefCursor entrypoint you have to cast the Connection object to the type oracle.jdbc.OracleConnection.

      Parameters:
      value - true if new statements should be created as REF CURSORS, false otherwise
      See Also:
      getCreateStatementAsRefCursor
    • getCreateStatementAsRefCursor

      boolean getCreateStatementAsRefCursor()
      Retrieves the current setting of the createStatementAsRefCursor flag which you can set with the setCreateStatementAsRefCursor method.

      To use the getCreateStatementAsRefCursor entrypoint you have to cast the Connection object to the type oracle.jdbc.OracleConnection.

      Returns:
      the current setting of the createStatementAsRefCursor flag
      See Also:
      setCreateStatementAsRefCursor
    • setSessionTimeZone

      void setSessionTimeZone​(java.lang.String regionName)
                       throws java.sql.SQLException
      Set the session time zone.

      This method is used to set the session time zone. This method must be invoked before accessing any TIMESTAMP WITH LOCAL TIME ZONE data. Upon invocation of this method, the Jdbc driver sets the session timezone of the connection and saves the session timezone so that any TSLTZ data accessed via Jdbc are adjusted using the session timezone.

      Parameters:
      regionName - Oracle session time zone region name.
      Throws:
      java.sql.SQLException - if an error occurred.
      Since:
      9i
    • getSessionTimeZone

      java.lang.String getSessionTimeZone()
      Obtain Oracle session time zone region name.
      Returns:
      Oracle session time zone region name.
      Since:
      9i
    • getSessionTimeZoneOffset

      java.lang.String getSessionTimeZoneOffset()
                                         throws java.sql.SQLException
      Obtain the time zone offset in hours of the current database session. The result will always be accurate. In other words, you can execute "ALTER SESSION SET TIME_ZONE ..." and then call this method, it will return the new value.

      The value returned by this method is that same as the result of "SELECT SESSIONTIMEZONE FROM DUAL;". The drivers may use some performance optimization to not use a roundtrip to the server so it is always preferrable to use this method.

      Returns:
      Oracle session time zone in hours. For example "-7:00" or "0:00"
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • getProperties

      java.util.Properties getProperties()

      Returns connection properties that are currently in effect for this connection.

      The keys of the returned Properties object are a subset of the String constants declared by this class with names that begin with CONNECTION_PROPERTY_. The values of the returned Properties object reflect the current state of this connection, and may be different from the values specified when this connection was created. For instance, if this connection is connected to a database that has disabled result caching, then the value of CONNECTION_PROPERTY_ENABLE_QUERY_RESULT_CACHE will be "false", regardless of any value that may have been specified for that property when this when this connection was created.

      The returned Propeties object does not contain the values of sensitive properties, such as passwords.

      Returns:
      Properties that are in effect for this connection. Not null. Not retained.
    • _getPC

      java.sql.Connection _getPC()
      Return the underlying physical connection if this is a logical connection. Returns null otherwise.
      Returns:
      Connection object if its a logical handle otherwise returns null
    • isLogicalConnection

      boolean isLogicalConnection()
      Method that returns a boolean indicating whether its a logical connection or not.
      Returns:
      boolean true if this is a logical connection
    • registerTAFCallback

      void registerTAFCallback​(OracleOCIFailover cbk,
                               java.lang.Object obj)
                        throws java.sql.SQLException
      Register an application TAF Callback instance that will be called when an application failover occurs. The TAF feature is only available in the Jdbc OCI driver.
      Parameters:
      cbk - Callback instance.
      obj - Context object in which any client's state can be stored and provided when the callback method is invoked.
      Throws:
      java.sql.SQLException - if this method is invoked in drivers other than the Jdbc OCI driver.
      Since:
      9i
    • unwrap

      OracleConnection unwrap()
      Return the wrapped object if any else null. This method should not delegate to the wrapped object. Instead it should return the wrapped object.
      Returns:
      wrapped object which implements oracle.jdbc.OracleConnection if any else return null
      Since:
      9iRw
    • setWrapper

      void setWrapper​(OracleConnection wrapper)
      Set the wrapping object. The argument is an object that wraps this object. Calling wrapper.unwrap() should return this.
      Parameters:
      wrapper - An object which implements oracle.jdbc.OracleConnection and which is a wrapper for this object # @since 9iR2
    • oracleSetSavepoint

      OracleSavepoint oracleSetSavepoint()
                                  throws java.sql.SQLException
      Deprecated.
      Creates an unnamed savepoint in the current transaction and returns the new OracleSavepoint object that represents it.
      Returns:
      the new OracleSavepoint object
      Throws:
      java.sql.SQLException - if a database access error occurs or this Connection object is currently in auto-commit mode
      Since:
      9.0.2
      See Also:
      OracleSavepoint
    • oracleSetSavepoint

      OracleSavepoint oracleSetSavepoint​(java.lang.String name)
                                  throws java.sql.SQLException
      Creates a savepoint with the given name in the current transaction and returns the new OracleSavepoint object that represents it.
      Parameters:
      name - a String containing the name of the savepoint
      Returns:
      the new OracleSavepoint object
      Throws:
      java.sql.SQLException - if a database access error occurs or this Connection object is currently in auto-commit mode
      Since:
      9.0.2
      See Also:
      OracleSavepoint
    • oracleRollback

      void oracleRollback​(OracleSavepoint savepoint)
                   throws java.sql.SQLException
      Undoes all changes made after the given OracleSavepoint object was set.

      This method should be used only when auto-commit has been disabled.

      Parameters:
      savepoint - the OracleSavepoint object to roll back to
      Throws:
      java.sql.SQLException - if a database access error occurs, the OracleSavepoint object is no longer valid, or this Connection object is currently in auto-commit mode
      Since:
      9.0.2
      See Also:
      OracleSavepoint
    • oracleReleaseSavepoint

      void oracleReleaseSavepoint​(OracleSavepoint savepoint)
                           throws java.sql.SQLException
      Removes the given OracleSavepoint object from the current transaction. Any reference to the savepoint after it have been removed will cause an SQLException to be thrown.
      Parameters:
      savepoint - the OracleSavepoint object to be removed
      Throws:
      java.sql.SQLException - if a database access error occurs or the given OracleSavepoint object is not a valid savepoint in the current transaction
      Since:
      9.0.2
      See Also:
      OracleSavepoint
    • close

      @Deprecated
      default void close​(java.util.Properties connAttr)
                  throws java.sql.SQLException
      Deprecated.
      The Implicit Connection Cache (ICC) has been desupported since 12.1. This method throws UnsupportedOperationException, and will be removed soon in the future.
      Throws:
      java.sql.SQLException
    • close

      void close​(int opt)
          throws java.sql.SQLException
      If opt is OracleConnection.INVALID_CONNECTION : Closes the given Logical connection, as well the underlying PooledConnection without returning the connection to the cache when called with the parameter INVALID_CONNECTION. If this API is called on a physical connection, the supplied parameter has no effect.

      If opt is OracleConnection.PROXY_SESSION : Closes the proxy session (opened with openProxySession()).
      Parameters:
      opt - set to INVALID_CONNECTION to close the PooledConnection
      Throws:
      java.sql.SQLException - if a database access error occurs
    • isProxySession

      boolean isProxySession()
      Returns true if the current session associated with this connection is a dual proxy session i.e when application explicitly calls openProxySession() on an existing connection. Returns false if the current session associated with this connection is a single proxy session i.e when user creates a proxy connection using DriverManager.getConnection(url, "proxy[client]", "proxy").
      Returns:
      See Also:
      openProxySession(int, java.util.Properties)
    • applyConnectionAttributes

      @Deprecated
      default void applyConnectionAttributes​(java.util.Properties connAttr)
                                      throws java.sql.SQLException
      Deprecated.
      The Implicit Connection Cache (ICC) has been desupported since 12.1. This method throws UnsupportedOperationException, and will be removed soon in the future.
      Throws:
      java.sql.SQLException
    • getConnectionAttributes

      @Deprecated
      default java.util.Properties getConnectionAttributes()
                                                    throws java.sql.SQLException
      Deprecated.
      The Implicit Connection Cache (ICC) has been desupported since 12.1. This method throws UnsupportedOperationException, and will be removed soon in the future.
      Throws:
      java.sql.SQLException
    • getUnMatchedConnectionAttributes

      @Deprecated
      default java.util.Properties getUnMatchedConnectionAttributes()
                                                             throws java.sql.SQLException
      Deprecated.
      The Implicit Connection Cache (ICC) has been desupported since 12.1. This method throws UnsupportedOperationException, and will be removed soon in the future.
      Throws:
      java.sql.SQLException
    • registerConnectionCacheCallback

      @Deprecated
      default void registerConnectionCacheCallback​(OracleConnectionCacheCallback occc,
                                                   java.lang.Object userObj,
                                                   int cbkFlag)
                                            throws java.sql.SQLException
      Deprecated.
      The Implicit Connection Cache (ICC) has been desupported since 12.1. This method throws UnsupportedOperationException, and will be removed soon in the future.
      Throws:
      java.sql.SQLException
    • setConnectionReleasePriority

      @Deprecated
      default void setConnectionReleasePriority​(int priority)
                                         throws java.sql.SQLException
      Deprecated.
      The Implicit Connection Cache (ICC) has been desupported since 12.1. This method throws UnsupportedOperationException, and will be removed soon in the future.
      Throws:
      java.sql.SQLException
    • getConnectionReleasePriority

      @Deprecated
      default int getConnectionReleasePriority()
                                        throws java.sql.SQLException
      Deprecated.
      The Implicit Connection Cache (ICC) has been desupported since 12.1. This method throws UnsupportedOperationException, and will be removed soon in the future.
      Throws:
      java.sql.SQLException
    • setPlsqlWarnings

      void setPlsqlWarnings​(java.lang.String setting)
                     throws java.sql.SQLException
      Enable/Disable PLSQL Compiler Warnings
      Parameters:
      setting - Setting specified for ALTER SESSION SET PLSQL_WARNINGS. Sample values are: "'ENABLE:ALL'", "'DISABLE:ALL'", "'ENALBLE:INFORMATIONAL'", etc. Please refer to the SQL reference of ALTER SESSION SET PLSQL_WARNINGS for more information. If the setting is "'DISABLE:ALL'", jdbc drivers turn off PLSQL Compiler Warnings. Note: the quotes(') in the setting String are necessary.
      Throws:
      java.sql.SQLException - if a database access error occurs
    • registerAQNotification

      AQNotificationRegistration[] registerAQNotification​(java.lang.String[] name,
                                                          java.util.Properties[] options,
                                                          java.util.Properties globaloptions)
                                                   throws java.sql.SQLException
      Registers your interest into being notified when a message is enqueued in a particular queue (or array of queues).

      This method creates an array of new AQ registrations in the database server with the given options. It also opens a listening socket which will be used by the database to send notifications. Note that mutiple registrations can share the same listening socket.

      Each registration will continue to live after this connection is closed. You need to explicitly unregister it to destroy it in the server and release the resources in the driver.

      This method uses one roundtrip.

      Parameters:
      name - contains an array of queue names ("SCOTT.MY_QUEUE") for single consumer queues or queue names with the consumer name ("SCOTT.MY_QUEUE:RECEIVER") for multiple consumer queues.
      options - Possible options are ([] means default):
      • OracleConnection.NTF_QOS_RELIABLE: "true"/["false"]. Set this option to "true" to make the notifications persistent which comes at a performance cost.
      • OracleConnection.NTF_QOS_PURGE_ON_NTFN: "true"/["false"]. Set this option to "true" and the registration will be expunged on the first notification event.
      • OracleConnection.NTF_TIMEOUT: value in seconds "60"/["0"]. Specifies the time in seconds after which the registration is automatically expunged by the database. The default is "0": the registration lives until explicitly deregistered.
      • OracleConnection.NTF_AQ_PAYLOAD: "true"/["false"]. Sets this to "true" to make the server send the payload within the notification. Note that this feature works only with "RAW" payloads.
      • OracleConnection.NTF_GROUPING_CLASS: OracleConnection.NTF_GROUPING_CLASS_TIME/[OracleConnection.NTF_GROUPING_CLASS_NONE]. Notification Grouping Class, the criterion or dimension for grouping. As of 11.2 the only supported class is OracleConnection.NTF_GROUPING_CLASS_TIME meaning grouping by time, that is, the user specifies a time value and a single notification gets published at the end of that time. To use grouping at least this option must be specified to a value other than the default OracleConnection.NTF_GROUPING_CLASS_NONE, which is no grouping.
      • OracleConnection.NTF_GROUPING_VALUE: "1200/["600"]. Notification Grouping Value, the value of the grouping class. The value must be an integer number. For the TIME grouping class, this value represents a number of seconds, meaning the time after which grouped notifications are sent. If not specified, it defaults to 600 sec.
      • OracleConnection.NTF_GROUPING_TYPE: OracleConnection.NTF_GROUPING_TYPE_LAST/[OracleConnection.NTF_GROUPING_TYPE_SUMMARY]. Notification Grouping Type, the format of grouping notification. It can either contain the summary of all events (default) or the last event in the group.
      • OracleConnection.NTF_GROUPING_START_TIME: When to start grouping? Notification grouping can start from a user-specified time that should a valid timestamp with time zone, that is an instance of oracle.sql.TIMESTAMPTZ. If this option is not specified when using grouping, it defaults to current system time. For example if prop was the option properties, and conn the connection object, you would call: prop.put(OracleConnection.NTF_GROUPING_START_TIME,new TIMESTAMPTZ(conn,"2007-06-21 10:10:00.0"));.
      • OracleConnection.NTF_GROUPING_REPEAT_TIME: "100/[NTF_GROUPING_REPEAT_FOREVER]". How many times do grouping? Grouping notifications will be sent as many times as specified by the notification grouping repeat count and after that revert to regular notifications. If not specified, it will default to: NTF_GROUPING_REPEAT_FOREVER - keep sending grouping notifications forever.
      globaloptions - Possible options are ([] means default):
      • OracleConnection.NTF_LOCAL_TCP_PORT: "1234"/[NTF_DEFAULT_TCP_PORT]. This option lets you specify what TCP port the driver should use for the listening socket. If you don't specify a port, the driver will use NTF_DEFAULT_TCP_PORT and if it's already used, it will increment it by one until it finds one that is available.
      • OracleConnection.NTF_LOCAL_HOST: example "212.121.134.12". Use this option to manually specify the IP address of the machine that will receive the notifications from the server. Use this option with caution: only specify the IP address of the local machine when the driver is unable to find it out on its own (it uses InetAddress.getLocalHost() ). For example if the machine on which runs the JDBC driver is a VPN client, you may have to specify the IP address of the VPN client which the driver cannot find out on its own. This option should not be used to attempt to have a different remote host receive the notifications from the server.
      Returns:
      AQNotificationRegistration[]
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • unregisterAQNotification

      void unregisterAQNotification​(AQNotificationRegistration registration)
                             throws java.sql.SQLException
      Deletes a given AQ registration. The registration will be destroyed in the server and in the driver (the network listener will be closed if it's not used anymore).

      Parameters:
      registration -
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • dequeue

      AQMessage dequeue​(java.lang.String queueName,
                        AQDequeueOptions opt,
                        byte[] tdo)
                 throws java.sql.SQLException
      Dequeues an AQ message from the queue specified by its name.

      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options
      tdo - the Type Descriptor Object OID of the type of the queue.
      Returns:
      the AQMessage dequeued.
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • dequeue

      AQMessage dequeue​(java.lang.String queueName,
                        AQDequeueOptions opt,
                        byte[] tdo,
                        int version)
                 throws java.sql.SQLException
      Dequeues an AQ message from the queue specified by its name.

      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options
      tdo - the Type Descriptor Object OID of the type of the queue.
      version - the version of the type Descriptor
      Returns:
      the AQMessage dequeued.
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • dequeue

      AQMessage dequeue​(java.lang.String queueName,
                        AQDequeueOptions opt,
                        java.lang.String typeName)
                 throws java.sql.SQLException
      Dequeues an AQ message from the queue specified by its name.

      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options.
      typeName - the name of the type of the queue. For example, it can be "RAW", "SYS.ANYDATA" or "SCOTT.MY_OBJECT_TYPE".
      Returns:
      the AQMessage dequeued.
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • enqueue

      void enqueue​(java.lang.String queueName,
                   AQEnqueueOptions opt,
                   AQMessage mesg)
            throws java.sql.SQLException
      Enqueues the given AQ message to the queue specified by its name.

      Parameters:
      queueName - name of the queue where to enqueue.
      opt - enqueue options.
      mesg - the AQ message to enqueue.
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • enqueue

      int enqueue​(java.lang.String queueName,
                  AQEnqueueOptions opt,
                  AQMessage[] mesgs)
           throws java.sql.SQLException
      Enqueues the given array of AQ messages to the queue specified by its name.

      Parameters:
      queueName - name of the queue where to enqueue.
      opt - enqueue options.
      mesgs - the array of AQ messages to enqueue.
      Returns:
      actual number of messages enqueued.
      Throws:
      java.sql.SQLException
      Since:
      21.1
    • dequeue

      AQMessage[] dequeue​(java.lang.String queueName,
                          AQDequeueOptions opt,
                          java.lang.String typeName,
                          int deqsize)
                   throws java.sql.SQLException
      Dequeues an array of AQ messages from the queue specified by its name.

      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options.
      typeName - the name of the type of the queue. For example, it can be "RAW", "SYS.ANYDATA" or "SCOTT.MY_OBJECT_TYPE".
      deqsize - dequeue number of messages
      Returns:
      the array of AQMessage dequeued.
      Throws:
      java.sql.SQLException
      Since:
      21.1
    • dequeue

      AQMessage[] dequeue​(java.lang.String queueName,
                          AQDequeueOptions opt,
                          byte[] tdo,
                          int version,
                          int deqsize)
                   throws java.sql.SQLException
      Dequeues an array of AQ messages from the queue specified by its name.

      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options
      tdo - the Type Descriptor Object OID of the type of the queue.
      version - the version of the type Descriptor
      deqsize - dequeue number of messages
      Returns:
      the array of AQMessage dequeued.
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • registerDatabaseChangeNotification

      DatabaseChangeRegistration registerDatabaseChangeNotification​(java.util.Properties options)
                                                             throws java.sql.SQLException
      / Creates a new database change registration.

      This method creates a new database change registration in the database server with the given options. It also opens a listening socket which will be used by the database to send notifications. Note that if there already is a listening socket (created by a different registration), then it will be used by this registration as well.

      This method returns a DatabaseChangeRegistration object that can then be used to associate a statement with this registration.

      The registration will continue to live after this connection is closed. You need to explicitly unregister it to destroy it in the server and release the resources in the driver.

      This method uses one roundtrip.

      It is recommended to use DCN_CLIENT_INIT_CONNECTION option when connecting to an Oracle Database running in the cloud to prevent connection failures when it's the server that initiates the connection to the client. Please note that grouping of notifications are not supported with DCN_CLIENT_INIT_CONNECTION.

      Parameters:
      options - Possible options are ([] means default):
      • OracleConnection.NTF_QOS_RELIABLE: "true"/["false"]. Set this option to "true" to make the notifications persistent which comes at a performance cost.
      • OracleConnection.NTF_QOS_PURGE_ON_NTFN: "true"/["false"]. Set this option to "true" and the registration will be expunged on the first notification event.
      • OracleConnection.NTF_TIMEOUT: value in seconds "60"/["0"]. Specifies the time in seconds after which the registration is automatically expunged by the database. The default is "0": the registration lives until explicitly deregistered.
      • OracleConnection.NTF_LOCAL_TCP_PORT: "1234"/[NTF_DEFAULT_TCP_PORT]. This option lets you specify what TCP port the driver should use for the listening socket. If you don't specify a port, the driver will use NTF_DEFAULT_TCP_PORT and if it's already used, it will increment it by one until it finds one that is available.
      • OracleConnection.NTF_LOCAL_HOST: example "212.121.134.12". Use this option to manually specify the IP address of the machine that will receive the notifications from the server. Use this option with caution: only specify the IP address of the local machine when the driver is unable to find it out on its own (it uses InetAddress.getLocalHost() ). For example if the machine on which runs the JDBC driver is a VPN client, you may have to specify the IP address of the VPN client which the driver cannot find out on its own. This option should not be used to attempt to have a different remote host receive the notifications from the server.
      • OracleConnection.DCN_NOTIFY_ROWIDS: "true"/["false"]. Use this option to have the server send the ROWIDs of the row that have changed within the notification event. By default this feature is turned off.
      • OracleConnection.DCN_IGNORE_INSERTOP: "true"/["false"]. Use this option to tell the server to ignore INSERT operations.
      • OracleConnection.DCN_IGNORE_UPDATEOP: "true"/["false"]. Use this options to tell the server to ignore UPDATE operations.
      • OracleConnection.DCN_IGNORE_DELETEOP: "true"/["false"]. Use this options to tell the server to ignore DELETE operations.
      • OracleConnection.DCN_NOTIFY_CHANGELAG: "30"/["0"]. This is an int value (specified as a String), that can be used to specify the number of transactions by which the client is willing to lag behind. This option can be used by the client as a throttling mechanism for database change events. When this option is chosen, ROWID level granularity of information will not be available in the events, even if the DCN_NOTIFY_ROWIDS option was set to "true".
      • OracleConnection.DCN_QUERY_CHANGE_NOTIFICATION: "true"/["false"]. Use this option to activate query change notification instead of object change notification. Note that this option is only available in the database server starting in 11.1.
      • OracleConnection.DCN_BEST_EFFORT: "true"/["false"]. If a query has been successfully registered, by default there will be no FALSE positives. If this option is selected during registrations, then registrations on complex queries may still be allowed but notifications may have some FALSE positives, because full pruning may not be performed if determined to be too expensive. In the worst case notifications will be generated in response to any DML/DDL changes to underlying objects. Note that this option is ignored if the DCN_QUERY_CHANGE_NOTIFICATION isn't turned on. As DCN_QUERY_CHANGE_NOTIFICATION, this option is only available in the database server starting in 11.1.
      • OracleConnection.NTF_GROUPING_CLASS: OracleConnection.NTF_GROUPING_CLASS_TIME/[OracleConnection.NTF_GROUPING_CLASS_NONE]. Notification Grouping Class, the criterion or dimension for grouping. The only supported class is OracleConnection.NTF_GROUPING_CLASS_TIME meaning grouping by time, that is, the user specifies a time value and a single notification gets published at the end of that time. To use grouping at least this option must be specified to a value other than the default OracleConnection.NTF_GROUPING_CLASS_NONE, which is no grouping.
      • OracleConnection.NTF_GROUPING_VALUE: "1200/["600"]. Notification Grouping Value, the value of the grouping class. The value must be an integer number. For the TIME grouping class, this value represents a number of seconds, meaning the time after which grouped notifications are sent. If not specified, it defaults to 600 sec.
      • OracleConnection.NTF_GROUPING_TYPE: OracleConnection.NTF_GROUPING_TYPE_LAST/[OracleConnection.NTF_GROUPING_TYPE_SUMMARY]. Notification Grouping Type, the format of grouping notification. It can either contain the summary of all events (default) or the last event in the group.
      • OracleConnection.NTF_GROUPING_START_TIME: When to start grouping? Notification grouping can start from a user-specified time that should a valid timestamp with time zone, that is an instance of oracle.sql.TIMESTAMPTZ. If this option is not specified when using grouping, it defaults to current system time. For example if prop was the option properties, and conn the connection object, you would call: prop.put(OracleConnection.NTF_GROUPING_START_TIME,new TIMESTAMPTZ(conn,"2007-06-21 10:10:00.0"));.
      • OracleConnection.NTF_GROUPING_REPEAT_TIME: "100"/[NTF_GROUPING_REPEAT_FOREVER]. How many times do grouping? Grouping notifications will be sent as many times as specified by the notification grouping repeat count and after that revert to regular notifications. If not specified, it will default to: NTF_GROUPING_REPEAT_FOREVER - keep sending grouping notifications forever.
      • OracleConnection.DCN_CLIENT_INIT_CONNECTION: "true"/["false"]. This can be configured to initiate a connection from the client instead of opening a listener socket for receiving the database change notifications. Set the value to 'true' for using the Client initiated DCN connection. By default the value is 'false' and opens a listening socket for receiving notifications from the server.
      • OracleConnection.DCN_USE_HOST_CONNECTION_ADDR_INFO: ["true"]/"false". Set the value to 'false' to use the address info returned by the server for establishing the client initiated DCN Connection. Default value is 'true' and the database hostname and port information present in this database connection's connection string is used for establishing the client initiated DCN connection.
      • OracleConnection.DCN_CLIENT_INIT_REGID: example "212" The default value is "0". This option can only be used if the flag OracleConnection.DCN_CLIENT_INIT_CONNECTION is set to true. This is used to create a client connection to consume messages from an existing reliable CQN regid (re-registration). It cannot be used to create a new CQN registration. The default value is "0" which denotes creating a new registration. Negative and invalid values are ignored.
      Returns:
      DatabaseChangeRegistration
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • getDatabaseChangeRegistration

      DatabaseChangeRegistration getDatabaseChangeRegistration​(int regid)
                                                        throws java.sql.SQLException
      Maps an existing registration identified by its ID 'regid' with a new DatabaseChangeRegistration object.

      This method can be used if you create a registration through PLSQL and you want to associate a JDBC statement with it.

      This method doesn't create a new listener on the JDBC driver side and DatabaseChangeEvent won't be created. Thus you won't be allowed to attach any listeners to this registration.

      Note that this method doesn't generate any roundtrip to the database.

      Parameters:
      regid - The id of the registration
      Returns:
      DatabaseChangeRegistration A new instance that can be used to associate a statement with this registration
      Throws:
      java.sql.SQLException
      Since:
      11.1
    • unregisterDatabaseChangeNotification

      void unregisterDatabaseChangeNotification​(DatabaseChangeRegistration registration)
                                         throws java.sql.SQLException
      Deletes a given database change registration. The registration will be destroyed in the server and in the driver (the network listener will be closed if it's not used anymore).

      This method interrupts the notification thread and removes all listeners attached to this registration before closing it.

      Parameters:
      registration -
      Throws:
      java.sql.SQLException
      Since:
      11.1
      See Also:
      unregisterDatabaseChangeNotification(long,String)
    • unregisterDatabaseChangeNotification

      void unregisterDatabaseChangeNotification​(int registrationId,
                                                java.lang.String host,
                                                int tcpport)
                                         throws java.sql.SQLException
      Deprecated.
      Deletes a given database change registration in the server. This method doesn't free any resources in the drivers.

      This method will throw an "ORA-24950: unregister failed, registration not found" if you don't provide the correct TCP port which can be extracted from the "callback" value in the "USER_CHANGE_NOTIFICATION_REGS" table.

      Throws:
      java.sql.SQLException
      Since:
      11.1
      See Also:
      unregisterDatabaseChangeNotification(long,String)
    • unregisterDatabaseChangeNotification

      void unregisterDatabaseChangeNotification​(int registrationId)
                                         throws java.sql.SQLException
      Deprecated.
      Deletes a given database change registration in the server. This method doesn't free any resources in the drivers.
      Throws:
      java.sql.SQLException
      Since:
      11.1
      See Also:
      unregisterDatabaseChangeNotification(long, String)
    • unregisterDatabaseChangeNotification

      void unregisterDatabaseChangeNotification​(long registrationId,
                                                java.lang.String callback)
                                         throws java.sql.SQLException
      Deletes a given database change registration in the server. This method doesn't free any resources in the drivers and should only be used to clean up a registration in the database that wasn't properly closed (in the case of JVM crash for example).

      This flavor of unregisterDatabaseChangeNotification can be used to process the result of the following query: select regid,callback from USER_CHANGE_NOTIFICATION_REGS;.

      For example to remove all registrations from the database you would execute the following code:

          Statement stmt= conn.createStatement();
          ResultSet rs = stmt.executeQuery("select regid,callback from USER_CHANGE_NOTIFICATION_REGS");
          while(rs.next())
          {
            long regid = rs.getLong(1);
            String callback = rs.getString(2);
            ((OracleConnection)conn).unregisterDatabaseChangeNotification(regid,callback);
          }
          rs.close();
          stmt.close();
          

      Throws:
      java.sql.SQLException
      See Also:
      unregisterDatabaseChangeNotification(oracle.jdbc.dcn.DatabaseChangeRegistration)
    • createARRAY

      ARRAY createARRAY​(java.lang.String typeName,
                        java.lang.Object elements)
                 throws java.sql.SQLException
      Creates an ARRAY object with the given type name and elements.
      Parameters:
      typeName - the name of the SQL type of the created object
      elements - the elements of the created object
      Returns:
      an ARRAY
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createOracleArray

      java.sql.Array createOracleArray​(java.lang.String arrayTypeName,
                                       java.lang.Object elements)
                                throws java.sql.SQLException
      Creates an Array object with the given type name and elements. The standard createArrayOf accepts the element type name. This method accepts the type of the array itself. Oracle does not support anonymous array types and so does not support the standard createArrayOf method.
      Parameters:
      arrayTypeName - the name of the SQL type of the created object
      elements - the elements of the created object
      Returns:
      an ARRAY
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11.2.0.5.0
    • createBINARY_DOUBLE

      BINARY_DOUBLE createBINARY_DOUBLE​(double value)
                                 throws java.sql.SQLException
      Creates a BINARY_DOUBLE that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new BINARY_DOUBLE
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createBINARY_FLOAT

      BINARY_FLOAT createBINARY_FLOAT​(float value)
                               throws java.sql.SQLException
      Creates a BINARY_FLOAT that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new BINARY_FLOAT
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      DATE createDATE​(java.sql.Date value)
               throws java.sql.SQLException
      Creates a DATE that has the given value.
      Parameters:
      value - the value that the new object should repreesnt
      Returns:
      a new DATE
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      DATE createDATE​(java.sql.Time value)
               throws java.sql.SQLException
      Creates a DATE that has the given value.
      Parameters:
      value - the value that the new object should repreesnt
      Returns:
      a new DATE
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      DATE createDATE​(java.sql.Timestamp value)
               throws java.sql.SQLException
      Creates a DATE that has the given value.
      Parameters:
      value - the value that the new object should repreesnt
      Returns:
      a new DATE
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      DATE createDATE​(java.sql.Date value,
                      java.util.Calendar cal)
               throws java.sql.SQLException
      Creates a DATE that has the given value. The value is interpreted as being in the time zone represented by cal.
      Parameters:
      value - the value that the new object should repreesnt
      cal - the timezone in which the value is interpreted
      Returns:
      a new DATE
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      DATE createDATE​(java.sql.Time value,
                      java.util.Calendar cal)
               throws java.sql.SQLException
      Creates a DATE that has the given value. The value is interpreted as being in the time zone represented by cal.
      Parameters:
      value - the value that the new object should repreesnt
      cal - the timezone in which the value is interpreted
      Returns:
      a new DATE
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      DATE createDATE​(java.sql.Timestamp value,
                      java.util.Calendar cal)
               throws java.sql.SQLException
      Creates a DATE that has the given value. The value is interpreted as being in the time zone represented by cal.
      Parameters:
      value - the value that the new object should repreesnt
      cal - the timezone in which the value is interpreted
      Returns:
      a new DATE
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      DATE createDATE​(java.lang.String value)
               throws java.sql.SQLException
      Creates a DATE that has the given value.
      Parameters:
      value - the value that the new object should repreesnt
      Returns:
      a new DATE
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createINTERVALDS

      INTERVALDS createINTERVALDS​(java.lang.String value)
                           throws java.sql.SQLException
      Creates an INTERVALDS that has the given value.
      Parameters:
      value - the value that the new object shoud represent
      Returns:
      a new INTERVALDS
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createINTERVALYM

      INTERVALYM createINTERVALYM​(java.lang.String value)
                           throws java.sql.SQLException
      Creates an INTERVALYM that has the given value.
      Parameters:
      value - the value that the new object shoud represent
      Returns:
      a new INTERVALYM
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(boolean value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(byte value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(short value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(int value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(long value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(float value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(double value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(java.math.BigDecimal value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(java.math.BigInteger value)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      NUMBER createNUMBER​(java.lang.String value,
                          int scale)
                   throws java.sql.SQLException
      Creates a new NUMBER that has the given value and scale.
      Parameters:
      value - the value that the new object should represent
      scale - the scale of the new object
      Returns:
      a new NUMBER
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      TIMESTAMP createTIMESTAMP​(java.sql.Date value)
                         throws java.sql.SQLException
      Creates a new TIMESTAMP with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      TIMESTAMP createTIMESTAMP​(DATE value)
                         throws java.sql.SQLException
      Creates a new TIMESTAMP with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      TIMESTAMP createTIMESTAMP​(java.sql.Time value)
                         throws java.sql.SQLException
      Creates a new TIMESTAMP with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      TIMESTAMP createTIMESTAMP​(java.sql.Timestamp value)
                         throws java.sql.SQLException
      Creates a new TIMESTAMP with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      TIMESTAMP createTIMESTAMP​(java.sql.Timestamp value,
                                java.util.Calendar cal)
                         throws java.sql.SQLException
      Creates a new TIMESTAMP with the given value.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMP
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      12R2
    • createTIMESTAMP

      TIMESTAMP createTIMESTAMP​(java.lang.String value)
                         throws java.sql.SQLException
      Creates a new TIMESTAMP with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Date value)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Date value,
                                    java.util.Calendar cal)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Time value)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Time value,
                                    java.util.Calendar cal)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Timestamp value)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Timestamp value,
                                    java.util.Calendar cal)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Timestamp value,
                                    java.time.ZoneId tzid)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Parameters:
      value - the value that the new object should represent
      tzid - the ZoneId of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.lang.String value)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(java.lang.String value,
                                    java.util.Calendar cal)
                             throws java.sql.SQLException
      Creates a new TIMESTAMPTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      TIMESTAMPTZ createTIMESTAMPTZ​(DATE value)
                             throws java.sql.SQLException
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      TIMESTAMPLTZ createTIMESTAMPLTZ​(java.sql.Date value,
                                      java.util.Calendar cal)
                               throws java.sql.SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      TIMESTAMPLTZ createTIMESTAMPLTZ​(java.sql.Time value,
                                      java.util.Calendar cal)
                               throws java.sql.SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      TIMESTAMPLTZ createTIMESTAMPLTZ​(java.sql.Timestamp value,
                                      java.util.Calendar cal)
                               throws java.sql.SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      TIMESTAMPLTZ createTIMESTAMPLTZ​(java.lang.String value,
                                      java.util.Calendar cal)
                               throws java.sql.SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      TIMESTAMPLTZ createTIMESTAMPLTZ​(DATE value,
                                      java.util.Calendar cal)
                               throws java.sql.SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      java.sql.SQLException - if a database error occurs
      Since:
      11R1
    • cancel

      void cancel()
           throws java.sql.SQLException
      Performs an immediate (asynchronous) termination of any currently executing operation on this connection. It is normally used to stop a long-running JDBC call being processed on the server. It can be called by a user thread in multithreaded applications.

      For example, in the context of AQ, it can be used to cancel a 'dequeue' call that is waiting for a new message to be enqueued.

      Throws:
      java.sql.SQLException - if the cancel operation fails
    • abort

      void abort()
          throws java.sql.SQLException
      Calling abort() on an open connection does the following: marks the connection as closed, closes any sockets or other primitive connections to the database, and insures that any thread that is currently accessing the connection will either progress to completion of the JDBC call or throw an exception. Calling abort() on a closed connection does nothing. It is critical to note that abort() does not hang. It does not block because of pending database operations. In particular it is not synchronized. Since typically abort() will be called when it appears that the connection is dead, any attempt to communicate with the database via blocking IO is likely to hang and is not attempted. As such, abort leaves the connection in a unknown state. Although abort marks the connection as closed, it does not release any local resources as it cannot do so safely; it is not synchronized. It is recommended to call Connection.close() after calling abort. Connection.close() will recognize that connection has been aborted and will clean up local resources, even though the connection has already been marked as closed. Since Connection.close is synchronized it may hang briefly while any thread that has a lock on the connection completes and releases the lock. Recall that after calling abort any thread that is using the connection will be able to proceed to completion or will throw an exception. abort is very different from OracleConnection.cancel. cancel gracefully stops the execution of any SQL operation. It is a synchronous operation that communicates with the database. It leaves the connection and the statements in a well-known and usable state. In contrast abort tears down the client side network connection to the database, leaving the server to clean up as best it can whenever it discovers that the connection has been broken. abort does not clean up client side resources and leaves the connection and associated statements in an unknown and unusable state. The only valid thing to do with a connection after calling abort is to call close and then discard the connection object. After calling cancel the app can continue to use the connection and statements. If there is a security manager, its checkPermission method is called with an oracle.jdbc.OracleSQLPermission("callAbort") permission to see if the caller has permission to abort a connection. If the caller does not have permission, a SecurityException is thrown. See the ojdbc.policy file in the demo directory for help in granting the appropriate permissions when using a SecurityManager with Oracle JDBC. The best use of the abort() call is in the layer that manages connections such as the connection pool. Stale or invalid connections may often appear to hang when an application thread is blocked on a network call. Connection pools may implement a cleaner thread, that simply looks for such stale connections and issues the abort() call. This results in releasing all client handles and resources without expecting an acknowledgement from the database backend. There is no need for user code to call abort when using an Oracle connection pool such as the Implicit Connection Cache or the Universal Connection Pool as these connection pools will call abort when necessary.
      Throws:
      java.sql.SQLException - -- Io Exception: Socket closed - ORA-17002 TNS:not connected - ORA-12153
      java.lang.SecurityException - if the caller does not have the necessary permission
      Since:
      11.0
    • getAllTypeDescriptorsInCurrentSchema

      TypeDescriptor[] getAllTypeDescriptorsInCurrentSchema()
                                                     throws java.sql.SQLException
      Obtain all the type descriptors associated with object types or array in the schema of this connection. Note that synonyms are not suportted. Requires an internal PL/SQL package that is present only in database 11 and above.
      Returns:
      An array of the appropriate descriptors for Arrays or Structs depending on the type names found.
      Throws:
      java.sql.SQLException - If an error occurs.
      Since:
      11.1
    • getServerSessionInfo

      java.util.Properties getServerSessionInfo()
                                         throws java.sql.SQLException
      Exposes some of the key/value pairs that the server returns at connection time. See oracle.jdbc.driver.T4CTTIoauthenticate, many of the values are received from that TTC call.
      Returns:
      A copy of the server session info Properties object
      Throws:
      java.sql.SQLException
    • getServerSessionInfo

      default java.lang.String getServerSessionInfo​(java.lang.String key)
                                             throws java.sql.SQLException
      Returns the value associated to a key that the server returns at connection time. See oracle.jdbc.driver.T4CTTIoauthenticate, many of the values are received from that TTC call.
      Parameters:
      key - Key to look up
      Returns:
      Value associated to the key, or null if there is no association.
      Throws:
      java.sql.SQLException
    • getTypeDescriptorsFromListInCurrentSchema

      TypeDescriptor[] getTypeDescriptorsFromListInCurrentSchema​(java.lang.String[] typeNames)
                                                          throws java.sql.SQLException
      Obtain the type descriptors associated with object types or array in a schema from an array of type names. Note that synonyms are not suportted. Requires an internal PL/SQL package that is present only in database 11 and above.
      Parameters:
      typeNames - An array of Strings which are type names. Use upper case unless the type names are mixed case names.
      Returns:
      An array of the appropriate descriptors for Arrays or Structs depending on the type names found.
      Throws:
      java.sql.SQLException - if the specified type does not exist, or if an error occurred.
      Since:
      11.1
    • getTypeDescriptorsFromList

      TypeDescriptor[] getTypeDescriptorsFromList​(java.lang.String[][] schemaAndTypeNamePairs)
                                           throws java.sql.SQLException
      Obtain the type descriptors associated with object types or arrays from an array of scheama and type names. Note that synonyms are not suportted. Requires an internal PL/SQL package that is present only in database 11 and above.
      Parameters:
      schemaAndTypeNamePairs - An array of arrays of Strings which are pairs of schema and type names.
      Returns:
      An array of the appropriate descriptors for Arrays or Structs depending on the type names found.
      Throws:
      java.sql.SQLException - if any of the specified types does not exist, or if an error occurs.
      Since:
      11.1
    • getDataIntegrityAlgorithmName

      java.lang.String getDataIntegrityAlgorithmName()
                                              throws java.sql.SQLException
      Returns the name of the algorithm that is used for data integrity checking by the thin driver on the network. Returns "" when there is no data integrity checking.
      Throws:
      java.sql.SQLException
    • getEncryptionAlgorithmName

      java.lang.String getEncryptionAlgorithmName()
                                           throws java.sql.SQLException
      Returns the name of the algorithm that is used for data encryption by the thin driver on the network. Returns "" when the data isn't encrypted on the network.
      Throws:
      java.sql.SQLException
    • getAuthenticationAdaptorName

      java.lang.String getAuthenticationAdaptorName()
                                             throws java.sql.SQLException
      Returns the name of the adaptor that is used for authentication by the thin driver. Returns "" for basic user/password authenticatin.
      Throws:
      java.sql.SQLException
    • isUsable

      boolean isUsable()
      Identifies whether this connection is still usable for JDBC operations.
      Returns:
      true if this connection is usable; false otherwise.
    • setDefaultTimeZone

      void setDefaultTimeZone​(java.util.TimeZone tz)
                       throws java.sql.SQLException
      The TimeZone to be used while creating java.sql.Date, java.sql.Time, and java.sql.Timestamp.
      Parameters:
      tz - Default TimeZone to be used for all Date, Time and Timestamp conversions.
      Throws:
      java.sql.SQLException - if there is an issue while setting the TimeZone
    • getDefaultTimeZone

      java.util.TimeZone getDefaultTimeZone()
                                     throws java.sql.SQLException
      Returns the TimeZone set through setDefaultTimeZone.
      Returns:
      TimeZone set through setDefaultTimeZone. Returns null if TimeZone if setDefaultTimeZone in not invoked with proper values.
      Throws:
      java.sql.SQLException - If there is any issue while retrieving the TimeZone
    • setApplicationContext

      void setApplicationContext​(java.lang.String nameSpace,
                                 java.lang.String attribute,
                                 java.lang.String value)
                          throws java.sql.SQLException
      Deprecated.
      This has been deprecated since 12.1 in favour of setClientInfo(). It is not recommended to use this API intermingled with get/setClientInfo APIs.
      Sets a attribute/value pair in a particular namespace in the application context on the server. This application context is stored in the user session. Note that you can call this method multiple times to set more than one attribute/value pair in the application context. Please note that the only supported namespace is CLIENTCONTEXT. More may be added in a future release. This method does not require any additional roundtrip.
      Parameters:
      nameSpace - The namespace where this attribute/value pairs will be stored. The only supported namespace is CLIENTCONTEXT. The value cannot be null nor empty.
      attribute - The attribute whose value needs to be set. If the value is null then a NullPointerException is thrown. If the value is an empty string (""), then the namespace will be cleared and the value is ignored.
      value - The value of the attribute. If the value is null then a NullPointerException is thrown. If the value is an empty string (""), then the attribute will be cleared.
      Throws:
      java.sql.SQLException - If an error occurs
      See Also:
      clearAllApplicationContext(java.lang.String), Connection.setClientInfo(java.lang.String, java.lang.String), Connection.setClientInfo(java.util.Properties)
    • clearAllApplicationContext

      void clearAllApplicationContext​(java.lang.String nameSpace)
                               throws java.sql.SQLException
      Deprecated.
      This is deprecated since 12.1 in favor of the standard JDBC API setClientInfo(). It is not recommended to use this API intermingled with get/setClientInfo APIs.
      Clear all the attribute/value information in a namespace.
      Parameters:
      nameSpace - The namespace which will be cleared
      Throws:
      java.sql.SQLException
      See Also:
      setApplicationContext(java.lang.String, java.lang.String, java.lang.String), Connection.setClientInfo(java.util.Properties)
    • addLogicalTransactionIdEventListener

      void addLogicalTransactionIdEventListener​(LogicalTransactionIdEventListener listener)
                                         throws java.sql.SQLException
      Registers a listener to Logical Transaction Id events. The caller is responsible for writing an implementation of the LogicalTransactionIdEventListener interface. A listener instance must then be registered using this method.
      Throws:
      java.sql.SQLException
    • addLogicalTransactionIdEventListener

      void addLogicalTransactionIdEventListener​(LogicalTransactionIdEventListener listener,
                                                java.util.concurrent.Executor executor)
                                         throws java.sql.SQLException
      This flavor of addLogicalTransactionIdEventListener can be used to register a listener with an executor. When a Logical Transaction Id event is triggered the driver will use this executor to call the listener's onLogicalTransactionIdEvent method. Typically you would call this method if you want onLogicalTransactionIdEvent to be executed in a separate thread.
      Throws:
      java.sql.SQLException
    • removeLogicalTransactionIdEventListener

      void removeLogicalTransactionIdEventListener​(LogicalTransactionIdEventListener listener)
                                            throws java.sql.SQLException
      Deregisters the Logical Transaction Id event listener.
      Throws:
      java.sql.SQLException
    • getLogicalTransactionId

      LogicalTransactionId getLogicalTransactionId()
                                            throws java.sql.SQLException
      Gets the current Logical Transaction Id which are sent by the server in a piggy back message and hence this method call doesn't make a roundtrip.
      Throws:
      java.sql.SQLException
    • isDRCPMultitagEnabled

      boolean isDRCPMultitagEnabled()
                             throws java.sql.SQLException
      Returns true if multiple tags are allowed with DRCP Connection.
      Returns:
      true if DRCP multitagging is enabled.
      Throws:
      java.sql.SQLException
      See Also:
      CONNECTION_PROPERTY_USE_DRCP_MULTIPLE_TAG
    • getDRCPReturnTag

      java.lang.String getDRCPReturnTag()
                                 throws java.sql.SQLException
      Returns the tag associated with this DRCP pooled server. If multiple tags are used, they will be separated by a semicolon. If tagging is not enabled or not available or if this connection is currently not attached to any DRCP pooled server then this method returns null.
      Throws:
      java.sql.SQLException
      See Also:
      detachServerConnection(java.lang.String), CONNECTION_PROPERTY_USE_DRCP_MULTIPLE_TAG
    • attachServerConnection

      boolean attachServerConnection()
                              throws java.sql.SQLException
      This method needs to be called before using a DRCP connection. This method is a local call when used without tagging and will return immediately. The server process from the specified connection class is obtained during the next roundtrip to the server. So the database roundtrip after attachServerConnection will take longer than usual. However when tagging is used this call makes a roundtrip to obtain a server process from the same connection class. So invoking this call will wait until a server process is available for this session.

      Multiple invocation of this method with tagging will not make multiple roundtrips to the database instead return the status from the previous call.

      Invoking this method on a non DRCP connection or invoking this method multiple times in a non-tagging case is a noop and will return true. Invoking this method multiple times in a tagging case will return the tag match status.

      needToPurgeStatementCache() returns true if the underlying session has changed and if the local statement cache should be purged.

      Returns:
      true - If the tag matched. In cases without tagging it returns true by default
      Throws:
      java.sql.SQLException - If there is an exception while obtaining server process
      Since:
      12.1
      See Also:
      isDRCPEnabled(), detachServerConnection(java.lang.String), needToPurgeStatementCache()
    • detachServerConnection

      void detachServerConnection​(java.lang.String tag)
                           throws java.sql.SQLException

      Notify the server that this connection can be detached from its DRCP pooled server. The server can choose to reuse the server process if needed. The connection can be released with an optional tag so that, upon the next invocation of attachServerConnection() on this connection, the server will attempt to pair this connection with the server process of the same tag.

      This method normally makes a one way database call for performance reasons. However, the call is two way when the connection is participating in a transaction.

      Parameters:
      tag - A string value that the connection will be associated in the the server. null is a valid argument when no tagging is required. An empty String will be treated the same as null.
      Throws:
      java.sql.SQLException - If there was an exception while detaching this connection
      Since:
      12.1
      See Also:
      isDRCPEnabled(), attachServerConnection(), needToPurgeStatementCache()
    • needToPurgeStatementCache

      boolean needToPurgeStatementCache()
                                 throws java.sql.SQLException
      Returns if the client side Statement cache has to be purged. This method informs the connection managers if the local statement cache should be purged.
      Returns:
      true to purge the statement cache
      Throws:
      java.sql.SQLException - if there is an exception while performing this operation.
      Since:
      12.1
      See Also:
      isDRCPEnabled(), attachServerConnection(), detachServerConnection(java.lang.String)
    • beginRequest

      void beginRequest()
                 throws java.sql.SQLException
      Declares that a request to the server is starting on this connection. When called after another beginRequest() but before an endRequest(), this call is a no-op and does not throw any exception. Therefore, application is allowed to call beginRequest after a connection pool checkout, which implicitly calls beginRequest.
      Specified by:
      beginRequest in interface java.sql.Connection
      Throws:
      java.sql.SQLException - When called with an open transaction on this connection.
    • endRequest

      void endRequest()
               throws java.sql.SQLException
      Declares that the request that was in progress on this connection has completed. Existing connection labels and state on the connection are not affected by this call. Calling endRequest() multiple times without beginRequest() in-between is allowed.
      Specified by:
      endRequest in interface java.sql.Connection
      Throws:
      java.sql.SQLException - When called with an open transaction on this connection.
    • setShardingKeyIfValid

      boolean setShardingKeyIfValid​(OracleShardingKey shardingKey,
                                    OracleShardingKey superShardingKey,
                                    int timeout)
                             throws java.sql.SQLException
      Checks the validity of the connection and also checks if the sharding keys passed to this method are valid for the connection. If the sharding keys are valid, it will be set on the connection.
      Parameters:
      shardingKey - Sharding key to be validated and set against this connection. Not null.
      superShardingKey - Super Sharding key to be validated and set against this connection. May be null.
      timeout - Time in seconds before which the validation process is expected to be complete, else the validation process is aborted. The value of the timeout must be set to zero to disable the timeout during the validation.
      Returns:
      true if the connection is valid and the shard keys are valid to be set on this connection.
      Throws:
      java.sql.SQLException - if there is any exception while performing this validation or if timeout value is less than 0.
      java.lang.IllegalArgumentException - if the shardingKey is null.
    • setShardingKey

      void setShardingKey​(OracleShardingKey shardingKey,
                          OracleShardingKey superShardingKey)
                   throws java.sql.SQLException
      Sets the sharding key and the super sharding key on this connection.
      Parameters:
      shardingKey - Sharding key to be set on this connection
      superShardingKey - Super Sharding key to be set on this connection
      Throws:
      java.sql.SQLException - if there is an exception while setting the sharding keys on this connection.
    • setShardingKeyIfValid

      boolean setShardingKeyIfValid​(OracleShardingKey shardingKey,
                                    int timeout)
                             throws java.sql.SQLException
      Checks the validity of the connection and also checks if the sharding key passed to this method is valid for the connection. If the sharding key is valid, it will be set on the connection.
      Parameters:
      shardingKey - Sharding key to be validated and set against this connection. Not null.
      timeout - Time in seconds before which the validation process is expected to be complete, else the validation process is aborted. The value of the timeout must be set to zero to disable the timeout during the validation.
      Returns:
      true if the connection is valid and the shard keys are valid to be set on this connection.
      Throws:
      java.sql.SQLException - if there is any exception while performing this validation or if timeout value is less than 0.
      java.lang.IllegalArgumentException - if the shardingKey is null.
    • setShardingKey

      void setShardingKey​(OracleShardingKey shardingKey)
                   throws java.sql.SQLException
      Sets the sharding key on this connection.
      Parameters:
      shardingKey - Sharding key to be set on this connection
      Throws:
      java.sql.SQLException - if there is an exception while setting the sharding keys on this connection.
    • isValid

      boolean isValid​(OracleConnection.ConnectionValidation effort,
                      int timeout)
               throws java.sql.SQLException
      Returns true if this connection was working properly to the extent specified by effort at the instant during this call it was checked. It does not imply it is still working after the call returns, only it worked at some point during the call. Returns false if the connection is not working properly at the instant during the call when it is checked or if the timeout is exceeded while checking.
      Parameters:
      timeout - The time in seconds to wait for the validation action to complete. If the timeout expires before the action completes the method returns false. A value of 0 means no limit.
      effort - How much effort to expend checking the connection.

      Note : The Bequeath (BEQ) protocol supports only COMPLETE, SERVER and NETWORK.
      Using other values may return incorrect result and should be avoided.

      Returns:
      true if the connection is valid, false otherwise.
      Throws:
      java.sql.SQLException - if timeout < 0
      See Also:
      OracleConnection.ConnectionValidation
    • getEncryptionProviderName

      java.lang.String getEncryptionProviderName()
                                          throws java.sql.SQLException
      If network encryption service is enabled, returns the name of the encryption provider, otherwise returns null.
      Returns:
      encryptionProviderName
      Throws:
      java.sql.SQLException
      See Also:
      CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL
    • getChecksumProviderName

      java.lang.String getChecksumProviderName()
                                        throws java.sql.SQLException
      If network integrity service is enabled, returns the name of the checksum provider, otherwise returns null.
      Returns:
      checksumProviderName
      Throws:
      java.sql.SQLException
      See Also:
      CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL
    • getNetConnectionId

      java.lang.String getNetConnectionId()
                                   throws java.sql.SQLException
      Returns the Net Connection ID associated with this connection. In case of a connection failure, this ID will appear in the log. If connection ID prefix is configured then the Net Connection ID is prepended with the configured value. Note that this method can be called on a closed connection.
      Throws:
      java.sql.SQLException
      See Also:
      CONNECTION_PROPERTY_THIN_NET_CONNECTIONID_PREFIX
    • disableLogging

      void disableLogging()
                   throws java.sql.SQLException
      Disables the logging for the connection.
      Throws:
      java.sql.SQLException - if an error occurs while disabling logging for the connection
      See Also:
      CONNECTION_PROPERTY_ENABLE_LOGGING, enableLogging()
    • enableLogging

      void enableLogging()
                  throws java.sql.SQLException
      Enables logging for the connection.
      Throws:
      java.sql.SQLException - if an error occurs while enabling logging for the connection
      See Also:
      CONNECTION_PROPERTY_ENABLE_LOGGING, disableLogging()
    • dumpLog

      void dumpLog()
            throws java.sql.SQLException
      Dumps the trace data for the connection to the configured handler. By default, the trace data is dumped to default handler i.e. ConsoleHandler. Users can override the default handler value by providing the target handler name in logging configuration file.
      Throws:
      java.sql.SQLException - if an error occurs while dumping the trace data.
    • startTransaction

      byte[] startTransaction()
                       throws java.sql.SQLException
      Starts a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and start a new transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to start, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      Returns:
      A unique GTRID generated by the driver that identifies the sessionless transaction. Not Null.
      Throws:
      java.sql.SQLException - if auto-commit is set to true.
    • startTransaction

      byte[] startTransaction​(int timeout)
                       throws java.sql.SQLException
      Starts a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and start a new transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to start, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      Parameters:
      timeout - in seconds (non-negative). This controls how long the transaction will stay alive after it has been suspended. If the transaction is not resumed within the timeout it will be rolled-back, 0 indicates that the transaction will be rolled-back immediately after the connection is closed if it has not been resumed beforehand.
      Returns:
      A unique GTRID generated by the driver that identifies the started sessionless transaction. (not-null)
      Throws:
      java.sql.SQLException - if autcommit is set to true or negative timeout is provided.
    • startTransaction

      void startTransaction​(byte[] GTRID)
                     throws java.sql.SQLException
      Starts a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and start a new transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to start, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      Parameters:
      GTRID - (not-null) identifies the sessionless transaction to be started.
      Throws:
      java.sql.SQLException - if autocommit is set to true, invalid GTRID is provided or feature is not supported.
    • startTransaction

      void startTransaction​(byte[] GTRID,
                            int timeout)
                     throws java.sql.SQLException
      Starts a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and start a new transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to start, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      Parameters:
      GTRID - (not-null) identifies the sessionless transaction to be started.
      timeout - in seconds (non-negative). This controls how long the transaction will stay alive after it has been suspended. If the transaction is not resumed within the timeout it will be rolled-back, 0 indicates that the transaction will be rolled-back immediately after the connection is closed if it has not been resumed beforehand.
      Throws:
      java.sql.SQLException - if autocommit is set to true, invalid parameters are provided or feature is not supported.
    • suspendTransactionImmediately

      void suspendTransactionImmediately()
                                  throws java.sql.SQLException
      Suspends current active sessionless transaction. If no transaction is active this operation is a no-op.

      Unlike suspendTransaction() this operation is sent immediately to the server.

      After suspending the transaction, it will be rolled-back by the server if it is not resumed within the timeout value set during the start or resume calls. By default, this timeout is 60 seconds.

      Throws:
      java.sql.SQLException - if transaction fails to suspend.
    • suspendTransaction

      void suspendTransaction()
                       throws java.sql.SQLException
      Suspends current active sessionless transaction. If no transaction is active this operation is a no-op.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to suspend, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      After suspending the transaction, it will be rolled-back by the server if it is not resumed within the timeout value set during the start or resume calls. By default, this timeout is 60 seconds.

      Throws:
      java.sql.SQLException - if feature is not supported.
    • resumeTransaction

      void resumeTransaction​(byte[] GTRID)
                      throws java.sql.SQLException
      Resumes a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and resume the targeted transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to resume, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      Parameters:
      GTRID - (not-null) identifies an existing sessionless transaction to be resumed.
      Throws:
      java.sql.SQLException - if autocommit is set to true, invalid GTRID is provided or feature is not supported.
    • resumeTransaction

      void resumeTransaction​(byte[] GTRID,
                             int timeout)
                      throws java.sql.SQLException
      Resumes a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and resume the targeted transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to resume, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      Parameters:
      GTRID - (not-null) identifies an existing sessionless transaction to be resumed.
      timeout - in seconds (non-negative). This controls how long the transaction will stay alive after it has been suspended. If the transaction is not resumed within the timeout it will be rolled-back, 0 indicates that the transaction will be rolled-back immediately after the connection is closed if it has not been resumed beforehand.
      Throws:
      java.sql.SQLException - if autocommit is set to true, invalid parameters are provided or feature is not supported.
    • getTransactionId

      byte[] getTransactionId()
                       throws java.sql.SQLException
      Returns:
      GTRID identifying the sessionless transaction that is active in the current session, null if no sessionless transaction is active.
      Throws:
      java.sql.SQLException - if feature is not supported.
    • isXAThroughSessionlessTransactions

      boolean isXAThroughSessionlessTransactions()
      Returns:
      true if the property oracle.jdbc.XAThroughSessionlessTransactions is set to true.
    • isValidAsyncOracle

      java.util.concurrent.Flow.Publisher<java.lang.Boolean> isValidAsyncOracle​(int timeout)
                                                                         throws java.sql.SQLException
      Returns a Publisher that emits Boolean.TRUE if the connection has not been closed and is still valid. The driver shall submit a query on the connection or use some other mechanism that positively verifies the connection is still valid when this method is called.

      The query submitted by the driver to validate the connection shall be executed in the context of the current transaction.

      Calling any method of this Connection except cancel, abort, isClosed or one defined by Object after this method is called will block until the returned Publisher calls onComplete or onError.

      Parameters:
      timeout - The time in seconds to wait for the database operation used to validate the connection to complete. If the timeout period expires before the operation completes, the Publsher emits false. A value of 0 indicates a timeout is not applied to the database operation.
      Returns:
      A Publisher that emits true if the connection is valid, false otherwise
      Throws:
      java.sql.SQLException - if the value supplied for timeout is less than 0
      Since:
      23
    • isValidAsyncOracle

      java.util.concurrent.Flow.Publisher<java.lang.Boolean> isValidAsyncOracle​(OracleConnection.ConnectionValidation effort,
                                                                                int timeout)
                                                                         throws java.sql.SQLException
      Returns a Publisher that emits Boolean.TRUE if this connection was working properly to the extent specified by effort at the instant during this call it was checked. It does not imply it is still working after the Publisher emits onNext, only it worked at some point during the call. The Publisher emits Boolean.FALSE if the connection is not working properly at the instant during the call when it is checked or if the timeout is exceeded while checking.
      Parameters:
      timeout - The time in seconds to wait for the validation action to complete. If the timeout expires before the action completes the Publsiher emits false. A value of 0 means no limit.
      effort - How much effort to expend checking the connection.
      Returns:
      A Publisher that emits true if the connection is valid, false otherwise.
      Throws:
      java.sql.SQLException - if timeout < 0
    • setShardingKeyIfValidAsyncOracle

      default java.util.concurrent.Flow.Publisher<java.lang.Boolean> setShardingKeyIfValidAsyncOracle​(java.sql.ShardingKey shardingKey,
                                                                                                      int timeout)
                                                                                               throws java.sql.SQLException
      Sets and validates the sharding key for this connection.
      Parameters:
      shardingKey - the sharding key to be validated against this connection. Not null.
      timeout - time in seconds before which the validation process is expected to be completed, otherwise the validation process is aborted. A value of 0 indicates the validation process will not time out.
      Returns:
      A Publisher that emits Boolean.TRUE if the connection is valid and the sharding key is valid to be set on this connection; Boolean.FALSE if the sharding key is not valid or the timeout period expires before the operation completes. The Publisher emits onError with a SQLException if an error occurs while performing this validation; this method is called on a closed connection; or the timeout value is negative.
      Throws:
      java.lang.IllegalArgumentException - if the shardingKey is null.
      java.sql.SQLException
      Since:
      23
      See Also:
      OracleShardingKey, OracleShardingKeyBuilder
    • setShardingKeyIfValidAsyncOracle

      java.util.concurrent.Flow.Publisher<java.lang.Boolean> setShardingKeyIfValidAsyncOracle​(java.sql.ShardingKey shardingK