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 (Doc ID 2220029.1)

Last updated on FEBRUARY 01, 2017

Applies to:

Primavera P6 Enterprise Project Portfolio Management - Version 16.2.0.0 and later
Information in this document applies to any platform.

Symptoms

ACTUAL BEHAVIOR
-----------------------
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.


EXPECTED BEHAVIOR
-----------------------
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.


ADDITIONAL INFORMATION
-----------------------
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,
  username, sql_text,
  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,
  pct_of_time, sql_text
FROM ash_query
WHERE time_rank < 11 and module = 'P6JOBSERVICES'
ORDER BY time_rank;

Note: The failure can occur mainly when the process is running against a larger project. When testing against a smaller project, the same contention occurs but does not cause the copy operation to fail.



The issue can be reproduced at will with the following steps:

  1. Turn off the p6 process running services (this is to ensure the copy/paste kicks off at same time)
  2. Login to P6 Professional
  3. Copy/Paste a project which includes a baseline
  4. In the copy/paste preferences, ensure baseline is selected, and include the baseline in the copy
  5. Once the job is submitted, complete steps 1-4 with a second user account
  6. Start the jvm process running services. this will kick off the project copy operation at same time.
  7. Note the reported issue which occurs above

Cause

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