The compare fails with the desvr log and corresponding declt entries as shown below:
a. desvr log:
.
.
.
121: Warning: Call to read 8 bytes (de_sock_read,L810), unexpectedly returned 0 bytes.
121: Process writing may have exited with an error.
121: The warnings may due to either "compare cancel"command or network errors.
121: Error 1 calling de_sock_read in de_msg_receive_header (188)
121: Error 1 calling de_msg_receive_header in de_msg_receive_nodata_msg (1553)
121: Status : Error
121: Error 1 calling de_msg_receive_nodata_msg in de_compare_server (1507)
.
.
121: DEBUG:column[18].name=<problem column>, column[18].number=19, column[18].type=1 (CHAR), dsize=200, cform=256, csid=871
121: Error 1 in de_compare_server.
121: Compare <source table> to <target table> failed. See error message above.
000: DEQ done reading.
000: Exiting....
b. declt log:
.
.
000: select col1, col2, ..., <problem column> from <problem table> order by 2
000: Oracle Error 904: ORA-00904: <problem column>: invalid identifier
000: Error 904 calling OCIStmtExecute in de_select_prepare_to_fetch (1481)
000: Error 1 calling de_select_prepare_to_fetch in de_batch_setup
A column named <problem column> does not exist on target table causing compare to fail with ORA-00904
One needs to create the missing column named <problem column> on the target table after first stopping Post cleanly. Of course one should consult applications people before making this correction. The problem may have happened when a new table was added to replication but its structure was not checked to see if it matches with that of the source table. After correcting this inconsistency, one should be able to run compare successfully.
Though the desvr log suggests that it could be a network issue or a consequence of "cancel compare", the problem lies elsewhere as seen from the declt log.