Sunday, February 25, 2007

MV from single byte to multibyte database, Part II

I think I have found a bug in 10.2.0.3.
- I will try to describe this as short as I can.

I used CAST() to force data from an 8i database into a format that I preferred.

The first FAST refresh was ok, as the mv log was empty, but when data arrived, it failed, as the 8i database could not handle/understand the CAST function.

Strangely, it worked, if there were CLOB's being replicated too.

I traced the two situations, and saw that it in both cases first tries to select CAST()... from ... @remoteDB.

But in the succesfull (CLOB) case, it then does
SELECT * from mlog$_mytable@remoteDB
SELECT * from mytable@remoteDB
SELECT * from mlog$_mytable@remoteDB
SELECT * from mytable@remoteDB (and now MANY waits)
UPDATE localTable...
UPDATE localTable...
....

So it seems that the introduction of the CLOB column somehow enables an exception handling, that causes the refresh to use another approach instead of failing.

We were so lucky, that in the case with the MV without a CLOB, the master table had a CLOB, so when we added this to the MV, everything was fine.

Strange.

No comments: