Troubleshooting
Problem
Attempts to increase a property's max string length on a docclass in FileNet Content Platform Engine's (CPE) Administrative Console for Content Engine (ACCE) fails: The operation violates a constraint of the implementation. ORA-30556: either functional or bitmap join index is defined on the column to be modified
Symptom
From p8_server_trace.log:
2018-01-30T14:44:08.462 2F14BE26 EJB FNRCE0015D - DEBUG <executeChangesResponse type="EngineRuntimeException" elapsed="1870" clientVersion="511" clientId="2f14be26:WebContainer : 1" rid="1">\ncom.filenet.api.exception.EngineRuntimeException: FNRCE0015E: E_CONSTRAINT_VIOLATED: The operation violates a constraint of the implementation. ObjectStore: "Prod_OS2", SQL: ""ALTER TABLE P8_CPE_Prod.DocVersion MODIFY (u89_tracking_number varchar2(36) ) "" failedBatchItem=0\n at com.filenet.engine.dbpersist.DBOracleContext.throwEngineException(DBOracleContext.java:384)\n at com.filenet.engine.dbpersist.DBExecutionElement.execute(DBExecutionElement.java:307)\n at com.filenet.engine.dbpersist.DBExecutionContext.getNextResult(DBExecutionContext.java:106)\n at com.filenet.engine.dbpersist.DBStatementList.executeStatements(DBStatementList.java:161)\n at com.filenet.engine.dbpersist.DBStatementList.getNextResult(DBStatementList.java:601)\n at com.filenet.engine.dbpersist.DBStatementAlter.process(DBStatementAlter.java:997)\n at com.filenet.engine.dbpersist.DBStatementAlter.process(DBStatementAlter.java:941)\n at com.filenet.engine.persist.PropertyDefinitionPersister.resizeColumn(PropertyDefinitionPersister.java:2508)\n at com.filenet.engine.persist.PropertyDefinitionPersister.updateColumn(PropertyDefinitionPersister.java:2609)\n at com.filenet.engine.persist.PropertyDefinitionPersister.preExecuteChange(PropertyDefinitionPersister.java:185)\n at com.filenet.engine.persist.DependentPersister.applyChanges(DependentPersister.java:331)\n at com.filenet.engine.persist.DependentPersister.preChangeDependentList(DependentPersister.java:124)\n at com.filenet.engine.persist.ClassDefinitionPersister.preExecuteChange(ClassDefinitionPersister.java:481)\n at com.filenet.engine.persist.IndependentPersister.executeChangeWork(IndependentPersister.java:499)\n at com.filenet.engine.persist.IndependentPersister.executeChange(IndependentPersister.java:333)\n at com.filenet.engine.persist.SubscribablePersister.executeChange(SubscribablePersister.java:177)\n at com.filenet.engine.jca.impl.RequestBrokerImpl.executeChanges(RequestBrokerImpl.java:1487)\n at com.filenet.engine.jca.impl.RequestBrokerImpl.executeChanges(RequestBrokerImpl.java:1345)\n at com.filenet.engine.ejb.EngineCoreBean._executeChanges(EngineCoreBean.java:619)\n at com.filenet.engine.ejb.EngineCoreBean.executeChanges(EngineCoreBean.java:586)\n at com.filenet.engine.ejb.EJSLocalStatelessEngineCore_22877cb1.executeChanges(Unknown Source)\n at com.filenet.engine.ejb.EngineBean.executeChanges(EngineBean.java:913)\n at com.filenet.apiimpl.transport.ejbstubs.EJSRemoteStatelessEngine_2e64c374.executeChanges(Unknown Source)\n at com.filenet.apiimpl.transport.ejbstubs._Engine_Stub.executeChanges(Unknown Source)\n at com.filenet.apiimpl.transport.ejb.EJBSession$EJBImpl._executeChanges(EJBSession.java:861)\n at com.filenet.apiimpl.transport.ejb.EJBSession$EJBImpl.run(EJBSession.java:550)\n
<shortened for brevity...>
com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)\n at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)\nCaused by: java.sql.SQLException: ORA-30556: either functional or bitmap join index is defined on the column to be modified\n\n at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)\n at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)\n at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)\n at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)\n at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)\n at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)\n at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)\n at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044)\n at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)\n at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)\n at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3685)\n at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1376)\n at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecute(WSJdbcPreparedStatement.java:958)\n at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.execute(WSJdbcPreparedStatement.java:625)\n at com.filenet.engine.dbpersist.DBExecutionElement.execute(DBExecutionElement.java:251)\n ... 144 more
Cause
Oracle constraint preventing columns with functional indexes from being modified is being violated.
Environment
CPE with Oracle databases
Diagnosing The Problem
Enabled CPE trace logging for Database, EJB, Engine, and Error, and reproducing the E_CONSTRAINT_VIOLATED error to capture the error above in the p8_server_trace.log
Resolving The Problem
Drop the functional index, modify the property and recreate the index using the steps below. Note: Anytime you take direct action on the database, it's good to insure you have a backup. The actions below are best attempted when there is no activity on the object store's database:
- If your DBA created the index, work with your DBA to capture how the index was created on the user created column you're trying to extend (uNN_column_name from the error above) If you created the index via ACCE, you can take a screen shot of the table definition of the index
- ACCE> Data Design> Classes> Document> YourClass> Actions tab> Open Table Definition> Indexes tab
- Work with your DBA to drop the index on the property you're trying to modify or remove it in ACCE
- From where you left off on the Indexes tab, check the box next to the index
- Choose Remove
- With the index dropped, from ACCE, extend the Max String Length as you were attempting when you received the error above. With the functional index removed, this should complete with no issues.
- Work with your DBA or got back to the Table Definition to recreate the functional index exactly as it was created previously.
Related Information
Was this topic helpful?
Document Information
Modified date:
17 June 2018
UID
swg22013486