mco_HA_replica_params_init

This function is called by the replica to initialize the replica HA runtime parameters to default values.

For an overview see page HA Applications

Prototype

 
    void	mco_HA_replica_params_init(	mco_HA_replica_params_t* params )
 

Arguments

params HA replica parameters defined in structure mco_HA_replica_params_t

Description

This function is called by a replica to initialize the replica HA runtime parameters to default values. The parameters are then set according to the application’s needs and passed to mco_HA_attach_master().

Return Codes

void No value returned

The mco_HA_replica_params_t structure are defined as follows:

 
    typedef struct
    {
        uint4 mode_flags;
        timer_unit initial_timeout;
        timer_unit commit_timeout;
        timer_unit wait_data_timeout;
        mco_ha_notifying notifying_callback;
        void* notifying_context;
        uint2 repeat_counter;
        uint2 mcast_port;
        const char *mcast_addr;
        const char* cancelpoint_addr;
    } mco_HA_replica_params_t;
     

 

mode_flags A bit flag having one or more of the values described below.
initial_timeout The time window during which initial synchronization with the master must complete.
commit_timeout The time window during which a replica must receive transaction data from master.
wait_data_timeout The max. time between two consecutive transactions. If the transaction rate on the master is low, the master should periodically call mco_HA_keep_alive() to prevent a timeout error.
notifying_callback A pointer to the user-defined callback function. This can be used to receive notification about the state of replica. To enable this feature, use flag MCO_HAMODE_REPLICA_NOTIFICATION.
notifying_context The parameter pcontext for the user-defined notification callback function (see below).
repeat_counter The max. number of attempts to repeat the commit for reliable multicast mode (MCO_HAMODE_MCAST_RELIABLE).
mcast_port For multicast.
mcast_addr For multicast.
cancelpoint_addr A connection string that contains the IP address (optionally) and the port number for the process that creates the cancel socket, for example, “127.0.0.1:9999” or simply “9999”. This is used if flag MCO_HAMODE_ALLOW_CANCEL is set in flags. If the application does not use the mco_HA_create_cancel_socket() and mco_HA_destroy_cancel_socket() calls, then mco_HA_attach_master() implicitly creates the cancel socket before connecting to the master and closes it before exit. In other words, mco_HA_attach_master() "manages" the cancel socket.

The possible values for the mode_flags argument are defined as follows:

MCO_HAMODE_ALLOW_CANCEL Enables the cancellation feature (see mco_HA_cancel(). (Note that the cancellation feature is implemented only for TCP and UDP transports.)
MCO_HAMODE_FORCE_MASTER Causes the replica to be synchronized with the master with the intent of becoming the master itself after synchronization is complete.
MCO_HAMODE_REPLICA_NOTIFICATION Enables replica notifications (see parameters notifying_callback and notifying_context).
MCO_HAMODE_SEND_RESTLIST  
MCO_HAMODE_EXPLICIT_WRITE_ACCESS Using this flag means that WRITE access to the replica's database will not be restored automatically after returning from the mco_HA_attach_master() API. To enable write operations, the application must explicitly call mco_HA_set_master_params(). xSQL uses this flag to prohibit write/DDL operations in replica switch mode even if the replica is not currently connected to the master. Changing switch mode to master, auto or standalone (using the xsql_ha_set_switch_mode() UDF) will enable write access to the database.

Notification callback

The notification callback prototype is as follows:

 
    typedef void(*mco_ha_notifying)
        (uint2 notification_code, uint4 param1, void *param2, void *pcontext);
         

where the arguments param1 and param2 are optional parameters sent to the callback (to indicate error codes, replica channel, etc.), argument pcontext is a user-defined parameter passed via the notifying_context field, and the argument notification_code can have one of the following values:

MCO_REPL_NOTIFY_CONNECTED Replica successfully connected to master.
MCO_REPL_NOTIFY_CONNECT_FAILED Replica is unable to connect to the master.
MCO_REPL_NOTIFY_DB_EQUAL The databases on the master and replica sides are equal, so initial synchronization is not needed.
MCO_REPL_NOTIFY_DB_LOAD_BEGIN The initial synchronization has started.
MCO_REPL_NOTIFY_DB_LOAD_FAILED An error occurred during the initial synchronization. The param1 argument to the notification callback function contains the MCO_RET code.
MCO_REPL_NOTIFY_DB_LOAD_OK The initial synchronization has completed successfully. The param1 argument to the notification callback function contains the MCO_E_HA_REPLICA_STOP_REASON code.
MCO_REPL_NOTIFY_COMMIT_FAILED An error occurred during replication (wrong transaction data, or a broken connection). The param1 argument to the notification callback function contains the MCO_RET code.
MCO_REPL_NOTIFY_REPLICA_STOPPED The replica was stopped by the master or a local request.
MCO_REPL_NOTIFY_DB_CREATION_FAILED “Database creation failed” notification,. The param1 argument of the notification callback contains the MCO_RET code.
MCO_REPL_NOTIFY_HOTSYNC “Hot” synchronization has started .
MCO_REPL_NOTIFY_EOHOTSYNC “Hot” synchronization has completed successfully.
MCO_REPL_NOTIFY_STATEFUL_SYNC “Stateful” synchronization started .
MCO_REPL_NOTIFY_STATEFUL_SYNC_END “Stateful” synchronization has completed successfully.