Site icon IT Tutorial

TNS-12656: Cryptographic checksum mismatch

Hi,

Sometimes You can get “TNS-12656: Cryptographic checksum mismatch  ” error.

 

Details of error are as follows.

TNS-12656: Cryptographic checksum mismatch
Cause: The cryptographic checksum received with a packet of incoming data didn’t match the checksum
computed by the receiving end. This indicates that the packet was tampered with or otherwise corrupted in transit.
Action: Look for sources of data corruption, perhaps including deliberate tampering.

 

 

The error relates to an internally-filed bug ( not visible in My Oracle Support), but the high-level details are:

Bug 20960881 – INTEGRITY ENABLED, SQL FAILS, GET IO ERROR INSTEAD OF ORA ERROR

PROBLEM DESCRIPTION:
——————————-
1) Establish connection enabling data integrity
2) Use the connection to execute a drop statement, drop directory TEST_DIR,
which is expected to fail for ORA-04043: object TEST_DIR does not exist.
3) then continue to use the connection to execute a select, select user from
dual

The connection should still be usable at step 3). But when data integrity
types, SHA256, SHA384 and SHA512, is enabled on a jdbc thin connection, there
is “java.sql.SQLRecoverableException: IO Error: Checksum fail” instead of ORA
error in step 2), and step 3) fails for connection is closed.

Integrity types, SHA1 and MD5 do not have this problem. Only SHA256, SHA384
and SHA512 have this problem.

Apply Patch 20960881 on top of JDBC 12.1.0.2

or

as a workaround, ensure matching values for SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = SHA1 in source and target databases used by ODI (workaround since SHA1 does not present the problem):
In Oracle DN 12.1.0.2 sqlnet.ora:

 

SQLNET.ENCRYPTION_CLIENT = REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT = (AES256, AES192, AES128)
SQLNET.CRYPTO_CHECKSUM_CLIENT = REQUIRED
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT= (SHA1)

SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER = (AES256, AES192, AES128)
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER= (SHA256, SHA384, SHA512, SHA1)

 

 

Additionally, for this particular case where CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL is set to an invalid value, change its value to:

CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL, "REQUIRED")

Do you want to learn more details about RMAN, then read the following articles.

https://ittutorial.org/rman-backup-restore-and-recovery-tutorials-for-beginners-in-the-oracle-database/

 

Exit mobile version