There are certain instances when DSI does not use bulk copy-in, or when the bulk-copy-in feature is not supported.
Autocorrection is on and the data is not part of subscription materialization.
rs_insert has a user-defined function string.
text column has a user-defined function string for rs_writetext with output none or rpc.
The data row contains opaque datatype or a user-defined datatype (UDD) that has an rs_datatype.canonic_type value of 255.
The data row contains an image or a Java datatype.
The replicate database is not Adaptive Server. In this case, if the DSI bulk copy-in is enabled, DSI terminates with an error message.
Bulk-Lib routine 'blk_textxfer' failed. Open Client Client-Library error: Error: 16843015, Severity 1 -- 'blk_textxfer(): blk layer: user error: The given buffer of xxx bytes exceeds the total length of the value to be transferred.'
Bulk-Lib routine 'blk_init' failed.
Unlike the insert command, bulk copy-in does not generate timestamps; NULL values are inserted to the timestamp column if the timestamp column is not included in the replication. Either disable bulk copy-in, or set up your replication definition to include the timestamp column.
Text and image columns are always logged, even if you change the writetext function string to no log.
Bulk copy does not invoke insert trigger in Adaptive Server.
The configuration parameter send_timestamp_to_standby has no effect on bulk copy-in. timestamp data is always replicated.