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:
A JDBC driver for the Informix data server. You should ask your Informix vendor for the most recent version of the Informix JDBC driver that supports your Informix data server version.
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. Refer to the Sybase Replication
Agent Administration Guide and the Sybase Replication Agent
release bulletin for more information.
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.
Refer to the Sybase Replication Agent Administration Guide for
more information about creating Replication Agent instances.
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_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.
Replication Server Manager has the following limitations with an Informix primary data server:
Replication Server Manager cannot start or stop a Sybase Replication Agent instance.
See the Sybase Replication Agent Administration Guide for more information on starting and stopping the Replication Agent instance.
Replication Server Manager does not provide a method to invoke the Replication Agent pdb_xlog command. You must log in to the Replication Agent instance to execute this command.
See the Sybase Replication Agent Administration Guide for more information on logging in to a Replication Agent instance and using the pdb_xlog command.
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.
If you use Replication Server Manager to create replication definitions, set the value of the Replication Agent ltl_character_case configuration parameter to asis. This allows the Replication Agent to send database object names in the same case as they appear in the primary database, which is the way RSM creates replication definitions, using the case returned by the primary data server. If you create replication definitions outside RSM, it may be easier to 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.
See the Sybase Replication Agent Administration Guide for more information on the ltl_character_case parameter.
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 (for example, 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. See the Sybase Replication Agent Administration Guide for more information.
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.
See the Sybase Replication Agent Administration Guide for more information about the pdb_convert_datetime parameter and a complete list of datatype mapping for Informix datatypes. See the Replication Server Administration Guide for more information about UDDs and their use.
The Sybase Replication Agent provides a number of commands that return metadata information about the primary database (database names, table names, procedure names, column names, and so forth). It does this by issuing specific JDBC calls designed to return this information, or by querying the system tables directly.
Replication Server Manager (RSM) can be configured to use either the Replication Agent or a DirectConnect database gateway to return information about the primary database. Typically, RSM uses the Replication Agent to obtain information from the primary database, and uses a DirectConnect gateway to obtain information from a replicate database. You can specify which product is used to return metadata information to RSM when you add a non-Sybase data server using the RSM Add Server wizard.
Further considerations of using RSM are:
RSM cannot create a Sybase Replication Agent instance, nor can it start and stop a Replication Agent instance.
RSM can fully configure a Replication Agent instance, as well as invoke most Replication Agent administrative commands.
RSM can monitor and display the contents of Replication Agent instance system logs.
For RSM latency calculations to work correctly, the value of the Replication Agent ltl_origin_time_required parameter must be true.
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.
See the Sybase Replication Agent Administration Guide for more information about the sample scripts and their use.