After upgrade on a cluster environment (On Premise) with Apache Load Balancer we are not able to create new tasks in the Gantt view, error thrown ORA-00001: unique constraint (PPM.PRJ_GANTT_EDITS_U1) violated
search cancel

After upgrade on a cluster environment (On Premise) with Apache Load Balancer we are not able to create new tasks in the Gantt view, error thrown ORA-00001: unique constraint (PPM.PRJ_GANTT_EDITS_U1) violated

book

Article ID: 107762

calendar_today

Updated On:

Products

Clarity PPM On Premise

Issue/Introduction

When opening the Gantt, the users are able to create a new line, enter the task name, select a task code, but they are not able to save the new task. They are selecting a task code from a drop down list.
 
The error we see in the log is:
ERROR 2018-01-30 08:28:08,509 [ajp-nio-xxxxxxxxxx-8998-exec-6] service.WBSService (clarity:admin:46242005__587D6694-F301-4C86-9687-6EB000D7AD69:odata.WBSService.saveEditFast) Unable to save pending edits to database.
com.niku.union.persistence.PersistenceException:
SQL error code: 1
Error message: [CA Clarity][Oracle JDBC Driver][Oracle]ORA-00001: unique constraint (PPM.PRJ_GANTT_EDITS_U1) violated

 
When connecting to one server directly without going via loadbalancer the issue does not occur.
 
 
After investigating we found the app-access logs for both servers were getting the create request. This meant that the issue is definitely with the load balancer config as the session got sent to both servers simultaneously:
Note the session ID and time in app-access.log:
 
Log app-access from server1:

<Please see attached file for image>

User-added image

Log app-access from server2:

<Please see attached file for image>

User-added image

The fact both servers are getting the same request was causing the issue and the second request failed with HTTP 500.

Environment

Release: CODFSS99000-15.4.1-PPM SAAS FedRAMP-Sandbox-Small Environment
Component:

Resolution

After PPM 14.3,  PPM does not create the JSESSION cookie below /niku anymore. Before this change each app could share a proxy and each proxy could LB between all the app nodes. now you can have one proxy per app and each proxy can only connect to it one app node.
 
This means that using Apache as a load balancer will not work to have reliable sticky sessions.
 
We recommend to change the configuration so that sticky session gets enabled at the top F5, then silo down thru Apache proxy having each app configured with a dedicated Apache SSO proxy.
 
 

Attachments

1558698862916000107762_sktwi1f5rjvs16jil.png get_app
1558698861035000107762_sktwi1f5rjvs16jik.png get_app