DB2 reports ROW instead of ROWID

85 views
Skip to first unread message

sunra...@gmail.com

unread,
Jan 24, 2013, 2:43:33 PM1/24/13
to diffki...@googlegroups.com

I'm attempting to get diffkit working with DB2 9.7

These are the plans/beans that have been defined.

   <bean id="lhsDBConnectionInfo" class="org.diffkit.db.DKDBConnectionInfo">
      <constructor-arg index="0" value="db2" />
      <constructor-arg index="1" value="DB2" />
      <constructor-arg index="2" value="ACACHIA" />
      <constructor-arg index="3" value="cbsctr701" />
      <constructor-arg index="4" value="50000" />
      <constructor-arg index="5" value="acachia" />
      <constructor-arg index="6" value="Kills99.9%" />
   </bean>

    <bean id="rhsDBConnectionInfo" class="org.diffkit.db.DKDBConnectionInfo">
        <constructor-arg index="0" value="db2" />
        <constructor-arg index="1" value="DB2" />
        <constructor-arg index="2" value="DEV1" />
        <constructor-arg index="3" value="cbsctr701" />
        <constructor-arg index="4" value="50000" />
        <constructor-arg index="5" value="acachia" />
        <constructor-arg index="6" value="Kills99.9%" />
    </bean>

    <bean id="plan" class="org.diffkit.diff.conf.DKMagicPlan">
        <property name="lhsDBTableName" value="SCHEMA1.TABLE_NAME1" />
        <property name="rhsDBTableName" value="SCHEMA2.TABLE_NAME1" />
        <property name="sinkFilePath" value="./TABLE_NAME1.sink.diff" />
        <property name="lhsDBConnectionInfo" ref="lhsDBConnectionInfo" />
        <property name="rhsDBConnectionInfo" ref="rhsDBConnectionInfo" />
    </bean>

It seems that DB2 is reporting metadata as ROW instead of ROWID.  I thought it might be a bug in the driver so I upgraded the driver from
IBM DB2 JDBC Universal Driver Architecture 3.3.54
to
IBM DB2 JDBC Universal Driver Architecture 3.64.106

tableComparison->org.diffkit.diff.conf.DKAutomaticTableComparison@127627
ERROR[14:27:50.410]{main}(DKDBSource.open:152)-null
java.lang.IllegalArgumentException: unrecognized qualifiedTypeName->_DB2_ROW
    at org.diffkit.db.DKDBType.getType(DKDBType.java:354) [bin/:na]
    at org.diffkit.db.DKDBTypeInfoDataAccess.constructTypeInfo(DKDBTypeInfoDataAccess.java:167) [bin/:na]
    at org.diffkit.db.DKDBTypeInfoDataAccess.ensureMaps(DKDBTypeInfoDataAccess.java:150) [bin/:na]
    at org.diffkit.db.DKDBTypeInfoDataAccess.getTypeToTypeInfoMap(DKDBTypeInfoDataAccess.java:106) [bin/:na]
    at org.diffkit.db.DKDBTypeInfoDataAccess.getTypeInfo(DKDBTypeInfoDataAccess.java:67) [bin/:na]
    at org.diffkit.db.DKDatabase.getConcreteTypeInfo(DKDatabase.java:113) [bin/:na]
    at org.diffkit.db.DKDBTable.getReadTypes(DKDBTable.java:238) [bin/:na]
    at org.diffkit.diff.sns.DKDBSource.open(DKDBSource.java:140) [bin/:na]
    at org.diffkit.diff.engine.DKContext.open(DKContext.java:90) [bin/:na]
    at org.diffkit.diff.engine.DKDiffEngine.diff(DKDiffEngine.java:62) [bin/:na]
    at org.diffkit.diff.engine.DKDiffEngine.diff(DKDiffEngine.java:55) [bin/:na]
    at org.diffkit.diff.conf.DKApplication.doDiff(DKApplication.java:196) [bin/:na]
    at org.diffkit.diff.conf.DKApplication.runPlan(DKApplication.java:177) [bin/:na]
    at org.diffkit.diff.conf.DKApplication.main(DKApplication.java:115) [bin/:na]
ERROR[14:27:50.410]{main}(DKApplication.main:135)-null
java.lang.RuntimeException: java.lang.IllegalArgumentException: unrecognized qualifiedTypeName->_DB2_ROW
    at org.diffkit.diff.sns.DKDBSource.open(DKDBSource.java:156) [bin/:na]
    at org.diffkit.diff.engine.DKContext.open(DKContext.java:90) [bin/:na]
    at org.diffkit.diff.engine.DKDiffEngine.diff(DKDiffEngine.java:62) [bin/:na]
    at org.diffkit.diff.engine.DKDiffEngine.diff(DKDiffEngine.java:55) [bin/:na]
    at org.diffkit.diff.conf.DKApplication.doDiff(DKApplication.java:196) [bin/:na]
    at org.diffkit.diff.conf.DKApplication.runPlan(DKApplication.java:177) [bin/:na]
    at org.diffkit.diff.conf.DKApplication.main(DKApplication.java:115) [bin/:na]
Caused by: java.lang.IllegalArgumentException: unrecognized qualifiedTypeName->_DB2_ROW
    at org.diffkit.db.DKDBType.getType(DKDBType.java:354) [bin/:na]
    at org.diffkit.db.DKDBTypeInfoDataAccess.constructTypeInfo(DKDBTypeInfoDataAccess.java:167) [bin/:na]
    at org.diffkit.db.DKDBTypeInfoDataAccess.ensureMaps(DKDBTypeInfoDataAccess.java:150) [bin/:na]
    at org.diffkit.db.DKDBTypeInfoDataAccess.getTypeToTypeInfoMap(DKDBTypeInfoDataAccess.java:106) [bin/:na]
    at org.diffkit.db.DKDBTypeInfoDataAccess.getTypeInfo(DKDBTypeInfoDataAccess.java:67) [bin/:na]
    at org.diffkit.db.DKDatabase.getConcreteTypeInfo(DKDatabase.java:113) [bin/:na]
    at org.diffkit.db.DKDBTable.getReadTypes(DKDBTable.java:238) [bin/:na]
    at org.diffkit.diff.sns.DKDBSource.open(DKDBSource.java:140) [bin/:na]
    ... 6 common frames omitted

The upgrade to the driver didn't work.  I naively added DKDBType._DB2_ROW is that a safe change? 

Shan

unread,
May 4, 2015, 10:56:40 PM5/4/15
to diffki...@googlegroups.com
Hi,

did you get this resolved? if so, please share the fix.

Thanks,
Shan
Reply all
Reply to author
Forward
0 new messages