Post stopped due to ORA-00904 on a target table that was already in replication and was by mistake added to be a target table for yet another source table when the config file was modified. The error was:
07/30/07 21:41 Notice: Post will not open more than 990 cursors (OPEN_CURSORS - 10). [sp_opst (for o.LAX1TDB1-o.LAX0TDB1 queue EXCHANGE)/27545]
07/30/07 21:41 Notice: ORA-00904: "COLUMN_NAME": invalid identifier. [sp_opst(osp)/27545]
07/30/07 21:41 Error: Unexpected Oracle error: ORA-00904: "COLUMN_NAME": invalid identifier. (object name: "OWNER"."TABLENAME") [sp_opst (for o.LAX1TDB1-o.LAX0TDB1 queue EXCHANGE)/27545]
07/30/07 21:41 Process exited sp_opst (for o.LAX1TDB1-o.LAX0TDB1 queue EXCHANGE) [pid = 27545] - exit(1)
07/30/07 21:46 Notice: Oracle env - LAX0TDB1:/tdb/local/orac
Error in modifying config file caused source table to replicate to a wrong target table
First of all the entry in config file needs to be modified so that henceforth the source table can replicate to the correct target table. As for the messages which are already in the queue and are causing ORA-00904, you can choose one of the two options:
1. Ignore the Oracle error by configuring the oramsglist file. See solution #6529 which is reproduced here or check the Reference Guide for details on the parameter SP_OPO_CONT_ON_ERR:
The error can be ignored by configuring the oramsglist file and the parameter SP_OPO_CONT_ON_ERR. The way to do it is:
1. With Post stopped, go to vardir/data and edit ogamsglist file.
2. Increment the number (2 digit number) on the first line by one.
3. Add a new line at end of the oramsglist by inserting the number 904 which corresponds to ORA-00904.
4. Save the file and exit
5. Go to sp_ctl and activate this parameter to tell Post to ignore the error.
sp_ctrl> set param SP_OPO_CONT_ON_ERR 1
sp_ctrl> activate param
sp_crl> start post
When you by-pass this error, undo the changes done above, namely decrement the oramsglist error count, remove the error, save file and set the SP_OPO_CONT_ON_ERR back to 0 similarly as above.
2. Call Support so that they can read the queue and get rid of the offending transaction.