iProcess Engine will not start. SPO server reports the following.
06795|F77836D0|07/20/2017 14:47:03.847|00000001|ERROR|wait_for_WIS: WIS is not ready, waiting... 06795|F77836D0|07/20/2017 14:47:08.851|00000001|ERROR|wait_for_WIS: WIS is not ready, waiting... 06795|F77836D0|07/20/2017 14:47:13.856|00000001|ERROR|wait_for_WIS: WIS is not ready, waiting...
Error from WQS 2017/07/20 14:46:06.179417(WQS:1:6714:1::::swpro:/idl.c:84245:6369): 1945-Database error: filwqsind_insert() Unable to execute statement(non-select) (Statement ID - 492) (ORA-00001: unique constraint (SWHTPRO.PK_WQS_INDEX) violated) 2017/07/20 14:51:06.178297(WQS:1:6714:1::::swpro:/idl.c:84245:6369): 1945-Database error: filwqsind_insert() Unable to execute statement(non-select) (Statement ID - 492) (ORA-00001: unique constraint (SWHTPRO.PK_WQS_INDEX) violated)
Issue/Introduction
iProcess Engine will not start
SPO server reports:
06795|F77836D0|07/20/2017 14:47:03.847|00000001|ERROR|wait_for_WIS: WIS is not ready, waiting...
06795|F77836D0|07/20/2017 14:47:08.851|00000001|ERROR|wait_for_WIS: WIS is not ready, waiting...
06795|F77836D0|07/20/2017 14:47:13.856|00000001|ERROR|wait_for_WIS: WIS is not ready, waiting...
Environment
iProcess Engine (Oracle) 11.4.1.5 RedHat Linux 6.6
Resolution
iProcess has three entries for the same user in the user_names database table.
The following SQL was used to identify the duplicate users: select USER_NAME,USER_TYPE,count(*) from USER_NAMES group by USER_NAME,USER_TYPE having count(*) >1; this lists the user names that have more than one entry.
Retrieve duplicate entries using: select * from USER_NAMES where USER_NAME = '<username>' AND USER_TYPE = '<usertype>'; <username> and <usertype> and the values output in the first SQL.
Delete dupplicate entries from the USER_NAMES and TSYS_USER_NAMES database tables - leaving one row for the user. delete from USER_NAMES where USER_ID = <userid> and USER_TYPE = '<usertype>'; delete from TSYS_USER_NAMES where USER_ID = <userid> and USER_TYPE = '<usertype>';
Example of SQL:
Identify duplicate entries: select USER_NAME,USER_TYPE,count(*) from USER_NAMES group by USER_NAME,USER_TYPE having count(*) >1;
USER_NAME U COUNT(*) -------------------------------- - ---------- swadmin U 3
List all entries: select * from USER_NAMES where USER_NAME = 'swadmin' AND USER_TYPE = 'U';
NODE_ID USER_ID USER_NAME U ---------- ---------- -------------------------------- - 1 1 swadmin U 1 51 swadmin U 1 105 swadmin U
Delete duplicate entries:
delete from USER_NAMES where USER_ID=51 and USER_TYPE='U'; delete from TSYS_USER_NAMES where USER_ID=51 and USER_TYPE='U'; delete from USER_NAMES where USER_ID=105 and USER_TYPE='U'; delete from TSYS_USER_NAMES where USER_ID=105 and USER_TYPE='U';
NOTE Ensure that iProces is fully shutdown when updating the database.