IBM Support

Enabling "Force Case Insensitive Search" causes errors when accessing long string properties

Troubleshooting


Problem

When "Force Case Insensitive Search" (FCIS) is enabled, Content Engine (CE) will run into errors when accessing long, string properties.

Symptom

The following exception will be generated when using/searching long, string properties: com.microsoft.sqlserver.jdbc.SQLServerException: Argument data type ntext is invalid for argument 1 of lower function.

Here is a sample stack trace generated when logging into IER 5.1.2:


2014-08-07T14:34:38.336 6B120D78 ENG FNRCD0009E - ERROR method name: throwEngineException principal name: CEAdmin Global Transaction: false User Transaction: false Exception Info: The database access failed with the following error: ErrorCode 8,116, Message 'Argument data type ntext is invalid for argument 1 of lower function.' ObjectStore: "CEOS1", SQL: ...
at com.filenet.engine.dbpersist.DBMSSQLContext.throwEngineException(DBMSSQLContext.java:339)
at com.filenet.engine.dbpersist.DBExecutionElement.execute(DBExecutionElement.java:296)
at com.filenet.engine.dbpersist.DBExecutionContext.getNextResult(DBExecutionContext.java:106)
at com.filenet.engine.dbpersist.DBStatementBase.execute(DBStatementBase.java:273)
at com.filenet.engine.retrieve.AdHocClassRetriever.executeSQLStatement(AdHocClassRetriever.java:3369)
at com.filenet.engine.retrieve.AdHocClassRetriever.getSearchResponse(AdHocClassRetriever.java:1358)
at com.filenet.engine.retrieve.AdHocClassRetriever.doSearchImpl(AdHocClassRetriever.java:1318)
at com.filenet.engine.retrieve.AdHocClassRetriever.doSearchPage(AdHocClassRetriever.java:1171)
at com.filenet.engine.retrieve.AdHocClassRetriever.doSearch(AdHocClassRetriever.java:1078)
at com.filenet.engine.retrieve.AdHocClassRetriever.executeSearch(AdHocClassRetriever.java:487)
at com.filenet.engine.jca.impl.RequestBrokerImpl.executeSearch(RequestBrokerImpl.java:926)
at com.filenet.engine.jca.impl.RequestBrokerImpl.executeSearch(RequestBrokerImpl.java:849)
at com.filenet.engine.ejb.EngineCoreBean._executeSearch(EngineCoreBean.java:318)
at com.filenet.engine.ejb.EngineCoreBean.executeSearch(EngineCoreBean.java:286)
at com.filenet.engine.ejb.EJSLocalStatelessEngineCore_22877cb1.executeSearch(Unknown Source)
at com.filenet.engine.ejb.EngineBean.executeSearch(EngineBean.java:532)
at com.filenet.apiimpl.transport.ejbstubs.EJSRemoteStatelessEngine_2e64c374.executeSearch(Unknown Source)
at com.filenet.apiimpl.transport.ejbstubs._EJSRemoteStatelessEngine_2e64c374_Tie.executeSearch__com_filenet_apiimpl_transport_SearchRequest__com_filenet_apiimpl_transport_ClientCallContext(_EJSRemoteStatelessEngine_2e64c374_Tie.java:266)
at com.filenet.apiimpl.transport.ejbstubs._EJSRemoteStatelessEngine_2e64c374_Tie._invoke(_EJSRemoteStatelessEngine_2e64c374_Tie.java:118)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:669)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:523)
at com.ibm.rmi.iiop.ORB.process(ORB.java:523)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1575)
at com.ibm.rmi.iiop.Connection.doRequestWork(Connection.java:2992)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2875)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:64)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:118)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1783)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Argument data type ntext is invalid for argument 1 of lower function.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:322)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecute(WSJdbcPreparedStatement.java:956)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.execute(WSJdbcPreparedStatement.java:623)
at com.filenet.engine.dbpersist.DBExecutionElement.execute(DBExecutionElement.java:240)
... 26 more

Cause

The SQL function LOWER() cannot be used in conjunction with a case-insensitive database collation (e.g. SQL_Latin1_General_CP1_CI_AS).

Diagnosing The Problem

1. Check p8_server_error.log for error stack trace.

2. Determine if the objectstore's database is using a case-insensitive collation

3. Determine whether FCIS is enabled

Resolving The Problem

Disable FCIS. FCIS is not necessary when the database is using a case-insensitive collation.

To disable FCIS:



1. Access the Query tab in the administration console:
- In the domain navigation pane, click the object store.
- In the details pane, click the Query tab.
2. Select the Force Case Insensitive Search check box.
3. Save your changes.
[{"Product":{"code":"SSNW2F","label":"FileNet P8 Platform"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Content Engine","Platform":[{"code":"PF033","label":"Windows"},{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"5.2;5.1;5.0;4.5","Edition":"All Editions","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

More support for:
FileNet P8 Platform

Software version:
5.2, 5.1, 5.0, 4.5

Operating system(s):
Windows, AIX, HP-UX, Linux, Solaris

Document number:
247827

Modified date:
17 June 2018

UID

swg21681841