Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
DataDeploy updates re removed or deleted replicants
patrickm
We are attempting to deploy a DCR using DataDeploy. Attached are our config and sample DCR.
Upon initial insert records are updated as expected.
A single entry in the abc_section table corresponding to the 'abc' container in the DCR
A single entry in the abc_pricing_table corresponding to the one replicant item 'pricing' in the DCR
Two entries in the abc_schedules table corresponding to the two replicant items 'schedules' in the DCR
The link tables abc_section_documents and abc_document_schedules are also populated.
Updates are also working correctly.
When we attempt to remove a schedule replicant the deployment fails - (although datadeploy reports a success).
The exception is as follows:
DBD: *******************************************************
DBD: SQLException occured in TDbSchemaGroupInfoNode
DBD: Exception Message: ORA-02292: integrity constraint (COMAPP.FK_ABC_DOC_SCHED_DOC_ID) violated - child record found
DBD: Vendor Error Code: 2292
DBD: SQL state: 23000
DBD: *******************************************************
DBD:
DBD: *******STACK TRACE*************
DBD: ERROR:
java.sql.SQLException: ORA-02292: integrity constraint (COMAPP.FK_ABC_DOC_SCHED_DOC_ID) violated - child record found
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
at com.interwoven.dd100.dd.TDbSchemaGroupInfoNode.DoDelete(TDbSchemaGroupInfoNode.java:676)
at com.interwoven.dd100.dd.TDbSchemaGroupInfo.DeleteUsingGroupTree(TDbSchemaGroupInfo.java:431)
at com.interwoven.dd100.dd.TDbSchemaGroupInfo.DoDelete(TDbSchemaGroupInfo.java:204)
at com.interwoven.dd100.dd.TDbSchemaCfg.DeleteUsingPathColumnInRootGroup(TDbSchemaCfg.java:619)
at com.interwoven.dd100.dd.TDbSchemaCfg.Delete(TDbSchemaCfg.java:569)
at com.interwoven.dd100.dd.TDbSchemaAgent.BasicWriteTuple(TDbSchemaAgent.java:450)
at com.interwoven.dd100.dd.TDbSchemaAgent.WriteTuple(TDbSchemaAgent.java:336)
at com.interwoven.dd100.dd.TPredicateEvaluator.WriteTuple(TPredicateEvaluator.java:116)
at com.interwoven.dd100.dd.TTupleSubstitutor.WriteTuple(TTupleSubstitutor.java:113)
at com.interwoven.dd100.dd.TConsumerManager.WriteConsumerInternal(TConsumerManager.java:399)
at com.interwoven.dd100.dd.TConsumerManager.WriteConsumers(TConsumerManager.java:388)
at com.interwoven.dd100.dd.TAgentClient.DoOneTeamSiteSource(TAgentClient.java:1008)
at com.interwoven.dd100.dd.TAgentClient.ProcessOneFileList(TAgentClient.java:609)
at com.interwoven.dd100.dd.TAgentClient.ProcessFileList(TAgentClient.java:566)
at com.interwoven.dd100.dd.TAgentClient.DoTeamSiteSources(TAgentClient.java:511)
at com.interwoven.dd100.dd.TAgentClient.DoOneDeployment(TAgentClient.java:289)
at com.interwoven.dd100.dd.TAgentClient.DoMultiDeployment(TAgentClient.java:206)
at com.interwoven.dd100.dd.TAgentClient.Go(TAgentClient.java:169)
at com.interwoven.dd100.dd.IWDataDeploy.Go(IWDataDeploy.java:582)
at com.interwoven.dd100.dd.IWDataDeploy.run(IWDataDeploy.java:608)
at java.lang.Thread.run(Thread.java:534)
DBD: ERROR:Error occured while trying to delete before update
DBD: -- Failed
We understand that the issue is that datadeploy has left a record in the abc_document_schedules table pertaining to the replicant we removed from the 'schedules' container in out DCR.
We can see that when DataDeploy was removing records from this table it performed the following:
DBD: DELETE: DELETE FROM ABC_DOCUMENT_SCHEDULES WHERE DOCUMENT_ID IN ( ?) AND SCHEDULE_ID IN ( ?)
DBD: DoDelete: pIndex = 0, value = 1039551
DBD: DoDelete: pIndex = 1, value = 1039552
What we would have expected was for DataDeploy to have stored some state information (perhaps in it's IWDELTRACKER table) that would have identified our deleted replicant as having had the the PK value of 1039553 and therefore have included it in the second parameter from the delete sql.
We are running the following command.
"/iw-home/OpenDeployNG/bin/iwodcmd" start dd_noru -inst 15sept4b -k iwdd=all -k database="staging" -k area="/iwmnt/default/main/code/WORKAREA/content" -k filelist="/export/home/test/mytestfilelist"
Find more posts tagged with
Comments
There are no comments yet