We are having a strange datadeply problem using version 5.6 of DataDeploy. This was working ok with version 5.5.2. Below is the deployment configuration file:
<deployment name="uzuntuler">
<source>
<!-- Pull data tuples from TeamSite Extended Attributes -->
<teamsite-extended-attributes options="full,wide" area="/default/main/DEV_KURUMSAL/STAGING">
<path name="uzuntuler" visit-directory="deep"/>
</teamsite-extended-attributes>
</source>
<substitution>
<field name="path"
match="\\"
replace="/"
global="yes" />
</substitution>
<destinations>
<database use="mis_db" update-type="standalone" state-field="state">
<dbschema>
<group name="metadata_root" table="TEST_METADATA" root-group="yes">
<attrmap>
<column name="MIS_MET_DOK_PATH" data-type="CHAR(254)" value-from-field="path" allows-null="no"/>
<column name="MIS_MET_PORTLETAD" data-type="CHAR(40)" value-from-field="TeamSite/Metadata/System/PortletName" allows-null="no" is-url="no"/>
<column name="IW_STATE" data-type="CHAR(20)" value-from-field="state" allows-null="no"/>
<column name="MIS_MET_DOK_DIR" data-type="CHAR(254)" value-from-field="TeamSite/Metadata/System/DocumentPath" allows-null="no" is-url="no"/>
<column name="MIS_MET_HAZIRLAYAN" data-type="INTEGER" value-from-field="TeamSite/Metadata/System/Author" allows-null="no" is-url="no"/>
<column name="MIS_MET_KUL_GRUP" data-type="CHAR(10)" value-from-field="TeamSite/Metadata/System/UserGroup" allows-null="no" is-url="no"/>
<column name="MIS_MET_EXP_TARIH" data-type="CHAR(10)" value-from-field="TeamSite/Metadata/Yayýndan Kaldýrýlma Tarihi" allows-null="no" is-url="no"/>
<column name="MIS_MET_YAYIN_TS" data-type="TIMESTAMP" value-from-field="TeamSite/Metadata/System/SubmitTimeStamp" allows-null="no" is-url="no"/>
<column name="MIS_MET_TIP" data-type="SMALLINT" value-from-field="TeamSite/Metadata/Tip" allows-null="yes" is-url="no"/>
<column name="MIS_MET_ANAHTR_KEL" data-type="VARCHAR(150)" value-from-field="TeamSite/Metadata/Anahtar Kelimeler" allows-null="no" is-url="no"/>
<column name="MIS_MET_DOK_BASLIK" data-type="VARCHAR(200)" value-from-field="TeamSite/Metadata/Baþlýk" allows-null="no" is-url="no"/>
<column name="MIS_MET_DOK_OZET" data-type="VARCHAR(700)" value-from-field="TeamSite/Metadata/Özet" allows-null="yes" is-url="no"/>
</attrmap>
<keys>
<primary-key>
<key-column name="MIS_MET_DOK_PATH"/>
</primary-key>
</keys>
</group>
</dbschema>
</database>
</destinations>
</deployment>
When I run iwdd.ipl from the command line for the first time; there is no problem; the table is created and populated with data. However at the second and consequent executions of iwdd.ipl; I get an SQL exception. Below is part from the iwdd.ipl output and error message:
TUPLE={TeamSite/Metadata/╓zet=÷zet, IWOV_PROC_FLAG=true, state=Original, TeamSite/Metadata/Ba?l?k=ba?l?k2, Tea
mSite/Metadata/System/DocumentPath=/uzuntuler/, TeamSite/Metadata/Yay?ndan Kald?r?lma Tarihi=2003-12-12, TeamS
ite/Metadata/System/SubmitTimeStamp=2003-09-02-18.23.06.000000, TeamSite/Metadata/System/Author=1, TeamSite/Me
tadata/System/PortletName=uzuntuler, TeamSite/Metadata/Anahtar Kelimeler=anahtar, TeamSite/Metadata/System/Use
rGroup=10000, path=uzuntuler/BBB001TASRAP20030814.doc}
RowsExistForPath

ELECT COUNT(*) FROM TEST_METADATA WHERE MIS_MET_DOK_PATH = ?
Performing delete+insert
TTableSchemaHelper not found in cache for [TEST_METADATA]. Creating new.
SELECT NAME, COLTYPE, LENGTH, NULLS FROM SYSIBM.SYSCOLUMNS WHERE TBNAME = ?
SELECT

ELECT MIS_MET_PORTLETAD,IW_STATE,MIS_MET_DOK_DIR,MIS_MET_HAZIRLAYAN,MIS_MET_KUL_GRUP,MIS_MET_EXP_TARIH
,MIS_MET_YAYIN_TS,MIS_MET_TIP,MIS_MET_ANAHTR_KEL,MIS_MET_DOK_BASLIK,MIS_MET_DOK_OZET,MIS_MET_DOK_PATH FROM TES
T_METADATA WHERE MIS_MET_DOK_PATH = ?
Recurse select: pIndex = 0, value = uzuntuler/BBB001TASRAP20030814.doc
BuildTuples:executeQuery returned valid result set
TTableSchemaHelper object for [TEST_METADATA] found in cache.
BuildTuples:BuildRows returned: true
DeleteForUpdate: skipping root group
TTableSchemaHelper object for [TEST_METADATA] found in cache.
TTableSchemaHelper object for [TEST_METADATA] found in cache.
SelectCurrentRowsUsingPath: SELECT MIS_MET_PORTLETAD,IW_STATE,MIS_MET_DOK_DIR,MIS_MET_HAZIRLAYAN,MIS_MET_KUL_G
RUP,MIS_MET_EXP_TARIH,MIS_MET_YAYIN_TS,MIS_MET_TIP,MIS_MET_ANAHTR_KEL,MIS_MET_DOK_BASLIK,MIS_MET_DOK_OZET,MIS_
MET_DOK_PATH FROM TEST_METADATA WHERE MIS_MET_DOK_PATH = ? ORDER BY MIS_MET_DOK_PATH
SelectCurrentRowsUsingPath: 1 rows selected.
INSERT INTO TEST_METADATA(MIS_MET_DOK_PATH,MIS_MET_PORTLETAD,IW_STATE,MIS_MET_DOK_DIR,MIS_MET_HAZIRLAYAN,MIS_M
ET_KUL_GRUP,MIS_MET_EXP_TARIH,MIS_MET_YAYIN_TS,MIS_MET_TIP,MIS_MET_ANAHTR_KEL,MIS_MET_DOK_BASLIK,MIS_MET_DOK_O
ZET) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
Column: MIS_MET_DOK_PATH, field: path, Index: 1,Converting 'uzuntuler/BBB001TASRAP20030814.doc' to CHAR
Column: MIS_MET_PORTLETAD, field: TeamSite/Metadata/System/PortletName, Index: 2,Converting 'uzuntuler' to CH
AR
Column: IW_STATE, field: state, Index: 3,Converting 'Original' to CHAR
Column: MIS_MET_DOK_DIR, field: TeamSite/Metadata/System/DocumentPath, Index: 4,Converting '/uzuntuler/' to C
HAR
Column: MIS_MET_HAZIRLAYAN, field: TeamSite/Metadata/System/Author, Index: 5,Converting '1' to INTEGER
Column: MIS_MET_KUL_GRUP, field: TeamSite/Metadata/System/UserGroup, Index: 6,Converting '10000' to CHAR
Column: MIS_MET_EXP_TARIH, field: TeamSite/Metadata/Yay?ndan Kald?r?lma Tarihi, Index: 7,Converting '2003-12-1
2' to CHAR
Column: MIS_MET_YAYIN_TS, field: TeamSite/Metadata/System/SubmitTimeStamp, Index: 8,Converting '2003-09-02-18.
23.06.000000' to STRING
Column: MIS_MET_TIP, field: TeamSite/Metadata/Tip, Index: 9,null
Column: MIS_MET_ANAHTR_KEL, field: TeamSite/Metadata/Anahtar Kelimeler, Index: 10,Converting 'anahtar' to VAR
CHAR
Column: MIS_MET_DOK_BASLIK, field: TeamSite/Metadata/Ba?l?k, Index: 11,Converting 'ba?l?k2' to VARCHAR
Column: MIS_MET_DOK_OZET, field: TeamSite/Metadata/╓zet, Index: 12,Converting '÷zet' to VARCHAR
*******************************************************
SQLException occured in TDbSchemaGroupCfg
Exception Message: [IBM][CLI Driver][DB2/6000] SQL0803N One or more values in the INSERT statement, UPDATE st
atement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique cons
traint or unique index identified by "1" constrains table "DMIS.TEST_METADATA" from having duplicate rows for
those columns. SQLSTATE=23505
Vendor Error Code: -803
SQL state: 23505
*******************************************************
Strangely datadeploy tries to insert an existing row a second time when it should actually update it if necessary. Is there a configuration parameter or something similar that I am missing?
Thanx