Known Issues for Oracle

Learn about known issues and workarounds for Replication Agent that are specific to Oracle.

Replication Agent for Oracle Issues
CR# Description

759152

When you execute the DROP TYPE Oracle DDL command at the primary database, the status of Replication Agent for Oracle changes to Replication Down state with a Java.lang.IllegalStateException: no type for attribute.
E. 2014/02/21 11:11:20.968 ERROR com.sybase.ra.lr.oracle.RAOTranReader java.lang.IllegalStateException: no type for attribute:

Workaround: None.

758661

When you execute the alter table shrink space command at the primary Oracle database, the status of Replication Agent for Oracle changes to Replication Down state with a NullPointerException.

Workaround: Skip the alter table operations by enabling skip_lr_errors parameter:

ra_config skip_lr_errors, true
go
resume
go

757888

744733

Replication Agent for Oracle cannot replicate XMLType column with binary storage.

The Replication Agent Log Reader has does not capture data manipulation language (DML) statements issued against an Oracle table XMLType column with binary storage.

Replication Agent for Oracle supports XMLType with CLOB storage. However, CLOB storage is a deprecated feature in Oracle 12c.

Workaround: None.

754777

Replication Agent for Oracle with XStream APIs Log Reader component does not replicate data definition language (DDL) statements from Oracle 12.1.0.1 database.

Workaround: Upgrade to Oracle database version 12.1.0.2.

754600

749246

Large Oracle transactions generate the XStream internal error OCI-21500:
OCI-21500: internal error code, arguments: [knclprstr:str], [0], [stmt_knglxr], [], [], [], [], []

An Oracle transaction size is considered to be large if it has more than 10000 rows or if it has 5000 rows and includes large object (LOB) columns.

Workaround: Upgrade to Oracle database version 12.1.0.2 or increase the TXN_LCR_SPILL_THRESHOLD parameter value at runtime:

select apply_name from dba_apply
begin
dbms_apply_adm.set_parameter( apply_name => 'QAXXOUT_', 
                                 parameter  => 'TXN_LCR_SPILL_THRESHOLD',
                                 VALUE      => '50000'); 
end;
/

If increasing the TXN_LCR_SPILL_THRESHOLD parameter value, does not resolve this issue, please contact SAP Product Support for assistance.

754017

In an Oracle-to-SAP HANA database replication environment, direct load materialization fails due to check subscription error.

On Linux platforms, if the Oracle database and the Oracle JDBC driver version are both 11.1, when you execute the pdb_execute_sql command or once the direct load materialization is triggered. An error exception is logged in the Replication Agent log to indicate that pdb_execute_sql command failed to execute because:
while trying to read the field 'lastRowProcessed' of a null object loaded from an array 
(which itself was loaded from field oracle.jdbc.driver.T4C8Oall.definesAccessors of an object) with an index loaded from a constant

Workaround: Download the Oracle JDBC driver 11.2 version from the Oracle Web site.

752473

In an Oracle-to-SAP HANA replication environment, replication fails when the Replication Agent Java Virtual Machine (JVM) stops responding.

When you resume a Replication Agent, the Replication Agent JVM crashes causing the replication definition failure.

You can find the information about the JVM failure in the hs_error_pid.log file, where pid is your JVM system process ID:

Java frames: (J=compiled Java code, j=interpreted, V=VM code (C/C++), v=VM code (generated))
J  oracle.streams.XStreamOut.XStreamOutReceiveLCRNative(JJI)Ljava/util/ArrayList; (sp=0x00007f4503c44500) (pc=0x00007f45199f24f4)
J  oracle.streams.XStreamOut.receiveLCR(I)Loracle/streams/LCR; (sp=0x00007f4503c44550) (pc=0x00007f4519adeef8)
J  com.sybase.ds.oracle.xstream.XStreamOutBound.receiveLCR(I)Loracle/streams/LCR; (sp=0x00007f4503c445a0) (pc=0x00007f45199bf894)
Workaround: Include additional JVM options by executing:
$JRE $JVM_DATA_MODEL -server $MAX_MEMORY_POOL $FILENC "-Dinstall.root=$RAX_DIR" "-DSYSAM_LICDIR=$SYSAM/licenses" 
-XX:CompileCommand=exclude,oracle/streams/XStreamOut,XStreamOutReceiveLCRNative -XX:CompileCommand=exclude,oracle/streams/XStreamOut,
receiveLCR -XX:CompileCommand=exclude,com/sybase/ds/oracle/xstream/XStreamOutBound,receiveLCR -XX:CompileCommand=exclude,com/sybase/ds/oracle/xstream/XStreamScanner,
run -classpath "$RAX_JARS:$JCONN_CLASSES/jconn4.jar:$JCONN_CLASSES/jTDS3.jar:$JHOME/lib/charsets.jar:$RAX_DIR/classes/sylapi.jar:$RAX_DIR/classes/xstream.jar:$CLASSPATH" 
com.sybase.ra.RepAgent "$@"
752457
Upgrading with ra_migrate fails on AIX platform with this error message:
ra_migrate
go

Command  failed - XLog could not be migrated in database <(primary db name)>
because: Could not set upgrade finalization status on primary database
<(primary db name)> because: Could not upgrade system repository database <> from
vesrion <(version number)> to version <(version number)> because: Could not start database
<(path to database file)>.
Workaround:
  1. Shut down Replication Agent.
  2. Change the asa_install_dir to asa_bin directory to a later version of Replication Agent.
  3. Change the asa_engine to the latest version.

    The asa_bin and asa_engine details are in the $SYBASE/RAX-15_5/bin/ra_admin.sh file.

    For example, $SYBASE/RAX-15_5/SQLANY16/bin and dbeng6.

  4. Restart Replication Agent.
Once Replication Agent has started, you can replicate data to the target database.
752165

Replication Agent for Oracle with XStream APIs Log Reader component fails to replicate an Oracle table created with CREATE TABLE... AS SELECT statement.

If you create a table with CREATE TABLE... AS SELECT statement at the primary database, the Replication Agent for Oracle changes to Replication Down state because of this error exception:
com.sybase.ds.oracle.OracleLogRecordProcessingException: A DDL operation arises in a DML transaction on user table, which is not supported.

Workaround: Skip the error message and resume the Replication Agent.

751548

In an Oracle-to-SAP HANA database replication environment, if you try to replicate wide tables, replication fails because of an Oracle XStream (ORA-26813) error:

E. 2013/11/20 23:48:13.651 ERROR com.sybase.ds.oracle.xstream.XStreamScanner XStream Out bound server failed to be detached because: 
ORA-03127: no new operations allowed until the active operation ends
E. 2013/11/20 23:48:13.653 ERROR com.sybase.ds.oracle.xstream.XStreamScanner Log scanner 
<QA0XOUT_> stopped because of error: XStreamOut AddColumnValues: failed to get RowLCR col info.
E. 2013/11/20 23:48:13.653 ERROR com.sybase.ds.oracle.xstream.XStreamScanner 
ORA-26813: The value for argument "ARRAY_SIZE" is too small
E. 2013/11/20 23:48:13.653 ERROR com.sybase.ds.oracle.xstream.XStreamScanner
E. 2013/11/20 23:48:13.653 ERROR com.sybase.ds.oracle.xstream.XStreamScanner java.lang.Exception: 
Log scanner <QA0XOUT_> stopped because of error: XStreamOut AddColumnValues: failed to get RowLCR col info.
E. 2013/11/20 23:48:13.653 ERROR com.sybase.ds.oracle.xstream.XStreamScanner 
ORA-26813: The value for argument "ARRAY_SIZE" is too small
E. 2013/11/20 23:48:13.653 ERROR com.sybase.ds.oracle.xstream.XStreamScanner
E. 2013/11/20 23:48:13.653 ERROR com.sybase.ds.oracle.xstream.XStreamScanner com.sybase.ds.oracle.xstream.XStreamScanner.run(XStreamScanner.java:411)
E. 2013/11/20 23:48:13.653 ERROR com.sybase.ds.oracle.xstream.XStreamScanner java.lang.Thread.run(Thread.java:791)

Workaround: None.

751174

Replication Agent for Oracle does not support dynamic SQL replication with update statements when the source table has more than one LOB column.

This is a limitation of dynamic SQL when you use Oracle primary database in a replication environment.

Workaround: Create a table replication definition with the source table.

743792

Replication Agent for Oracle instance does not start when you use a resource file for initilization.

When you use a resource file with start_instance = yes and initialize_instance = yes settings, Replication Agent for Oracle does not start.

You see an error exception similar to:
Waiting for ASA <dbspawn> process to complete.
ASA <dbspawn> process succeeded.
Processing...
Generating a random key automatically.
ERROR:  Encountered an exception <Instance <rao1571> failed to start because: 
<Cannot run program "/work/rax1571sp102/RAX-15_5/bin/ra.sh -i rao1571 > 
/work/rax1571sp102/RAX-15_5/rao1571/log/error.log 2>&1": error=2, No such file or directory>> 
initializing an instance created  from the resource file <myrao1571.rs>.
Please check the log file for a reason, correct the error, and re-run pdb_xlog init command.
    Resource-file processing completed.
The log file for this session is: /work/rax1571sp102/RAX-15_5/admin_logs/admin7192013_162126.log
The contents of the log file shows:
INFORMATION: Generating a random key automatically.
Jul 19, 2013 4:21:40 PM com.sybase.ra.RepAgentAdmin createInstanceFromResponseFile
ERROR: Encountered an exception <Instance <rao1571> failed to start because: 
<Cannot run program "/work/rax1571sp102/RAX-15_5/bin/ra.sh -i rao1571 > 
/work/rax1571sp102/RAX-15_5/rao1571/log/error.log 2>&1": error=2, No such file or directory>> 
initializing an instance created  from the resource file <myrao1571.rs>.
Please check the log file for a reason, correct the error, and re-run pdb_xlog init command.
Jul 19, 2013 4:21:40 PM com.sybase.ra.admin.CommandLine doAdmin
INFORMATION:     Resource-file processing completed.
ra.sh -i i error=2  No such file or directory

Workaround: None.

738185

Random rollbacks on index-ordered tables may fail to replicate.

A random rollback executed in parallel on an index-ordered table may fail to replicate.

Workaround: None.

735422

Replication failure for stored procedures with CHAR or NCHAR parameters

Replication Agent for Oracle may fail to replicate stored procedures that have parameters of type CHAR or NCHAR.

Workaround: If you manually create the replication definition in Replication Server for such a stored procedure, use varchar for parameters of type CHAR and NCHAR.

732183

Replication of update and delete operations on NUMBER data fail

After direct load materialization, replication of update and delete operations on Oracle NUMBER data may fail if the NUMBER value is in a searchable column or is more than 36 digits in length.

Workaround: For Oracle 11.2.0.3 on Linux, you can install an Oracle patch for p14020842. For other versions, there is no workaround.

723789

Resource file verification fails

Verification of the resource file fails with this parameter setting:
pds_sa_useranme=SYS AS SYSDBA

Workaround: Do not use the SYSDBA role in pds_sa_username.

722324

Replication Agent for Oracle does not support the replication of DDL operations executed by Oracle system users, such as SYS or SYSDBA.

Workaround: Make sure a non-system user performs all DDL operations that you want to replicate.

722089

Login to Oracle fails with pds_username and ddl_username due to case-sensitivity.

The Replication Agent pds_username and ddl_user configuration parameters are not case-sensitive. In Replication Agent for Oracle, these parameters are case-insensitive, which can result in login failure.

Workaround: None.

713588

Replication Agent for Oracle goes to Replication Down state due to Oracle trigger problem.

When you create a new trigger on a table in Oracle 11.2.0.1, the trigger is disabled by default. Subsequent triggers created on the table are enabled by default.

Workaround: After you create a new trigger on a table in Oracle 11.2.0.1, explicitly enable the trigger state using the Oracle command:

ALTER TRIGGER <trigger_name> ENABLE
where <trigger_name> is the name of the new trigger.

Alternately, you can use the ENABLE ALL TRIGGERS clause of Oracle ALTER TABLE command to enable all triggers defined for the table.

713300

Replication Agent for Oracle replicates LOB of incorrect size due to LogMiner error.

Oracle LogMiner occasionally indicates and provides Replication Agent for Oracle with LOB data that is longer than the correct length.

Workaround: None.

709173

When the Replication Agent processes records with LOB for tables with partition by hash on Oracle 11.1 for HPIA64 and Windows platforms, this exception error is encountered:

Could not mine or match a RAW LogMiner record for record <...Operation <UNSUPPORTED> ... SQL Redo <Unsupported> > from SCN [<xxx>, <xxx>].>

Workaround: None.

707428

OracleLogRecordProcessingException error is encountered in Oracle version 11.1.0.6.

When you alter a table with truncate partition in the primary database, where the table is a partitioned table with LOB and sub-partitions, an OracleLogRecordProcessingException error is encountered. This is encountered only in Oracle version 11.1.0.6.

Workaround: You can either:
  • Use this command:
    ra_config skip_lr_errors, true
    go
    resume
    go
    or,
  • Upgrade to Oracle 11.1.0.7 or later.
706919

Oracle LogMiner produces invalid results for FLOAT data with precision greater than 36.

This behavior occurs in Oracle 10g Release 2 through Oracle 11g Release 2.

Workaround: For Oracle 11g Release 2 Linux-x86-64 platforms, install the Oracle patch for bug #14020842.

705702

The DDL commands that SYS user executes are not filtered.

Workaround: Add SYS user to DDL filters:
pdb_setrepddl user, sys, disable
go
702924

The alter table DDL command fails in Replication Agent.

In Oracle 10g, when a new column is added to a table with not null and default value, Oracle also updates the existing rows with the default column value. When the update to the existing rows is performed, an exception shows up since Replication Agent has not processed the alter table DDL yet, which means it has not updated the article to add the new column. Replication Agent has no way to determine whether this is a normal user table update or an internal update that is generated by DDL transaction.

Workaround: Use pdb_skip_op command to skip the internal update DML log record in the alter table DDL transaction.
  1. Locate the internal update DML log record in the Replication Agent error log with LRTRACE set to on. Example:
    T. 2012/03/25 20:27:12.293 LRTRACE com.sybase.ds.oracle.logmnr.OracleOperationPr Processing LogMiner Record 
    <OPID <0x0000.00bab3a6.0000:0001.00000be3.000000bf.00f0>, Timestamp <2012-03-25 20:27:12.0>, XID <0x0004.002b.00000c39>, 
    Serial# <7528>, Session# <133>, Session Info <login_username=QAMUSER client_info= OS_username=wliao 
    Machine_name=rqavmrh1 OS_terminal= OS_process_id=31314 OS_program_name=dcoracle@rqavmrh1 (TNS V1-V3)>, User Name <QAMUSER>, 
    Object ID <93318>, REL_FILE# <5>, DATA_BLK# <893>, DATA_OBJD#<93318>, Operation <UPDATE>, Op Code <3> Rollback <0> SSN <0> 
    CSF <0> SQL Redo <update "QAMUSER"."QAM_INT" set "FEE_SUB_MNEM_CD" = ' ' where "FEE_MNEM_CD" = 'SYB' and 
    "FEE_TYP_DESC" = 'UNWIRED ENTERPRISE ' and "LST_UPDT_DTTI" = TO_TIMESTAMP('01/02/2009 00:00:00.000000000') and 
    "LST_UPDI_USER_ID" IS NULL and "FEE_SUB_MNEM_CD" IS NULL;> >.
  2. Collect SCN, THREAD, and RBA of that update log record, and use pdb_skip_op command to skip it.
    pdb_skip_op add, SCN, THREAD, RBA
  3. Resume Replication Agent.
702863

Oracle does not support tables and tablespaces compressed for OLTP.

Oracle LogMiner for Oracle 11g Release 2 does not support tables and tablespaces compressed for online transaction processing (OLTP).

Workaround: If you want to replicate tables compressed for OLTP, apply Oracle patch #129050503.

702654

Replication Agent aborts with LTI formatting error.

The Replication Agent is aborted with LTI formatting error on a locator value due to Oracle LogMiner limitation on decimal precision support.

Workaround: None. Please contact SAP Product Support.

691433

Oracle LogMiner zeroes out fractional second on timestamp columns.

Replication of millisecond section of timestamp datatype column fails if the primary Oracle version is earlier or equal to 10.2.0.4.

Workaround: You can either:
  • Upgrade to Oracle 10.2.0.5 or 11g. This issue has been fixed in these versions. Or,
  • Apply Oracle patch 4727401, if available for your platform and Oracle version.
Note: Replicating these tables is not supported in Oracle 10.2 due to lost part of a millisecond:
  • Tables created with PARTITION BY HASH (timestamp_col).
  • Tables with timestamp columns as primary key or unique index.
663726

rasd_restore does not shutdown Replication Agent instance when run with a parameter.

Workaround: Run rasd_restore without specifying a parameter.

645980

Exadata Hybrid Columnar Compression (EHCC) not supported.

Replication Agent for Oracle does not support the replication of "columnar compressed data because Replication Agent for Oracle does not support Exadata. Do not use the compress for query clause or the compress for archive clause in an Oracle table definition because these clauses are intended only for EHCC data.

Workaround: None.

641011

DDL statements introduced in Oracle 11g cannot be filtered.

pdb_setrepddl does not filter these DDL statements introduced in Oracle 11g:
  • Oracle 11.1 – create flashback archive, alter flashback archive, and drop flashback archive.
  • Oracle 11.2 – alter database link, create edition, and drop edition.

Workaround: None.

619663

Replication Agent reports an incorrect number of RMAN-deleted archive redo log files when RMAN utility locale is not English.

Replication Agent searches for the word “Deleted” when counting the number of deleted archive redo log files that have been truncated by the Oracle Recovery Manager (RMAN) utility. For language modules other than English, the count fails because Replication Agent cannot find the word “Deleted.”

Workaround: Specify the locale behavior of your Oracle software by setting the NLS_LANG Oracle environment parameter to a supported English character set such as american_america.zhs16gbk. For example:
  • On Windows: set nls_lang=american_america.zhs16gbk
  • On UNIX: setenv NLS_LANG american_america.zhs16gbk
615023

Replication definition is not created when table owner is not specified and recycle bin is enabled.

When your primary database is Oracle and the recycle bin is enabled, rs_create_repdef cannot create a replication definition for marked tables unless you specify a table owner.

Workaround: Specify a table owner in the rs_create_repdef syntax. For example:

rs_create_repdef qaxuser.qax_tab1

where qaxuser is the table owner.

596321

596320

SAP Replication Server does not support specifying owner information of stored procedures in the function replication definition for Oracle.

Therefore, Replication Agent cannot send that information to SAP Replication Server. Because the owner information is not available, the replicated stored procedure fails to execute at the Oracle standby database.

Workaround: For each stored procedure that is replicated from an active to a standby database, create a corresponding function string. Specify owner information in the target stored procedure.

To customize the function-string class of the standby connection, which is inherited from rs_oracle_function_class, enter:

alter connection to eco2stb.ordb (standby connection)
set function string class to my_oracle_function_class 
go
585513

Initialization failure when isolation level is set to serializable in an Oracle RAC environment.

In an Oracle Real Application Clusters (RAC) environment, Replication Agent may fail during initialization when you set the isolation level to serializable. This failure is due to an internal Oracle error.

Workaround: Install the Oracle Clusterware Release 2 (10.2.0.4) patch set for Oracle Database 10g Release 2 or upgrade to Oracle Database 11g Release 1.

563912

Incorrect lr_ntext_byte_order command default value in the output display.

The ra_config lr_ntext_byte_order command output incorrectly displays the default value as "<not_configured>" instead of big.

Workaround:See the Replication Agent Reference Manual for the correct information on this command.

405207

create table DDL has limited support for UDD object types.

Replication of a create table DDL command is not supported for tables with UDDs, when a UDD has a nested object type.

Workaround: Reinitialize the Replication Agent.

405206

alter type DDL command has limited support.

During replication of the alter type command, the type change does not propagate to the dependents of the type.

Workaround: Reinitialize the Replication Agent.