"java.sql.BatchUpdateException: ORA-02291: integrity constraint" Error Generated When Trying to Add the RIQ (Rate In-query) Configuration Preference. (Doc ID 1173825.1)

Last updated on MARCH 08, 2017

Applies to:

Oracle Transportation Management - Version 6.1.0 to 6.1.3 [Release 6.1]
Information in this document applies to any platform.

Symptoms

On OTM version 6.1.0 when attempting to configure the RIQ logic the following error is encountered:
the following error occurs.

ERROR
-----------------------
Error

insert into user_preference_d (user_preference_gid,preference_gid,user_preference_value,domain_name) values (?,?,?,?) at [LEE.3-1967245591, RIQ_UI_CONFIGURATION_PREFERENCE, LEE.3-1967245591, LEE]

Cannot update the USER_PREFERENCE_D record. [PREFERENCE_GID] must reference a valid PREFERENCE record.

java.sql.BatchUpdateException: ORA-02291: integrity constraint (GLOGOWNER.FK_UPD_PREFERENCE_GID) violated - parent key not found



Stack Trace
insert into user_preference_d (user_preference_gid,preference_gid,user_preference_value,domain_name) values (?,?,?,?) at [LEE.3-1967245591, RIQ_UI_CONFIGURATION_PREFERENCE, LEE.3-1967245591, LEE]
Cannot update the USER_PREFERENCE_D record. [PREFERENCE_GID] must reference a valid PREFERENCE record.
java.sql.BatchUpdateException: ORA-02291: integrity constraint (GLOGOWNER.FK_UPD_PREFERENCE_GID) violated - parent key not found


java.sql.BatchUpdateException: ORA-02291: integrity constraint (GLOGOWNER.FK_UPD_PREFERENCE_GID) violated - parent key not found

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:629)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9447)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:211)
at weblogic.jdbc.wrapper.PreparedStatement.executeBatch(PreparedStatement.java:191)
at glog.util.jdbc.noserver.SqlPreparedStatement.executeBatch(SqlPreparedStatement.java:97)
at glog.util.jdbc.SqlUpdate.processBatch(SqlUpdate.java:142)
at glog.util.jdbc.SqlUpdate.resetArguments(SqlUpdate.java:238)
at glog.util.jdbc.SqlUpdate.resetArguments(SqlUpdate.java:161)
at glog.util.jdbc.SqlUpdate.execute(SqlUpdate.java:90)
at glog.util.beandata.BeanDataInserter.insertDBBatch(BeanDataInserter.java:358)
at glog.util.beandata.BeanDataInserter.insertDB(BeanDataInserter.java:302)
at glog.util.beandata.BeanDataInserter.insert(BeanDataInserter.java:197)
at glog.util.beandata.BeanDataInserter.insert(BeanDataInserter.java:232)
at glog.util.beandata.BeanDataInserter.insert(BeanDataInserter.java:171)
at glog.util.persistence.BeanDataPersistenceExecutor.insertPerformed(BeanDataPersistenceExecutor.java:97)
at glog.util.persistence.PersistenceExecutor.persistencePerformed(PersistenceExecutor.java:91)
at glog.util.persistence.WaterFallInsertion.performedInsertion(WaterFallInsertion.java:264)
at glog.util.persistence.WaterFallInsertion.persist(WaterFallInsertion.java:106)
at glog.util.persistence.WaterFallInsertion.persist(WaterFallInsertion.java:137)
at glog.util.persistence.WaterFallInsertion.persist(WaterFallInsertion.java:49)
at glog.util.persistence.PersistenceManager.execute(PersistenceManager.java:122)
at glog.util.genericcontainer.GenericContainerUtilSessionBean.store(GenericContainerUtilSessionBean.java:37)
at glog.util.genericcontainer.GenericContainerUtilSessionServerSideEJBWrapper.store(GenericContainerUtilSessionServerSideEJBWrapper.java:46)
at glog.util.genericcontainer.GenericContainerUtilSessionBean.compareAndStore(GenericContainerUtilSessionBean.java:123)
at glog.util.genericcontainer.GenericContainerUtilSessionServerSideEJBWrapper.compareAndStore(GenericContainerUtilSessionServerSideEJBWrapper.java:268)
at glog.util.genericcontainer.GenericContainerUtilSessionServerSideEJBWrapper_6hrtm7_EOImpl.compareAndStore(GenericContainerUtilSessionServerSideEJBWrapper_6hrtm7_EOImpl.java:718)
at glog.webserver.update.AbstractUpdate.callGenericContainer(AbstractUpdate.java:359)
at glog.webserver.update.GenericContainerXMLUpdate.process(GenericContainerXMLUpdate.java:108)
at glog.server.xmlupdate.XMLUpdateSessionBean.updateAndTrack(XMLUpdateSessionBean.java:244)
at glog.server.xmlupdate.XMLUpdateSessionServerSideEJBWrapper.updateAndTrack(XMLUpdateSessionServerSideEJBWrapper.java:344)
at glog.server.xmlupdate.XMLUpdateSessionHome_x72wrp_EOImpl.updateAndTrack(XMLUpdateSessionHome_x72wrp_EOImpl.java:285)
at glog.server.xmlupdate.XMLUpdateSessionHome_x72wrp_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)


STEPS
-----------------------
The issue can be reproduced at will with the following steps:

1 - Log onto an OTM 6.1 system.

2 - Navigate to: Shipment Management > Power Data > General > Logic Configuration.

3 - Clicked NEW and create the following:
ID: As needed
Type: RATE INQUIRY UI CONFIGURATION
RIQ UI ACCESSORIAL GRID: Hide
RIQ UI ADDITIONAL CONSTRAINTS GRID: Hide
RIQ ADDITIONAL STOPS GRID: Hide
RIQ UI DESTINATION LOCATION FILTER: City/Postal Code
RIQ UI EQUIPMENT GROUP GRID: Hide
RIQ UI SOURCE LOCATION FILTER: City/Postal Code

4 - Navigate to: configuration and Administration > Preferences > User Preferences.

5 - Click NEW and enter the following:
ID: As needed
Domain Name: As needed
Name: RIQ UI Configuration Preference
Value: As created above.

6 - Click save and then Finished.

7 - The error message is displayed:

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms