====== ADOdbLoadBalancerConnection ======
~~NOTOC~~
== Applies To ==
[[v5:loadbalancer:index|ADOdb Load Balancer]]
== See Also ==
[[v5:reference:loadbalancer:addconnection|addConnection()]]
== Syntax ==
class ADOdbLoadBalancerConnection(
string $driverName,
optional string $connectionType='write',
optional int $connectionWeight=1,
optional bool $persitantConnection=false,
optional string $host,
optional string $user,
optional string $password,
optional string $database
===== Description =====
The class ''ADOdbLoadBalancerConnection'' is the replacement for [[v5:reference:connection:adonewconnection|adoNewConnecton()]] and creates a template ADOdb connection that can be retrieved and added to the connection pool.
Note that a connection is not established when the class is instantiated, it is delayed until an ADOdb command such as //**execute**// is issued, or a Load Balancer internal command such as [[v5:reference:loadbalancer:clusterexecute|clusterExecute()]] is issued. This means that a connection number is consumed even if the connection parameters are invalid. Care should be taken when using commands such as [[v5:reference:loadbalancer:removeconnection|removeConnection()]] that rely on a connection number.
------------------------
===== Parameters =====
==== $driverName ====
The name of the ADOdb driver to be used to establish the connection. Currently only the drivers [[v5:database:mysql|mysqli]] and [[v5:database:postgresql|postgres9]] can be used.
==== $connectionType ====
A connection may be of the type ''write'', which designates the primary server through which all update operations are passed, and ''readonly'' , which signifies a secondary server through which some or all of the read-only operations are passed. Only one ''write'' connection can be designated, but there is no limit to the number of ''readonly'' connections.
==== $connectionWeight ====
For ''readonly'' connections, specifying a weight for the connection will influence how many queries are routed through a specific server. The higher the weight, the more often the server is used. If all ''readonly'' servers are defined with the same weight, then a connection randomiser effect is obtained.
==== $persistantConnection ====
This parameter forces the ADOdb connection to be made with a [[v5:reference:connection:pconnect|persistant]] connection.
==== Other Parameters ====
The other parameters are defined the same as the equivalent connection parameters in ADOdb . For more information, see the [[v5:reference:connection:connect|connect()]] command
---------------------------
===== Usage ====
$db = new ADOdbLoadBalancer;
$driver = 'mysqli';
$database = 'employees';
$user = 'adodb';
$password = 'adodb';
$host = '192.168.0.200';
$db0 = new ADOdbLoadBalancerConnection(
$driver,
'write',
10,
false,
$host,
$user,
$password,
$database );
$db->addConnection( $db0 );
$host = '192.168.0.201';
$db1 = new ADOdbLoadBalancerConnection(
$driver,
'readonly',
20,
false,
$host,
$user,
$password,
$database );
$db->addConnection( $db1 );
$host = '192.168.0.202';
$db2 = new ADOdbLoadBalancerConnection(
$driver,
'readonly',
30,
false,
$host,
$user,
$password,
$database );
$db->addConnection( $db2 );