* pgpool: a language independent connection pool server for PostgreSQL
* written by Tatsuo Ishii
*
- * Copyright (c) 2003-2011 PgPool Global Development Group
+ * Copyright (c) 2003-2016 PgPool Global Development Group
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby
session_context = &session_context_d;
ProcessInfo *process_info;
int node_id;
+ int i;
/* Get Process context */
session_context->process_context = pool_get_process_context();
node_id = STREAM? PRIMARY_NODE_ID: MASTER_NODE_ID;
}
- session_context->load_balance_node_id =
- process_info->connection_info->load_balancing_node = node_id;
+ session_context->load_balance_node_id = node_id;
+
+ for (i=0;i<NUM_BACKENDS;i++)
+ {
+ pool_coninfo(session_context->process_context->proc_id,
+ pool_pool_index(), i)->load_balancing_node = node_id;
+ }
ereport(DEBUG1,
(errmsg("initializing session context"),
- errdetail("selected load balancing node: %d", backend->info->load_balancing_node)));
+ errdetail("selected load balancing node: %d", node_id)));
/* Unset query is in progress */
pool_unset_query_in_progress();
BACKEND_INFO(backend->info->load_balancing_node).backend_status == CON_DOWN)
{
/* select load balancing node */
- backend->info->load_balancing_node = select_load_balancing_node();
+ POOL_SESSION_CONTEXT *session_context;
+ int node_id;
+
+ session_context = pool_get_session_context(false);
+ node_id = select_load_balancing_node();
+
+ for (i=0;i<NUM_BACKENDS;i++)
+ {
+ pool_coninfo(session_context->process_context->proc_id,
+ pool_pool_index(), i)->load_balancing_node = node_id;
+ }
}
for (i=0;i<NUM_BACKENDS;i++)