mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 23:04:20 +01:00
233a33da3a
In "client connect thread", let the client read the port to connect to using ndb_mgm_get_connection_int_parameter. The request for the port is resent on every connect attempt. ndb/include/mgmapi/mgmapi_debug.h: Make ndb_mgm_get_connection_int_parameter return a Uint32 value - this is what Properties etc use, so we'll be consistent. ndb/include/transporter/TransporterRegistry.hpp: Add NdbMgmHandle to constructor. This is used to get the port number to connect to from mgmd. Defaults to NULL, although things will go badly if you don't change this (by calling the new set_mgm_handle method) pretty quickly. Add set_mgm_handle(NdbMgmHandle) method. - sets the MgmHandle to use when requesting from mgmd what port to connect to a node on. ndb/src/common/transporter/Transporter.hpp: Make remote port not a const. Add method to set remote port - set_r_port(unsigned int) Make getLocalNodeId return localNodeId, not remoteNodeId. ndb/src/common/transporter/TransporterRegistry.cpp: TransporterRegistry::TransporterRegistry() - accept NdbMgmHandle parameter - set m_mgm_handle to this TransporterRegistry::start_clients_thread() - If we're connecting to a node, and the server_port (from the config) is <=0, we request the port number to connect to from mgmd. (note: in testing, the <=0 check was commented out so the code was run. There is no harm in always running it, it's just an extra round-trip to mgmd that we may not need). ndb/src/kernel/main.cpp: Set the mgm_handle for globalTransporterRegistry soon after we have set up theConfig (which sets up the mgmHandle). ndb/src/mgmapi/mgmapi.cpp: - Remove dead #else on #if 1 - Print an error message and warning if the parser returns NULL. this will no longer silently fail, it will give output with information to help the programmer find out where things went wrong. In normal operation, this codepath should never be hit. - fix handlers for 'get|set connection parameter' calls. ndb/src/mgmsrv/MgmtSrvr.cpp: - Create TransporterFacade with the mgmHandle. - Don't worry about the order of node1 and node2 in getConnectionDbParameter - use a proper DBUG_RETURN in getConnectionParameter ndb/src/mgmsrv/Services.cpp: - fix reply to 'get connection parameter' - optimise reply size. ndb/src/ndbapi/TransporterFacade.cpp: - create TransporterRegistry with m_mgm_handle - set m_mgm_handle in constructor ndb/src/ndbapi/TransporterFacade.hpp: Introduce m_mgm_handle member. ndb/src/ndbapi/ndb_cluster_connection.cpp: create TransporterFacade (with mgmHandle) after the ConfigRetriever has been created
176 lines
4.7 KiB
C
176 lines
4.7 KiB
C
/* Copyright (C) 2003 MySQL AB
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
#ifndef MGMAPI_DEBUG_H
|
|
#define MGMAPI_DEBUG_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* Start signal logging.
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param nodeId the node Id.
|
|
* @param reply the reply message.
|
|
* @return 0 if successful.
|
|
*/
|
|
int ndb_mgm_start_signallog(NdbMgmHandle handle,
|
|
int nodeId,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
/**
|
|
* Stop signal logging.
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param nodeId the node Id.
|
|
* @param reply the reply message.
|
|
* @return 0 if successful.
|
|
*/
|
|
int ndb_mgm_stop_signallog(NdbMgmHandle handle,
|
|
int nodeId,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
/**
|
|
* Set the signals to log.
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param nodeId the node id.
|
|
* @param mode the signal log mode.
|
|
* @param blockNames the block names (space separated).
|
|
* @param reply the reply message.
|
|
* @return 0 if successful or an error code.
|
|
*/
|
|
int ndb_mgm_log_signals(NdbMgmHandle handle,
|
|
int nodeId,
|
|
enum ndb_mgm_signal_log_mode mode,
|
|
const char* blockNames,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
/**
|
|
* Set trace.
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param nodeId the node id.
|
|
* @param traceNumber the trace number.
|
|
* @param reply the reply message.
|
|
* @return 0 if successful or an error code.
|
|
*/
|
|
int ndb_mgm_set_trace(NdbMgmHandle handle,
|
|
int nodeId,
|
|
int traceNumber,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
/**
|
|
* Provoke an error.
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param nodeId the node id.
|
|
* @param errrorCode the errorCode.
|
|
* @param reply the reply message.
|
|
* @return 0 if successful or an error code.
|
|
*/
|
|
int ndb_mgm_insert_error(NdbMgmHandle handle,
|
|
int nodeId,
|
|
int errorCode,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
/**
|
|
* Dump state
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param nodeId the node id.
|
|
* @param args integer array
|
|
* @param number of args in int array
|
|
* @param reply the reply message.
|
|
* @return 0 if successful or an error code.
|
|
*/
|
|
int ndb_mgm_dump_state(NdbMgmHandle handle,
|
|
int nodeId,
|
|
int * args,
|
|
int num_args,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
|
|
/**
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param nodeId the node id. 0 = all db nodes
|
|
* @param errrorCode the errorCode.
|
|
* @param reply the reply message.
|
|
* @return 0 if successful or an error code.
|
|
*/
|
|
int ndb_mgm_set_int_parameter(NdbMgmHandle handle,
|
|
int node,
|
|
int param,
|
|
unsigned value,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
int ndb_mgm_set_int64_parameter(NdbMgmHandle handle,
|
|
int node,
|
|
int param,
|
|
unsigned long long value,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
int ndb_mgm_set_string_parameter(NdbMgmHandle handle,
|
|
int node,
|
|
int param,
|
|
const char * value,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
/**
|
|
* Set an integer parameter for a connection
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param node1 the node1 id
|
|
* @param node2 the node2 id
|
|
* @param param the parameter (e.g. CFG_CONNECTION_SERVER_PORT)
|
|
* @param value what to set it to
|
|
* @param reply from ndb_mgmd
|
|
*/
|
|
int ndb_mgm_set_connection_int_parameter(NdbMgmHandle handle,
|
|
int node1,
|
|
int node2,
|
|
int param,
|
|
unsigned value,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
/**
|
|
* Get an integer parameter for a connection
|
|
*
|
|
* @param handle the NDB management handle.
|
|
* @param node1 the node1 id
|
|
* @param node2 the node2 id
|
|
* @param param the parameter (e.g. CFG_CONNECTION_SERVER_PORT)
|
|
* @param value where to store the retreived value. In the case of
|
|
* error, value is not changed.
|
|
* @param reply from ndb_mgmd
|
|
* @return 0 on success. < 0 on error.
|
|
*/
|
|
int ndb_mgm_get_connection_int_parameter(NdbMgmHandle handle,
|
|
int node1,
|
|
int node2,
|
|
int param,
|
|
Uint32 *value,
|
|
struct ndb_mgm_reply* reply);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#endif
|