0

Is it possible to update the rowid limit . On registering a table for listening in OCN,I am getting rowid when single or multiple INSERT,UPDATE OR DELETE is performed.Response or result as below

Registration ID         : 336
Notification version    : 1
Event type              : OBJCHANGE
Database name           : tdb
Table Change Description (length=1)
    operation=[DELETE], tableName=ACCOUNT_COPY, objectNumber=205803
    Row Change Description (length=1):
      ROW:  operation=DELETE, ROWID=AAAyPrAAFAAAYp/AAE

But when the number of INSERT,UPDATE OR DELETE rows are more than 100. I am not getting the rowids ,getting response as below.

Registration ID         : 336
Notification version    : 1
Event type              : OBJCHANGE
Database name           : tdb
Table Change Description (length=1)
    operation=[ALL_ROWS, INSERT], tableName=ACCOUNT

1 Answers1

0

This is happening by design. The server sends a ALL_ROWS event when many inserts happen in a short amount of time to inform the client that the table cache should be invalidated. It would be too expensive on the server to send fine grained notification events in that case.

Jean de Lavarene
  • 3,461
  • 1
  • 20
  • 28
  • Thanks for the reply.I have understood this behavior of ALL_ROWS notification for bulk updates in short period of time. But is there a way to change the config and get all the rowids.As per oracle doc Possible reasons for a FULL-TABLE-NOTIFICATION are: Total shared memory consumption due to ROWIDs exceeds 1% of the dynamic shared pool size. Too many rows were changed within a transaction (upper limit is approx 80). Total length of the logical ROWIDs of modified rows for an IOT is too large (the upper limit is approx 1800 bytes). Can we upgrade these limits ?? – satish sidnakoppa Mar 23 '18 at 05:26
  • You can push the limits but it will still be limited. If you're building a notification mechanism (not a data cache) then you should look at Advanced Queueing (AQ). – Jean de Lavarene Mar 23 '18 at 07:08