Abstract
This class represents a connection to a cluster of data nodes.
Parent class. None
Child classes. None
Description. 
      An NDB application program should begin with the creation of a
      single Ndb_cluster_connection object, and
      typically makes use of a single
      Ndb_cluster_connection. The application
      connects to a cluster management server when this object's
      connect() method is called. By using the
      wait_until_ready() method it is possible to
      wait for the connection to reach one or more data nodes.
    
      There is no restriction against instantiating multiple
      Ndb_cluster_connection objects representing
      connections to different management servers in a single
      application, nor against using these for creating multiple
      instances of the Ndb class. Such
      Ndb_cluster_connection objects (and the
      Ndb instances based on them) are not required
      even to connect to the same cluster.
    
      For example, it is entirely possible to perform
      application-level partitioning of data in
      such a manner that data meeting one set of criteria are
      “handed off” to one cluster via an
      Ndb object that makes use of an
      Ndb_cluster_connection object representing a
      connection to that cluster, while data not meeting those criteria
      (or perhaps a different set of criteria) can be sent to a
      different cluster through a different instance of Ndb that makes
      use of an Ndb_cluster_connection
      “pointing” to the second cluster.
    
It is possible to extend this scenario to develop a single application that accesses an arbitrary number of clusters. However, in doing so, the following conditions and requirements must be kept in mind:
            A cluster management server (ndb_mgmd)
            can connect to one and only one cluster without being
            restarted and reconfigured, as it must read the data telling
            it which data nodes make up the cluster from a configuration
            file (config.ini).
          
            An Ndb_cluster_connection object
            “belongs” to a single management server whose
            host name or IP address is used in instantiating this object
            (passed as the connectstring
            argument to its constructor); once the object is created, it
            cannot be used to initiate a connection to a different
            management server.
          
            (See
            Section 2.3.24.1.1, “Ndb_cluster_connection Class Constructor”.)
          
            An Ndb object making use of this
            connection (Ndb_cluster_connection)
            cannot be re-used to connect to a different cluster
            management server (and thus to a different collection of
            data nodes making up a cluster). Any given instance of
            Ndb is bound to a specific
            Ndb_cluster_connection when created, and
            that Ndb_cluster_connection is in turn
            bound to a single and unique management server when it is
            instantiated.
          
            The bindings described above persist for the lifetimes of
            the Ndb and
            Ndb_cluster_connection objects in
            question.
          
      Therefore, it is imperative in designing and implementing any
      application that accesses multiple clusters in a single session,
      that a separate set of Ndb_cluster_connection
      and Ndb objects be instantiated for connecting
      to each cluster management server, and that no confusion arises as
      to which of these is used to access which MySQL Cluster.
    
It is also important to keep in mind that no direct “sharing” of data or data nodes between different clusters is possible. A data node can belong to one and only one cluster, and any movement of data between clusters must be accomplished on the application level.
For examples demonstrating how connections to two different clusters can be made and used in a single application, see Section 2.4.2, “Using Synchronous Transactions and Multiple Clusters”, and Section 2.4.8, “Event Handling with Multiple Clusters”.
Methods. The following table lists the public methods of this class and the purpose or use of each method:
| Method | Purpose / Use | 
|---|---|
| Ndb_cluster_connection() | Constructor; creates a connection to a cluster of data nodes. | 
| set_name() | Provides a name for the connection | 
| set_timeout() | Sets a connection timeout | 
| connect() | Connects to a cluster management server. | 
| wait_until_ready() | Waits until a connection with one or more data nodes is successful. | 
| set_optimized_node_selection() | Used to control node-selection behavior. | 
| lock_ndb_objects() | 
              Disables the creation of new  | 
| unlock_ndb_objects() | 
              Enables the creation of new  | 
| get_next_ndb_object() | 
              Used to iterate through multiple  | 
| set_auto_reconnect() | 
              Enables or disables auto-reconnection of API nodes using
              this  | 
| get_auto_reconnect() | 
              Gets the auto-reconnection setting for API nodes using
              this  | 
    For detailed descriptions, signatures, and examples of use for each
    of these methods, see
    Section 2.3.24.1, “Ndb_cluster_connection Methods”.
  
Class diagram. 
      This diagram shows all the available methods of the
      Ndb_cluster_connection class:
      


