Troubleshooting
Problem
Attempts to restore orders from history table using API restoreOrder throws error - YDB92_001 ( The data bound to the column is invalid in this context) java.sql.SQLException: ORA-12899: value too large for column "YFS_PAYMENT"."CREDIT_CARD_EXP_DATE" (actual: 50, maximum: 30)
Cause
This is due to the encryption class being called at the time of purging the payment record into the payment history table.
Diagnosing The Problem
The following parameters are enabled along with the encryption class -
1. Encrypt Primary Payment Attributes for the following Payment Type Groups - Credit Card
2. Additionally Encrypt Credit Card Name And Credit Card Expiration Date
Due to the above settings, the application is attempting to encrypt the credit card details while restoring the order. The encryption of the encrypted values is manifesting in the form of the error - ORA-12899: value too large for column "YFS_PAYMENT"."CREDIT_CARD_EXP_DATE
Resolving The Problem
Set the property yfs.ignorePaymentEncryptionForPurgeAndRestore=Y in the customer overrides properties file and rebuild the EAR. This will ensure that encrypted parameters are not encrypted again on using restoreOrder API
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg22001154