I'm trying to process a "remove" DSRequest from the client that has criteria which will remove multiple records in the table. I've set allowMultiUpdate="true" on the operationBinding and the remove works fine. But there seems to be a cacheSynch fetch that happens after the remove and since the remove didn't specify the primary keys as criteria it is throwing an error when looking for them. Here is the partial error stack.
I'm not sure I understand the purpose of the cacheSynch fetch on a remove request. How can I avoid the error?
Code:
=== 2010-09-18 21:26:44,394 [l0-7] INFO SQLDriver - [builtinApplication.member(F002), builtinApplication.null] Executing SQL update on 'iptsfill': DELETE FROM IPPOITM_F002 AS IPPOITM WHERE ((IPPOITM.ICLS = 1 AND IPPOITM.ICLS IS NOT NULL) AND (IPPOITM.IVEN = 1 AND IPPOITM.IVEN IS NOT NULL) AND (IPPOITM.ISTY = 1 AND IPPOITM.ISTY IS NOT NULL) AND (CASE WHEN IPPOITM.IPPK='Y' THEN 'Y' ELSE 'N' END <> 'Y' OR CASE WHEN IPPOITM.IPPK='Y' THEN 'Y' ELSE 'N' END IS NULL) AND (IPPOITM.IONO = '2222222222' AND IPPOITM.IONO IS NOT NULL) AND (IPPOITM.IASQ = 1 AND IPPOITM.IASQ IS NOT NULL)) === 2010-09-18 21:26:45,091 [l0-7] DEBUG SQLDataSource - [builtinApplication.member(F002), builtinApplication.null] remove operation affected 2 rows === 2010-09-18 21:26:45,091 [l0-7] DEBUG DB2Driver - [builtinApplication.member(F002), builtinApplication.null] fetchLastRow data - primaryKeysPresent: {}sequencesNotPresent: [ISEQ, IONO] === 2010-09-18 21:26:45,092 [l0-7] WARN RequestContext - dsRequest.execute() failed: java.lang.Exception: DB2 can't handle more than one auto_increment primary_key at com.isomorphic.sql.DB2Driver.fetchLastPrimaryKeys(DB2Driver.java:108)