Kbase P29664: SDO based on Temp-Table shall not be updated with thin clien
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  7/7/2003 |
|
Status: Unverified
SYMPTOM(s):
Static SDO based on Temp-Table
"This record is locked or has been deleted"
Saving record change
Thin client session involving AppServer
CAUSE:
A Static SDO based on a Temp-table works fine when the SDO is not split since the source Temp-table is available on the client side. However, it cannot work with a split SDO with Stateless Appserver since the source Temp-Table is maintained only at initialization in order populate the rows to the client. Once it is done, the temp-table is deleted (or just emptied) then the ROWID's stored in RowObject.RowIdent are no longer reliable since they were ROWID's of a Temp-table. Even if the temp-table is repopulated at each call on AppServer, there is no chance to recreate the temp-table records with the same ROWID's as per previous time.
FIX:
Use bound connection with AppServer (Not suitable with Stateless)
or
Switch Autocommit to false in order to keep all the changes in one single commit, then collect and handle by yourself the changes in RowObject and RowObjUpd in an override of submitCommit. You shall also erase the changes in RowObject and RowObjUpd before doing the RUN SUPER