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

Document ID : KB000107762
Last Modified Date : 25/07/2018
Show Technical Document Details
Issue:
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:

User-added image

Log app-access from server2:

User-added image

The fact both servers are getting the same request was causing the issue and the second request failed with HTTP 500.
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.