Digital Signature corruption in SAP PLM 7.x, case #3
Introduction
This blog describes a very specific condition where a digital signature corruption can occur. As far as I know the bug exists in all SAP PLM 7.x systems out there leveraging digital signatures. Before you continue, you might want to familiarize yourself with Digital Signatures in SAP PLM 7.x. I reported the problem described in this blog to SAP support 5/14/15 but the handling of the customer incident could have been better meaning the customer incident never reached the respective development support team. As far as I know the bug hasn’t been fixed.
Technical Details
Whenever a document is digitally signed, saving the document will trigger the update of change pointers used for Enterprise Search (ESH) in table ESH_EX_CPOINTER. Sometimes the updating of the change pointers will fail with a DBIF_RSQL_SQL_ERROR short dump due to a duplicate key and/or deadlock for the table. When the short dump occurs, the document won’t be correctly saved although the digital signature was. This is what is referred to as digital signature corruption. The short dumps seem to occur only for the object type DOCUM_KPRO_ORIG_VERS and only under heavy load, when there are multiple parallel real-time indexing jobs running.
Solution
While not optimal, you can avoid the short dumps by disabling real-time indexing for the problematic object type DOCUM_KPRO_ORIG_VERS. You will loose the capability to search on originals, unless you schedule the indexing manually but depending on your process it may still be something you want to do. In order to disable real-time indexing, create an enhancement implementation of the enhancement spot ES_ESH_INDX_ORIGINAL, inside the BAdI method IF_EX_DIR_INDX_ORIGINALS~INDEX_ORIGINALS simply define ev_index_originals = abap_false.