Transaction ID mismatch - Data in UI screen is not getting saved
The data in the UI screen does not always in database. The logfile shows transaction ID for frame 'ActionFrame' does not match record.This issue is sporadically affecting end users, who re-enter the data and submit again to save it.
ERROR: posted transaction id '3c442cbfd0b5921dd041c527e3cff48b' for frame 'ActionFrame' DOES NOT match record '5ac1e790e56798170d005af59e8a5aa5'
Steps to Reproduce
A defect in Pegasystems’ code or rules. PRPC creates frames in the UI based on the application design. Every operation / event that user performs it creates a request and passes to server. Every request carries transaction id. If the request has db commits, then the transaction id of that request carried will be verified before doing commit into DB. If it mismatches then the transaction id mismatch error will be thrown. The mismatch generally happens in the following scenarios. Let’s assume R1 and R2, two requests are created simultaneously:
By the time R2 is created, R1 reaches the server.
Server received at time: 05:05:05.234
Server sends response at time: 05:05:05.934
Assume that R2 reached server at time: 05:05:05.526
In the above scenario, R1 and R2 carry the same transaction id. However, R1 db commit is done and the db will be updated with new transaction id. R2 carries the old id, PRPC engine throws transaction id error.
Perform the following local-change: Please create a non-auto generated section and paste the following code and embed the section at the end of a section causing the behaviour.
var newurl = SafeURL_createFromURL(pega.u.d.url);
pega.u.d.url = newurl.toURL();
var url = document.forms.action;
var formURL = SafeURL_createFromURL(url);
Published May 17, 2016 - Updated October 8, 2020
Was this useful?
100% found this useful
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.