# Cluster_Params

> The eXtremeDB Cluster feature (included with eXtremeDB High Availability) is configured by specifying the parameters described below.

> ### For an overview see page Cluster Applications in C

> ## Cluster Parameters

> The following structure is initialized and passed to function `mco_cluster_db_open()`:

>         typedef struct mco_cluster_params_t_
>          {
>             uint4 rtrans_commit; /* nbr of successful remote transactions */
>             mco_cluster_node_params_t       *nodes;
>             uint2                            n_nodes;
>             uint2                            node_id;
>             uint2                            conn_pool_factor;
>             uint4                            sync_msg_objects; /* max number of objects per message during synchronization */
>             uint4                            sync_msg_size;    /* max size of message in bytes during synchronization */
>             mco_cluster_transsize_f          transsize_callback;
>             mco_cluster_check_quorum_f       check_quorum_func;
>             void                            *check_quorum_param;
>             mco_cluster_window_t             window;
>             mco_cluster_notifying            notifying_callback;
>             void                            *notifying_context;
>             mco_cluster_connection_context_f connect_ctx_callback;
>             void                            *connect_ctx_param;
>             uint4                            cl_sndbuf;
>             uint4                            cl_rcvbuf;
>             uint4                            mode_mask;
>             void*                            stream_handle;
>             mco_stream_read                  input_stream_reader;
>             union   {
>                 mco_clnw_tcp_params_t tcp;
>                 mco_clnw_mpi_params_t mpi;
>             } nw;

>          } mco_cluster_info_t, * mco_cluster_info_h;

> ## Transaction Window

> The cluster transaction window is defined by the following structure:

>         typedef struct mco_cluster_window_t_
>         {
>             uint4                      bsize;  /* in bytes */
>             uint4                      length; /* in transactions */
>             timer_unit                 timeout;

>         } mco_cluster_window_t;

> ## Channel Parameters

> The network element `nw` allows the application to specify TCP or MPI channel as the network protocol. The following structures are used to specify channel-specific network settings.

> ### TCP

>         typedef struct mco_clnw_tcp_params_t_
>         {
>             uint4                      so_sndbuf;
>             uint4                      so_rcvbuf;
>             timer_unit                 connect_timeout;
>             timer_unit                 connect_interval;
>             timer_unit                 keepalive_time;
>             uint4                      keepalive_probes;
>             MCO_SOCK_DOMAIN            socket_domain;
>             int                        compression_level;
>             void                      *ssl_params;

>         } mco_clnw_tcp_params_t;

> ### MPI

>         typedef struct mco_clnw_mpi_params_t_
>         {
>             uint4                      flags;
>             void                      *communicator;

>         } mco_clnw_mpi_params_t;