Project Copy/Paste Job Failing With Error "com.primavera.PhoenixException: Transaction Id RemoteTxId[#] Does Not Exist" and Causing "Enq: Tx - Row Lock Contention" When Including a Baseline in Copy/Paste Operation
Last updated on FEBRUARY 01, 2017
Applies to:Primavera P6 Enterprise Project Portfolio Management - Version 126.96.36.199 and later
Information in this document applies to any platform.
When running multiple copy/paste project operations where the copy/paste includes a baseline, the p6service executes the PROJECT_COPY_BASELINE procedure, and will run a delete statement against PKXREF (statement = DELETE FROM PKXREF WHERE SYSTEM_ID = :B1 AND CONTEXT_NAME = 'PWBSID') which can result in enq: tx - row lock contention.This can result in slowdown of the copy/paste operation and one or all of the project copy operations to fail with "com.primavera.PhoenixException: Transaction id RemoteTxId[#] does not exist" in the P6WebAccess.html log file, because of a slowdown in the operation and the associated PMT connection pool generating a SQL exception attempting to close the statement.
For the copy/paste operation, when the copy/paste includes a baseline, to prevent or eliminate row lock contention by not writing to the PKXREF table.
An AWR report or following statement can be utilized to show the "enq: tx - row lock contention" after the copy/paste operation fails:
WITH ash_query AS (
SELECT substr(event,6,2) lock_type, sample_time, program,
h.module, h.action, object_name,
SUM(time_waited)/1000 time_ms, COUNT( * ) waits,
RANK() OVER (ORDER BY SUM(time_waited) DESC) AS time_rank,
ROUND(SUM(time_waited) * 100 / SUM(SUM(time_waited))
OVER (), 2) pct_of_time
FROM v$active_session_history h
JOIN dba_users u USING (user_id)
LEFT OUTER JOIN dba_objects o
ON (o.object_id = h.current_obj#)
LEFT OUTER JOIN v$sql s USING (sql_id)
WHERE event LIKE 'enq: %'
GROUP BY substr(event,6,2) ,sample_time, program,
h.module, h.action, object_name, sql_text, username)
SELECT sample_time, lock_type,module, username, object_name, time_ms,
WHERE time_rank < 11 and module = 'P6JOBSERVICES'
ORDER BY time_rank;
The issue can be reproduced at will with the following steps:
- Turn off the p6 process running services (this is to ensure the copy/paste kicks off at same time)
- Login to P6 Professional
- Copy/Paste a project which includes a baseline
- In the copy/paste preferences, ensure baseline is selected, and include the baseline in the copy
- Once the job is submitted, complete steps 1-4 with a second user account
- Start the jvm process running services. this will kick off the project copy operation at same time.
- Note the reported issue which occurs above
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms