This section describes the primary database issues and considerations specific to the Informix Dynamic Server data server in a Sybase replication system.
As a primary data server, Informix interacts with Sybase Replication Agent. The Replication Agent identifies and transfers information about data-changing operations (or transactions) from an Informix primary data server to a primary Replication Server.
The Replication Agent interacts with the primary Replication Server, and with the RSSD of the primary Replication Server, if so configured.
The Replication Agent requires an Informix login ID that has permission to access data and create new objects in the primary database.
The Informix login ID must have the following permissions in the primary database:
SELECT on any table to be replicated
CREATE TRIGGER on any trigger on any table to be replicated
DROP TRIGGER on any trigger on any table to be replicated
CREATE TABLE
DROP TABLE
CREATE PROCEDURE on any procedure to be replicated
DROP PROCEDURE on any procedure to be replicated
The performance and operation of Informix primary data servers in a Sybase replication system might be affected by the following:
The Sybase Replication Agent uses its own proprietary transaction log to capture and record transactions in the primary database. The Replication Agent transaction log consists of shadow tables, stored procedures, and triggers that are created as objects in the primary database.
For each table operation or procedure invocation to be replicated, a sequence of triggers and/or stored procedures is executed to copy the operational data or parameters into a copy (shadow) table. The shadow tables are read periodically by the Replication Agent, which sends the transaction data to the primary Replication Server.
The impact of making these copies and scanning them depends on the capacity of the host machine and data server at the time of execution. A server with low transaction volumes or generous system resources may experience very little or no noticeable impact on performance. For a heavily loaded system or one with limited resources, the impact on performance could be significant. In addition, the need to keep copies of primary transaction data may require significant additional disk space for systems with large transaction volumes.
Sybase Replication Agent requires the following to connect to an Informix primary data server:
The supported version of the Informix JDBC driver is listed in the Replication Agent release bulletin.
The JDBC driver must be installed and referenced in the CLASSPATH environment variable on the Replication Agent host machine. Java uses the contents of the CLASSPATH variable to identify search paths for Java classes. For the Informix JDBC driver, the full path and file name must be in the CLASSPATH variable, for example, c:\informix\jdbc\ifxjdbc.jar.
Sybase Replication Agent is a Java program. Some operating systems
may require patches to support Java. For more information, refer to
the Sybase Replication Agent Administration Guide and
the Sybase Replication Agent release bulletin.
The values of the following Replication Agent configuration parameters must be set as described:
pds_username – the Informix user ID that the Replication Agent uses to log in to the primary database. This user ID must be granted permissions as described in “Informix primary database permissions”.
pds_password – the password for the Informix user ID that the Replication Agent uses to log in to the Informix primary database.
pds_connection_type – must be set to IFXJDBC for connectivity to an Informix primary database.
The value of the pds_connection_type parameter
is set automatically when the Replication Agent instance is created.
For more information about creating Replication Agent instances,
refer to the Sybase Replication Agent Administration Guide.
pds_host_name – the name of the host machine on which the Informix data server resides.
pds_port_number – the client socket port number where the Informix data server listens for connections.
pds_server_name – the server name of the Informix data server.
pds_database_name – the name of the primary database on the Informix data server, from which transactions will be replicated.
A separate Replication Agent instance is required for
each database from which transactions are replicated.
The values of the following Replication Agent configuration parameters must be set as described so that the Replication Agent can connect to the primary Replication Server:
rs_host_name – the name of the host machine on which the primary Replication Server resides.
rs_charset – character set used to communicate with Replication Agent. It must match the character set used by Replication Server. If rs_charset does not match, Replication Agent will not replicate anything.
rs_port_number – the client socket port number where the primary Replication Server listens for connections.
rs_username – the user ID that the Replication Agent uses to log in to the primary Replication Server. This user ID must be defined and granted connect source permission in the Replication Server.
rs_password – the password for the user ID that the Replication Agent uses to log in to the primary Replication Server.
rs_source_ds – the server name of the primary data server specified in the Replication Server database connection.
rs_source_db – the database name of the primary database specified in the Replication Server database connection.
Sybase Replication Agent uses TCP/IP and the
Sybase JDBC driver (jConnect for JDBC, which is included in Replication
Agent installation) to communicate with other Sybase servers. The
Replication Agent does not rely on the Sybase interfaces file for
connectivity information.
The values of the following Replication Agent configuration parameters must be set as described so that the Replication Agent can connect to the RSSD of the primary Replication Server:
rssd_host_name – the name of the host machine for the data server that contains the RSSD.
rssd_port_number – the client socket port number where the RSSD data server listens for connections.
rssd_username – the user ID that the Replication Agent uses to log in to the RSSD. This user ID must be defined and granted select permission in the RSSD.
rssd_password – the password for the user ID that the Replication Agent uses to log in to the RSSD.
rssd_database_name – the database name of the RSSD. When logging in to the data server specified in the rssd_host_name parameter, the Replication Agent invokes a use command for the database name specified in the rssd_database_name parameter.
Sybase Replication Agent imposes the following limitations on an Informix primary data server:
The default transaction isolation of the Informix database must be Read Committed. This ensures that the Replication Agent reads and processes only committed transactions.
The Informix database must have the Informix Schema installed. The Replication Agent uses system tables created by the schema installation.
No primary table marked for replication can have a selective update trigger on it. (A selective update trigger is an update trigger that acts based only on operations in specific columns.) This type of trigger can prevent the Replication Agent from capturing transaction data on updates.
The maximum number of columns allowed in a primary table marked for replication is four columns less than the maximum number of columns allowed by the Informix data server instance. The shadow table that stores captured transaction data uses the primary table schema, plus four additional columns for Replication Agent system information. If four more columns cannot be added to the number of columns in a primary table, the shadow table creation fails.
All the installation issues and configuration parameter details for an Informix primary data server are provided in the Sybase Replication Agent Installation Guide. The following are a few items that may need additional attention:
When you install Sybase Replication Agent, a Java Runtime Environment (JRE) that is compatible with the Replication Agent may be installed for you. For each operating system, you should download and install the most recent recommended patches specified by your operating system vendor for Java compatibility.
Sybase Replication Agent requires a JDBC driver for connectivity to the primary data server. Sybase does not provide a JDBC driver for Informix data servers. Contact your Informix database vendor for more information about JDBC drivers for Informix data servers.
All configuration parameter values in the Replication Agent configuration file are case sensitive. Be careful when specifying the values of the rs_source_ds and rs_source_db parameters, as Replication Server is also case sensitive. If the same case is not used in both Replication Agent and Replication Server parameters, no connection occurs.
The Replication Agent filter_maint_userid configuration parameter controls whether the Replication Agent forwards transactions performed by the Maintenance User to the primary Replication Server. The Maintenance User name is defined in the Replication Server create connection command for the primary database.
In a bidirectional replication environment (that is, replicating both into and out of the same database), the value of the filter_maint_userid parameter should be set to true. If it is not, transactions replicated to another site could return to be applied at the originating site, creating an endless loop.
The Replication Agent ltl_character_case configuration parameter controls the character case in which the Replication Agent sends database object names to the Replication Server.
For example, if a replication definition is created for all tables named testtab, the table name sent by the Replication Agent must be testtab, or no match occurs. Because Replication Server is case sensitive, a value of TESTTAB does not match a value of testtab.
When you create replication definitions, choose a default case (for example, create all replication definitions in either all uppercase or all lowercase), and change the value of the Replication Agent ltl_character_case parameter to match.
For more information on the ltl_character_case parameter, see the Sybase Replication Agent Administration Guide.
No Open Client interface application (such as isql) is provided as part of the Sybase Replication Agent installation. Use the Replication Server Manager, or use an Open Client application provided with another Sybase product, such as the isql installed with Adaptive Server Enterprise or Replication Server.
The Replication Agent use_rssd configuration parameter controls whether the Replication Agent sends Log Transfer Language (LTL) that contains only the columns specified in a replication definition or all of the columns in the primary table.
When the value of the use_rssd parameter is set to false, the Replication Agent sends LTL with data for all of the columns in the primary table. When the value of the use_rssd parameter is set to true, the Replication Agent sends LTL with data for only the columns specified in the replication definition for each primary table.
By sending data for only the columns specified in the replication definition, network traffic is reduced, which can improve performance.
In addition, column names and parameter names are removed from the LTL because the Replication Agent can send information in the order identified by the replication definition. The LTL minimal columns and structured tokens options are also available when the value of the use_rssd parameter is set to true. For more information see the Sybase Replication Agent Administration Guide.
The Sybase Replication Agent allows you to control how it sends Informix DATE column values to the Replication Server. There are two options:
Send the value as a character string (the default).
Send the value as a Sybase datetime value.
The value of the Replication Agent pdb_convert_datetime configuration parameter determines how the Replication Agent handles temporal datatypes.
If you set the pdb_convert_datetime parameter to true, all corresponding datatypes in a replication definition for DATE columns are converted to the Sybase datetime datatype.
If you set the pdb_convert_datetime parameter to false, the datatype in a replication definition for a DATE column must be either:
A Replication Server user-defined datatype (UDD), or
A character datatype.
The character (char or varchar) datatype specified in a replication definition for a DATE column must have sufficient length to accommodate the column’s default display length.
For more information about the pdb_convert_datetime parameter and a complete list of datatype mapping for Informix datatypes, see the Sybase Replication Agent Administration Guide. For more information about UDDs and their use, see the Replication Server Administration Guide.
The Sybase Replication Agent provides a number of commands that return metadata information about the primary database (such as database names, table names, procedure names, and column names). It does this by issuing specific JDBC calls designed to return this information, or by querying the system tables directly.
The Sybase Replication Agent provides a set of sample scripts that you can use to set up simple, single-table replication from Informix to Adaptive Server. These scripts are located in the $SYBASE/RAX-12_6/scripts directory of the Sybase Replication Agent installation.
For more information about the sample scripts and their use, see the Sybase Replication Agent Administration Guide.