Hello everyone, I’ve got a Domino 8.5 running on Win 2003 Srv,
DB2 Enterprise 9.1.2 and a database which is DB2 enabled.
When I manualy update the value of any field directly in DB2 (in the Control Center for example) this new value shows up in DB2 Table, shows up in the query view but DOES NOT show up in the field.
I mean: opening the notes document property, in the client, and checking the value of the updated field, the value isn’t changed, still the old one!!
I noticed this while setting up a Trigger on DB2.
Is this a known bug ?
This issue can’t make me use the document because obviously it is NOT updated.
Hello Patrick,well I think the SQL shouldn’t really matter because i get the same behaviour updating the value directly in control center (opening the table and changing the value)…
anyway, this is the code of the basic trigger:
CREATE TRIGGER GCMANAG2.CHKDISPO AFTER UPDATE OF DISPONIBILITA ON GCMANAG2.AARTICOLO_T FOR EACH ROW MODE DB2SQL uPDATE GCMANAG2.AARTICOLO_T SET ROTTI = ‘11’
The problem is that you are accessing the AARTICOLO_T table instead of the AARTICOLO table.
You should NEVER access the _T version of the data directly. Always use the to access the data.
When you created the DAV named AARTICOLO, it created several things in DB2. One of them is the AARTICOLO_T table, which is where a copy of the data exposed by a DAV resides, and this table has very strict permissions on it to prevent accessing it directly.
The AARTICOLO was also created, this is actually a DB2 view based on AARTICOLO_T, but it has triggers on it that invoke Domino routines to handle updates properly. Those triggers check Domino ACL permissions, and make sure that the corresponding Domino data is updated as well as the exported copy of the data in the AARTICOLO_T table.
By accessing the AARTICOLO_T table, you bypassed the triggers in AARTICOLO that update the data in the document. That explains why you have a discrepancy.
You now have different data in the NSF and in the DAV tables because you accessed the AARTICOLO_T table directly. To correct this, you need to use Domino Designer, bring up the DAV definition, and then hit ‘delete in DB2’ and then ‘create in DB2’ and ‘Populate in DB2’. That will re-export the data and get things back in sync again.
Thanks for your support Patrick, i didn’t have any idea about this, i’ll try soon!
I actually started to use the table *_T because I still get an error opening the view AARTICOLO:
Com.ibm.db.DataException: A database manager error occurred.: [IBM][CLI Driver][DB2/NT] SQL0443N Routine “ISREADER4” (specific name “”) has returned an error SQLSTATE with diagnostic text “14512 : No matching Notes user found for DB2 user and anony”. SQLSTATE=04004
The error you are getting is because Domino is not allowing the DB2 userid to access the DAV data. You’re failing Domino’s ACL check.
Some choices:
Map the DB2 user to a Domino user that has ACL privleges to the data. Add the DB2 userid to the person doc of the Domino user in the Domino Directory, in the DB2 Account Name field on the Administration tab. When a request originates from DB2 using that DB2 userid, the Domino ACL check will be done using the Domino username.
Tell Domino to allow anonymous access to the data by adding that to the ACL.