Kbase P74881: Different clients (i.e., AppServer, GUI, CHUI) retrieve different ROWID values when connecting to Or
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  16/10/2008 |
|
Status: Verified
FACT(s) (Environment):
Progress 9.1D
Oracle DataServer
SYMPTOM(s):
Different clients (i.e., AppServer, GUI, CHUI) retrieve different ROWID values when connecting to Oracle
Client A, (i.e., AppServer) connecting to one schema holder, i.e., oraholder1
Client B, (i.e., CHUI, GUI) connecting to a different schema holder, i.e., oraholder2
ROWID value retrieved by a Client A is different than the ROWID value retrieved Client B.
Multiple schema holders are present
ROWID function is being used
Client A and B are finding a record and passing values back and forth
Can not do manually creation for schema holder after it's been created
CHANGE:
Table/field updates were made to schema holder and to ORACLE
CAUSE:
Bug# 20031103-004
CAUSE:
In better understanding the cause of this issue, you must first understand how the ROWID value is calculated.
The ROWID for Oracle Dataserver has the following format:
0x0214<FFFF><RECID>
where: 0214 is the root for ROWID
<FFFF> is the file number hex representation.
- Take _file._file-number value and converted straight to hexa.
<RECID> is the record number hex represeantion
- Take RECID return converted to string then take each byte and converted to hexa.
This means that each of these components; the root, the file number and the Progress RECID all contribute in generating the ROWID value.
In this case, the file number between the two schema holders became different. Because of this difference (in the file number), when the two clients passed the same record back and forth, the ROWID values did not match thus, the reason for why Client A retrieved a different ROWID value than Client B.
A file number can change when table/field updates are made but not applied to the schema holder in the same order as each other.
FIX:
The bug is fixed in 9.1D08 and 10.0A