Unable to install CABI successfully

Document ID : KB000103153
Last Modified Date : 25/06/2018
Show Technical Document Details
Issue:
I'm trying to do a clean install of CABI in my recently upgraded to 8.51 environment, and the CABI install is failing at the same place after a couple of tries. I've attempted to add the CABI key to the WASP config with no success. I've manually cleaned the files off the target server and had it fail.  Each time, it fails with the following errors in the install log:
May 10 11:14:36:776 [main, cabi] changing probe state from 'STARTING_WASP' to 'INSTALLING_CABI'
May 10 11:14:36:776 [main, cabi] Creating User Synchronizer ...
May 10 11:14:37:289 [main, cabi] com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 's'.
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1454)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:786)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:685)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:185)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:160)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:620)
        at com.ca.cabi4uim.sso.UimUserUtility.getAccountsOrigins(UimUserUtility.java:130)
        at com.ca.cabi4uim.sso.UimUserUtility.getUmpAccounts(UimUserUtility.java:111)
        at com.ca.cabi4uim.sso.UimToJasperUserSync.init(UimToJasperUserSync.java:64)
        at com.ca.cabi4uim.sso.UimToJasperUserSync.<init>(UimToJasperUserSync.java:94)
        at com.ca.cabi4uim.Probe.getUserSynchronizer(Probe.java:532)
        at com.ca.cabi4uim.Probe.createRestUser(Probe.java:562)
        at com.ca.cabi4uim.Probe.setupCabiInBundledMode(Probe.java:354)
        at com.ca.cabi4uim.Probe.setupcabi(Probe.java:281)
        at com.ca.cabi4uim.Probe.initOnTimer(Probe.java:620)
        at com.nimsoft.nimbus.NimProbe.doForever(NimProbe.java:418)
        at com.ca.cabi4uim.Probe.run(Probe.java:805)
        at com.ca.cabi4uim.Probe.main(Probe.java:111)

May 10 11:14:37:290 [main, cabi] com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 's'.
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1454)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:786)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:685)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:185)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:160)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:620)
        at com.ca.cabi4uim.sso.UimUserUtility.getAccountsOrigins(UimUserUtility.java:130)
        at com.ca.cabi4uim.sso.UimUserUtility.getUmpAccounts(UimUserUtility.java:111)
        at com.ca.cabi4uim.sso.UimToJasperUserSync.init(UimToJasperUserSync.java:64)
        at com.ca.cabi4uim.sso.UimToJasperUserSync.<init>(UimToJasperUserSync.java:94)
        at com.ca.cabi4uim.Probe.getUserSynchronizer(Probe.java:532)
        at com.ca.cabi4uim.Probe.createRestUser(Probe.java:562)
        at com.ca.cabi4uim.Probe.setupCabiInBundledMode(Probe.java:354)
        at com.ca.cabi4uim.Probe.setupcabi(Probe.java:281)
        at com.ca.cabi4uim.Probe.initOnTimer(Probe.java:620)
        at com.nimsoft.nimbus.NimProbe.doForever(NimProbe.java:418)
        at com.ca.cabi4uim.Probe.run(Probe.java:805)
        at com.ca.cabi4uim.Probe.main(Probe.java:111)

May 10 11:14:37:309 [main, cabi] com.ca.cabi4uim.sso.exceptions.UserSynchronizationException: Error creating UimToJasperUserSync
...
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 's'.
...
 
Environment:
UIM 8.51 
CABI Bundled 3.2.0 
Cause:
CABI is failing to start during the User Synchronizer because one of the account names contain a special character " ' ".

As per the current design, account synchronization with cabi does not work when the following chars are used:
 
\, |, [ ], `, ", ', ~, !, #, $, %, ^, &, [,], *, +, =, ;,      * :, ?, <, >, }, {, ), (, ], [, /, @
 
Resolution:
Do not use the following special characters in the user or account name.
\, |, [ ], `, ", ', ~, !, #, $, %, ^, &, [,], *, +, =, ;,      * :, ?, <, >, }, {, ), (, ], [, /, @