Errors JZ0C0 or JZ0BE Raised while Masking ASE Databases (KBA6094)
KBA
KBA# 6094
Issue
When masking an ASE database, the following errors may be raised and found in the Delphix Masking Engine's debug logs:
JZ006: Caught IOException: com.sybase.jdbc4.jdbc.SybConnectionDeadException: JZ0C0: Connection is already closed
JZ0BE: BatchUpdateException: Error occurred while executing batch statement: The parameter of type 36 did not have a valid value.
There are three bugs in the SAP jConnect JDBC driver that either:
- Cause the JZ0C0 error to be raised in place of the actual underlying error.
- Or raise the "The parameter of type 36 did not have a valid value" error.
ASE bug number | Description | SAP KB Article |
821529 | The error message, "JZ0C0: Connection is already closed", may be reported by jConnect driver instead of the root cause of why the connection is getting closed. | 2917402 - jConnect driver is not displaying correct error message. Displays JZ0C0: Connection is already closed instead |
820924 | Batch insert fails with parameter using stmt.setCharacterStream. Parameter of type 36 did not have a valid value or Connection is already closed | 2885306 - jConnect: The parameter of type 36 did not have a valid value or Connection is already closed |
821405 | Attempt to insert duplicate key row in object is displayed as Connection is already closed. | 2911976 - jConnect: JZ0BE Attempt to insert duplicate key row is displayed as JZ0C0 Connection is already closed |
Prerequisites
Delphix uses the SAP jConnect JDBC driver to connect to ASE and perform masking related queries (SELECT/INSERT/UPDATE). JZ006, JZ0C0 and JZ0BE are all error codes raised by the JDBC driver itself. JZ0C0 is very common and is often raised when an application using the JDBC driver abruptly loses its connection to the database. Examples of legitimate JZ0C0 errors include:
- The ASE instance crashed.
- ASE was shutdown with the "nowait" clause.
- The spid running the SQL statement was terminated (due to a deadlock or by being "infected").
This article addresses some other situations where JZ0C0 or "The parameter of type 36 did not have a valid value" errors can be raised when there is no legitimate disruption to connectivity.
Applicable Delphix Versions
- Click here to view the versions of the Delphix engine to which this article applies
-
Major Release All Sub Releases 6.0 6.0.0.0, 6.0.1.0, 6.0.1.1, 6.0.2.0 5.3
5.3.0.0, 5.3.0.1, 5.3.0.2, 5.3.0.3, 5.3.1.0, 5.3.1.1, 5.3.1.2, 5.3.2.0, 5.3.3.0, 5.3.3.1, 5.3.4.0, 5.3.5.0 5.3.6.0, 5.3.7.0, 5.3.7.1, 5.3.8.0, 5.3.8.1, 5.3.9.0 5.2
5.2.2.0, 5.2.2.1, 5.2.3.0, 5.2.4.0, 5.2.5.0, 5.2.5.1, 5.2.6.0, 5.2.6.1
5.1
5.1.0.0, 5.1.1.0, 5.1.2.0, 5.1.3.0, 5.1.4.0, 5.1.5.0, 5.1.5.1, 5.1.6.0, 5.1.7.0, 5.1.8.0, 5.1.8.1, 5.1.9.0, 5.1.10.0
5.0
5.0.1.0, 5.0.1.1, 5.0.2.0, 5.0.2.1, 5.0.2.2, 5.0.2.3, 5.0.3.0, 5.0.3.1, 5.0.4.0, 5.0.4.1 ,5.0.5.0, 5.0.5.1, 5.0.5.2, 5.0.5.3, 5.0.5.4
4.3
4.3.1.0, 4.3.2.0, 4.3.2.1, 4.3.3.0, 4.3.4.0, 4.3.4.1, 4.3.5.0
4.2
4.2.0.0, 4.2.0.3, 4.2.1.0, 4.2.1.1, 4.2.2.0, 4.2.2.1, 4.2.3.0, 4.2.4.0 , 4.2.5.0, 4.2.5.1
4.1
4.1.0.0, 4.1.2.0, 4.1.3.0, 4.1.3.1, 4.1.3.2, 4.1.4.0, 4.1.5.0, 4.1.6.0
Resolution
The three bugs are fixed in the following SAP JDBC driver (or newer):
jConnect (TM) for JDBC(TM)/16.0 SP03 PL08 ONEOFF (Build 27481)/P/EBF29475/JDK 1.6.0/jdbcdev/OPT/Mon Jun 1 03:59:16 PDT 2020
To resolve the issue, it will be necessary to upgrade the Masking Engine to version 6.0.3 or higher which includes the newer SAP jConnect JDBC driver.
There are two other uncommonly used areas of the product that might need to be updated after upgrading:
- After upgrading the Masking Engine if you are using the Generic Database Connector with the SAP ASE jConnect JDBC driver, it will be necessary to change the
Custom Driver Name
element fromcom.sybase.jdbc4.jdbc.SybDriver
tocom.sybase.jdbc42.jdbc.SybDriver
. - Any ASE mapplets which directly utilize the JDBC driver should be updated to refer to
com.sybase.jdbc42.jdbc.SybDriver
.
Troubleshooting
In the debug logs of the Delphix Masking Engine (which are normally found in a Delphix Support bundle under the masking/logs/Applogs
directory, you will see stack traces with the error message similar to the following.
JZ0C0 example:
2019/12/31 16:00:25 - Table input.0 - An error occurred executing SQL: 2019/12/31 16:00:25 - Table input.0 - SELECT "Account_Id" , "Acct_Name" , "Covered" , "Create_By" , "Create_Ts" , "Expiration_Date" , "Long_Calls" , "Long_Puts" , "Processing_Date" , "Sec_No" , "Short_Calls" , "Short_Puts" , "Strike_Price" , "Symbol" , "Total_Long" , "Total_Short" , "Update_By" , "Update_Ts" FROM dbo."Stocks" 2019/12/31 16:00:25 - Table input.0 - 2019/12/31 16:00:25 - Table input.0 - Error determining value metadata from SQL resultset metadata 2019/12/31 16:00:25 - Table input.0 - JZ006: Caught IOException: com.sybase.jdbc4.jdbc.SybConnectionDeadException: JZ0C0: Connection is already closed. 2019/12/31 16:00:25 - Table input.0 - 2019/12/31 16:00:25 - Table input.0 - 2019/12/31 16:00:25 - Table input.0 - at org.pentaho.di.core.database.Database.openQuery(Database.java:1770) 2019/12/31 16:00:25 - Table input.0 - at org.pentaho.di.trans.steps.tableinput.TableInput.doQuery(TableInput.java:236) 2019/12/31 16:00:25 - Table input.0 - at org.pentaho.di.trans.steps.tableinput.TableInput.processRow(TableInput.java:140) 2019/12/31 16:00:25 - Table input.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62) 2019/12/31 16:00:25 - Table input.0 - at java.lang.Thread.run(Thread.java:748) 2019/12/31 16:00:25 - Table input.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 2019/12/31 16:00:25 - Table input.0 - Error determining value metadata from SQL resultset metadata 2019/12/31 16:00:25 - Table input.0 - JZ006: Caught IOException: com.sybase.jdbc4.jdbc.SybConnectionDeadException: JZ0C0: Connection is already closed.
"The parameter of type 36 did not have a valid value" example:
2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - Error batch inserting rows into table ["Concerts"]. 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - Errors encountered (first 10): 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - The parameter of type 38 did not have a valid value. 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - Error updating batch 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - JZ0BE: BatchUpdateException: Error occurred while executing batch statement: The parameter of type 38 did not have a valid value. 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - 2019-11-10 19:35:38,062 [pool-5-thread-4] INFO c.d.d.m.t.RunServiceImpl - [JOB_ID_436_1646] 2019/11/10 19:35:38 - TableOutput.0 - Next Exception: SQLState( ZZZZZ) ErrorCode(3814)
Related Articles
The following articles may provide more information or related information to this article:
- SAP JDBC SQL Exception and Warning Messages
- Related SAP KB Articles (requires support account with SAP):
- 2917402 - jConnect driver is not displaying correct error message. Displays JZ0C0: Connection is already closed instead
- 2885306 - jConnect: The parameter of type 36 did not have a valid value or Connection is already closed
- 2911976 - jConnect: JZ0BE Attempt to insert duplicate key row is displayed as JZ0C0 Connection is already closed