Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In this article

...

Multiexcerpt include macro
nameOracle JDBC Driver Upgrade
templateDataeJyLjgUAARUAuQ==
pageOracle Snap Pack
addpanelfalse

Prerequisites

NoneKerberos authentication for Oracle setup in the Windows/Linux environment.

Known Issues

None.

Account Settings

...

Oracle Thin Account configuration with the Kerberos service account as the authentication method.

...

Info
  • Asterisk ( * ): Indicates a mandatory field.

  • Suggestion icon ( (blue star) ): Indicates a list that is dynamically populated based on the configuration.

  • Expression icon ( (blue star) ): Indicates whether the value is an expression (if enabled) or a static value (if disabled). Learn more about Using Expressions in SnapLogic.

  • Add icon ( (blue star) ): Indicates that you can add fields in the field set.

  • Remove icon ( (blue star) ): Indicates that you can remove fields from the field set.

Error

Reason

Resolution

Failed to validate account: Failed to retrieve a database connection. 

ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified

Configuring your Windows Registry key value, HKEY_CURRENT_USER\Control Panel\International\LocaleName, in the environment to true or en-US has been observed to work for some Windows-based Groundplex instances. Additional probable solutions can be found here

Batch size

Default Value: 50
Example: 100

Fetch size

Default Value: 100
Example: 100

Required. Set the number of rows that the Snap must fetch at a time when executing a query.

Field Name

Field Type

Field Dependency

Description

Label


Default Value: N/A
ExampleOracle123DB

String

None

RequiredUnique name for the account.

JDBC URL Source


Default Value: Snap Generated
Example: User Provided

String

None

Required. Select the source of the JDBC URL. 

  • Snap Generated: The JDBC URL that SnapLogic generates using the details you provide in the Account Settings popup.

  • User Provided: The JDBC URLs that you provide directly into the Custom JDBC URL field. 

    Note

    If you select the User Provided option, the Host Name, Port Number, and Database Name fields are replaced by the Custom JDBC URL field.


Account properties

RequiredEnter the information to create a connection to the database.

Hostname


Default Value: N/A
Example: 

  • oracledb22.abcdefghijkl.us-west-5.rds.amazonaws.com

  • 190.159.0.124

String

None

Required if JDBC URL Source is Snap GeneratedThe server address to which the application must connect.

If you need to connect to an on-premise server, specify the domain name or the IP address. For example, test.mydbserver.com or 190.159.0.124.

Port Number


Default Value:1521
Example:1521

String

None

Required if JDBC URL Source is Snap Generated. The database server's port number to which the application must connect.

Database name


Default Value: N/A
ExampleMYDB

String

None

Required if JDBC URL Source is Snap GeneratedThe database name to which the application must connect.

Custom JDBC URL


Default Value: N/A
ExampleOracle123DB

String

None

Required if JDBC URL Source is User Provided. The JDBC URLs that you want to use to connect to your Oracle account.

Note

Use this option if you want to use complex JDBC URLs (involving multiple hosts and advanced options) to connect to your Oracle instance. For example, if you want to connect to Oracle DataGuard, you can enter a JDBC like the one below:

jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=on)(ADDRESS_LIST=(LOAD_BALANCE=on)(CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1522)))(CONNECT_DATA=(SERVICE_NAME=OracleTest)))

Username

Default Value: N/A
Example: TECTONIC

String

None

The user name that is allowed to connect to the database. It is used as the default username when retrieving connections. The user name must be valid in order to set up the data source.

Password

Default Value: N/A
Example: Oracle123DB

String

None

The password used to connect to the data source. It is used as the default password when retrieving connections. The password must be valid in order to set up the data source.

JDBC JARs

List of JDBC JAR files to be loaded. Click Image Modified to add a JDBC Driver; click Image Modified to remove a JDBC Driver.

JDBC Driver

Default Value: N/A
Example: N/A

String

None

Multiexcerpt include macro
nameOracle JDBC Driver Upgrade -Behavior Change
templateDataeJyLjgUAARUAuQ==
pageOracle Thin Dynamic Account
addpanelfalse

Learn more: Oracle Driver Upgrade from Oracle JDBC 11.2.0.4 Driver to 19.20.0.0 Driver

Enter the JDBC jar file to be loaded. Use  to select an existing file. A different driver binary for a driver must have a different name, the same name can not be reused for a different driver. If this property is left blank, a default JDBC driver is loaded.

Warning

Only v11.2.0.4.0 or higher JDBC driver supports user-defined types.

JDBC Driver Class

Default Value:oracle.jdbc.OracleDriver
Example: oracle.jdbc.OracleDriver

String

None

Required. The name of the JBDC driver to use.

Database specifier type

Default Value: Service name
Example: Service name

String

None

Specify the database specifier type to use. The selected option decides which format of URL for JDBC is to be used internally. The valid options are:

  • SID: Uses the jdbc:oracle:thin@HOST:PORT:DBNAME format.

  • Service name: Uses the jdbc:oracle:thin@//HOST:PORT/DBNAME format. 

SSL/ TCPS

Default Value: Deselected

String

Opt for or against connecting through SSL to the Oracle instance.

If selected, the following format of URL is used internally:

jdbc:oracle:thin@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=<HOST>)(PORT=<PORT>))(CONNECT_DATA=(<SID/ SERVICE_NAME>=<DATABASE_NAME>)))

Advanced properties

Specify advanced properties to connect to the database.

Auto commit

Authentication method

 

Default Value: 

Selected

String

Opt for or against setting the auto-commit property for a database.

  • When selected, each of the batches is committed immediately after it is executed. If the Snap fails, only the batch being executed at that moment is rolled back.

  • When not selected, the Snap execution output is committed only after all the batches are executed. If the Snap fails, the entire transaction is rolled back, unless the Snap finds invalid input data before it sends the insert request to the server, and routes the error documents to the Error view.

Integer

Required. Set the number of statements that the Snap must execute at a time.

Note

Select queries are not batched.

Warning

Using a large batch size could use up the JDBC placeholder limit of 2100.

Integer

Warning

Large values could cause the server to run out of memory.

Max pool size

Default Value: 50
Example: 50

Integer

Required. Set the maximum number of connections that a pool must maintain at a time.

Max life time

Default Value: 30
Example: 35

Integer

Required. Set the maximum time (in minutes) of a connection in the pool. Ensure that the value you enter is a few seconds shorter than any database or infrastructure-imposed connection time limit. A value of 0 indicates an infinite lifetime, subject to the Idle Timeout value. An in-use connection is never retired. Connections are removed only after they are closed.

Idle Timeout

Default Value: 5
Example: 5

Integer

Required. Set the maximum time (in minutes) that a connection is allowed to sit idle in the pool. A value of 0 indicates that idle connections are never removed from the pool.

Checkout timeout

Default Value: 10000
Example: 10000

Integer

Required. Set the time in milliseconds to wait for a connection to be available when the pool is exhausted. 

Info

If you provide 0, the Snap waits infinitely until the connection is available. Therefore, we recommend you not to specify 0 for Checkout Timeout.

URL Properties

Specify input regarding URL properties.

URL property name

Default Value: N/A
Example: Batch_Refresh_Time

String

Name for the URL property.

URL property value

Default Value: N/A
Example: 10

N/A

Value for the URL property.

Troubleshooting

User ID and Password
Example: Kerberos

Dropdown List

 None

Choose the authentication method to use when connecting to Oracle. The available options are:

  • User ID and Password

  • Kerberos

  • Kerberos authentication for Oracle supports both Windows and Linux-based databases and also supports Service account and User impersonation Kerberos authentication.

  • When the authentication method is Kerberos, for the service account, , you must leave the Username and Password fields empty and add the below property to the URL Properties:

    oracle.net.kerberos5_cc_name = <Path to cache file>

Kerberos config path

 

Default Value: N/A
Example: /opt/app/oracle/dbhome/network/admin/krb5.conf

String/Expression

Appears when the Authentication method is Kerberos.

Specify the path to the Kerberos configuration file.

Kerberos authentication for Oracle supports both Windows and Linux-based databases and also supports Service account and User impersonation Kerberos authentication.

Advanced properties

Specify advanced properties to connect to the database.

Auto commit


Default Value: Selected

String

None

Opt for or against setting the auto-commit property for a database.

  • When selected, each of the batches is committed immediately after it is executed. If the Snap fails, only the batch being executed at that moment is rolled back.

  • When not selected, the Snap execution output is committed only after all the batches are executed. If the Snap fails, the entire transaction is rolled back, unless the Snap finds invalid input data before it sends the insert request to the server, and routes the error documents to the Error view.

Batch size


Default Value: 50
Example: 100

Integer

None

Required. Set the number of statements that the Snap must execute at a time.

Note

Select queries are not batched.

Warning

Using a large batch size could use up the JDBC placeholder limit of 2100.

Fetch size


Default Value: 100
Example: 100

Integer

None

Required. Set the number of rows that the Snap must fetch at a time when executing a query.

Warning

Large values could cause the server to run out of memory.

Max pool size


Default Value: 50
Example: 50

Integer

None

Required. Set the maximum number of connections that a pool must maintain at a time.

Max life time


Default Value: 30
Example: 35

Integer

None

Required. Set the maximum time (in minutes) of a connection in the pool. Ensure that the value you enter is a few seconds shorter than any database or infrastructure-imposed connection time limit. A value of 0 indicates an infinite lifetime, subject to the Idle Timeout value. An in-use connection is never retired. Connections are removed only after they are closed.

Idle Timeout

Default Value: 5
Example: 5

Integer

None

Required. Set the maximum time (in minutes) that a connection is allowed to sit idle in the pool. A value of 0 indicates that idle connections are never removed from the pool.

Checkout timeout

Default Value: 10000
Example: 10000

Integer

None

Required. Set the time in milliseconds to wait for a connection to be available when the pool is exhausted. 

Info

If you provide 0, the Snap waits infinitely until the connection is available. Therefore, we recommend you not to specify 0 for Checkout Timeout.

URL Properties

Specify input regarding URL properties.

URL property name

Default Value: N/A
Example: Batch_Refresh_Time

String

None

Name for the URL property.

URL property value

Default Value: N/A
Example: 10

N/A

None

Value for the URL property.

Troubleshooting

Error

Reason

Resolution

Failed to validate account: Failed to retrieve a database connection. 

ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified

Configuring your Windows Registry key value, HKEY_CURRENT_USER\Control Panel\International\LocaleName, in the environment to true or en-US has been observed to work for some Windows-based Groundplex instances. Additional probable solutions can be found here

Unable to obtain Principal Name for authentication

Caused by: javax.security.auth.login.LoginException.

Ensure that the ticket cache (/tmp/krb5cc_Administrator) has enough permissions.

The service in the process is not supported.

Operation unavailable.

 Ensure to create the Kerberos ticket for the user using "okinit -f"

Got minus one from the read call.

 Keytab is not valid.

Ensure to create a new keytab file and place it in %ORACLE_HOME%/network/admin.

 

The service in the process is not supported.

An Invalid name provided (Mechanism level: KrbException: Cannot locate default realm)

 

Ensure to provide valid krb5.conf path in the account settings.

 

TNS:listener does not currently know of the service requested in the connect descriptor

Oracle service is down.

Ensure the Oracle service is up and running.

 

Cause: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

The Listener refused the connection with the following error:

ORA-12505, TNS: The listener does not currently know of the SID given in the connect descriptor.

For Linux environment:

USE_SID_AS_SERVICE_<YOUR_LISTENER_NAME>=on

For Windows environment:

USE_SID_AS_SERVICE_<YOUR_LISTENER_NAME>=on

...