Duplicate connections to the Backend class

Creating duplicate connections using the Backend class allows the
connections and their handling to be tested at the same time that the old
system is in place. This should make it somewhat easier to grasp what
changes and where when the new implementation is taken into use.
This commit is contained in:
Markus Mäkelä
2017-06-15 12:16:17 +03:00
parent 1fcb62895e
commit 05fef4b23e
5 changed files with 100 additions and 8 deletions

View File

@ -147,6 +147,7 @@ bool select_connect_backend_servers(backend_ref_t **p_master_ref,
select_criteria_t select_criteria,
MXS_SESSION *session,
ROUTER_INSTANCE *router,
ROUTER_CLIENT_SES *rses,
bool active_session)
{
if (p_master_ref == NULL || backend_ref == NULL)
@ -208,6 +209,17 @@ bool select_connect_backend_servers(backend_ref_t **p_master_ref,
{
if (connect_server(&backend_ref[i], session, false))
{
for (SRWBackendList::iterator it = rses->backends.begin();
it != rses->backends.end(); it++)
{
SRWBackend& backend = *it;
if (backend->backend()->server == serv)
{
backend->connect(session);
break;
}
}
*p_master_ref = &backend_ref[i];
break;
}
@ -240,6 +252,17 @@ bool select_connect_backend_servers(backend_ref_t **p_master_ref,
if (connect_server(bref, session, true))
{
slaves_connected += 1;
for (SRWBackendList::iterator it = rses->backends.begin();
it != rses->backends.end(); it++)
{
SRWBackend& backend = *it;
if (backend->backend()->server == bref->ref->server)
{
backend->connect(session);
break;
}
}
}
else
{