CUBRID Engine  latest
broker_admin_so.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Search Solution Corporation
3  * Copyright 2016 CUBRID Corporation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 
20 /*
21  * broker_admin_so.h -
22  */
23 
24 #ifndef _BROKER_ADMIN_SO_H_
25 #define _BROKER_ADMIN_SO_H_
26 
27 #ident "$Id$"
28 
29 #include "porting.h"
30 
31 #include <time.h>
32 
33 #if defined(WINDOWS)
34 #define DLL_EXPORT __declspec(dllexport)
35 #else /* WINDOWS */
36 #define DLL_EXPORT
37 #endif /* WINDOWS */
38 
39 #define FLAG_ON 1
40 #define FLAG_OFF 0
41 #define FLAG_SUSPEND 2
42 
43 #define FLAG_READ_WRITE 0
44 #define FLAG_READ_ONLY 1
45 #define FLAG_SLAVE_ONLY 2
46 
47 #if !defined (SRV_CON_DBNAME_SIZE)
48 #define SRV_CON_DBNAME_SIZE 32
49 #endif /* !SRV_CON_DBNAME_SIZE */
50 
52 {
58 };
59 typedef enum t_as_status T_AS_STATUS;
60 
61 typedef struct t_job_info T_JOB_INFO;
62 struct t_job_info
63 {
64  int id;
65  int priority;
66  unsigned char ip[4];
67  time_t recv_time;
68  char script[32];
69  char prgname[32];
70 };
71 
72 typedef struct t_as_info T_AS_INFO;
73 struct t_as_info
74 {
76  int pid;
78  int as_port;
81  int psize;
82  int num_thr;
83  int cpu_time;
84  float pcpu;
85  char clt_ip_addr[20];
86  char clt_appl_name[32];
87  char request_file[64];
88  char log_msg[64];
90  char database_host[CUB_MAXHOSTNAMELEN];
99 };
100 
101 typedef struct t_br_info T_BR_INFO;
102 struct t_br_info
103 {
104  char name[32];
105  char as_type[4];
106  int pid;
107  int shm_id;
108  int port;
109  int num_as;
110  int max_as;
111  int min_as;
113  int num_thr;
114  float pcpu;
115  int cpu_time;
117  int num_req;
118  INT64 num_tran;
119  INT64 num_query;
128  int long_query_time; /* msec */
129  int long_transaction_time; /* msec */
131  char status;
139  char log_dir[128];
140  char slow_log_dir[128];
141 };
142 
145 {
146  const char *name;
147  char *value;
148 };
149 
150 typedef struct t_br_conf T_BR_CONF;
151 struct t_br_conf
152 {
153  int num;
155 };
156 
157 typedef struct t_uc_conf T_UC_CONF;
158 struct t_uc_conf
159 {
164 };
165 
166 typedef char *(*T_UC_VERSION_F) (void);
167 typedef int (*T_UC_START_F) (char *);
168 typedef int (*T_UC_STOP_F) (char *);
169 typedef int (*T_UC_ADD_F) (char *, char *);
170 typedef int (*T_UC_RESTART_F) (char *, int, char *);
171 typedef int (*T_UC_DROP_F) (char *, char *);
172 typedef int (*T_UC_ON_F) (char *, char *);
173 typedef int (*T_UC_OFF_F) (char *, char *);
174 typedef int (*T_UC_SUSPEND_F) (char *, char *);
175 typedef int (*T_UC_RESUME_F) (char *, char *);
176 typedef int (*T_UC_JOB_FIRST_F) (char *, int, char *);
177 typedef int (*T_UC_JOB_QUEUE_F) (char *, char *);
178 typedef int (*T_UC_AS_INFO_F) (char *, T_AS_INFO **, T_JOB_INFO **, int *, char *);
179 typedef int (*T_UC_BR_INFO_F) (T_BR_INFO **, char *);
180 typedef void (*T_UC_INFO_FREE_F) (void *);
181 typedef int (*T_UC_UNICAS_CONF_F) (T_UC_CONF *, int *, char *);
182 typedef void (*T_UC_UNICAS_CONF_FREE_F) (T_UC_CONF *);
183 typedef int (*T_UC_CONF_BROKER_ADD_F) (T_UC_CONF *, char *, char *);
184 typedef void (*T_UC_CHANGE_CONFIG_F) (T_UC_CONF *, const char *, const char *, const char *);
185 typedef int (*T_UC_CHANGER_F) (char *, char *, char *, char *);
186 typedef int (*T_UC_DEL_CAS_LOG_F) (char *, int, char *);
187 typedef int (*T_UC_GET_ACTIVE_SESSION_WITH_OPENED_SHM) (void *, char *);
188 typedef void *(*T_UCA_BROKER_SHM_OPEN) (char *err_msg);
189 typedef int (*T_UCA_GET_BR_NUM_WITH_OPENED_SHM) (void *shm_br, char *err_msg);
190 typedef int (*T_UCA_GET_BR_NAME_WITH_OPENED_SHM) (void *shm_br, int br_index, char *name, int buffer_size,
191  char *err_msg);
192 typedef void *(*T_UCA_AS_SHM_OPEN) (void *shm_br, int br_index, char *err_msg);
193 typedef int (*T_UCA_GET_AS_NUM_WITH_OPENED_SHM) (void *shm_br, int br_index, char *err_msg);
194 typedef int (*T_UCA_GET_AS_REQS_RECEIVED_WITH_OPENED_SHM) (void *shm_as, long long array[], int array_size,
195  char *err_msg);
196 typedef int (*T_UCA_GET_AS_TRAN_PROCESSED_WITH_OPENED_SHM) (void *shm_as, long long array[], int array_size,
197  char *err_msg);
198 typedef int (*T_UCA_GET_AS_QUERY_PROCESSED_WITH_OPENED_SHM) (void *shm_as, long long array[], int array_size,
199  char *err_msg);
200 typedef int (*T_UCA_SHM_DETACH) (void *p);
201 
202 DLL_EXPORT const char *uc_version (void);
203 DLL_EXPORT int uc_start (char *err_msg);
204 DLL_EXPORT int uc_stop (char *err_msg);
205 DLL_EXPORT int uc_add (const char *br_name, char *err_msg);
206 DLL_EXPORT int uc_restart (const char *br_name, int as_index, char *err_msg);
207 DLL_EXPORT int uc_drop (const char *br_name, char *err_msg);
208 DLL_EXPORT int uc_on (const char *br_name, char *err_msg);
209 DLL_EXPORT int uc_off (const char *br_name, char *err_msg);
210 DLL_EXPORT int uc_as_info (const char *br_name, T_AS_INFO ** ret_as_info, T_JOB_INFO ** job_info, int *num_job,
211  char *err_msg);
212 DLL_EXPORT void uc_info_free (void *info);
213 DLL_EXPORT int uc_br_info (T_BR_INFO ** ret_br_info, char *err_msg);
214 DLL_EXPORT int uc_unicas_conf (T_UC_CONF * unicas_conf, int *ret_mst_shmid, char *err_msg);
215 DLL_EXPORT void uc_unicas_conf_free (T_UC_CONF * unicas_conf);
216 DLL_EXPORT int uc_conf_broker_add (T_UC_CONF * unicas_conf, const char *br_name, char *err_msg);
217 DLL_EXPORT void uc_change_config (T_UC_CONF * unicas_conf, const char *br_name, const char *name, const char *value);
218 DLL_EXPORT int uc_changer (const char *br_name, const char *name, const char *value, char *err_msg);
219 DLL_EXPORT int uc_cas_changer (const char *br_name, const char *name, const char *value, int as_number, char *err_msg);
220 DLL_EXPORT int uc_del_cas_log (const char *br_name, int asid, char *errmsg);
222 DLL_EXPORT void *uc_broker_shm_open (char *err_msg);
223 
224 DLL_EXPORT int uc_get_br_num_with_opened_shm (void *shm_br, char *err_msg);
225 DLL_EXPORT int uc_get_br_name_with_opened_shm (void *shm_br, int br_index, char *name, int buffer_size, char *err_msg);
226 DLL_EXPORT void *uc_as_shm_open (void *shm_br, int br_index, char *err_msg);
227 DLL_EXPORT int uc_get_as_num_with_opened_shm (void *shm_br, int br_index, char *err_msg);
228 DLL_EXPORT int uc_get_as_reqs_received_with_opened_shm (void *shm_as, long long array[], int array_size, char *err_msg);
229 DLL_EXPORT int uc_get_as_tran_processed_with_opened_shm (void *shm_as, long long array[], int array_size,
230  char *err_msg);
231 DLL_EXPORT int uc_get_as_query_processed_with_opened_shm (void *shm_as, long long array[], int array_size,
232  char *err_msg);
233 DLL_EXPORT void uc_shm_detach (void *p);
234 
235 #endif /* _BROKER_ADMIN_SO_H_ */
DLL_EXPORT int uc_on(const char *br_name, char *err_msg)
DLL_EXPORT void * uc_as_shm_open(void *shm_br, int br_index, char *err_msg)
time_t recv_time
int(* T_UC_JOB_FIRST_F)(char *, int, char *)
DLL_EXPORT int uc_start(char *err_msg)
DLL_EXPORT const char * uc_version(void)
int(* T_UC_RESUME_F)(char *, char *)
int(* T_UCA_GET_AS_NUM_WITH_OPENED_SHM)(void *shm_br, int br_index, char *err_msg)
int(* T_UCA_GET_AS_TRAN_PROCESSED_WITH_OPENED_SHM)(void *shm_as, long long array[], int array_size, char *err_msg)
DLL_EXPORT int uc_get_br_name_with_opened_shm(void *shm_br, int br_index, char *name, int buffer_size, char *err_msg)
void(* T_UC_CHANGE_CONFIG_F)(T_UC_CONF *, const char *, const char *, const char *)
int(* T_UC_START_F)(char *)
int(* T_UCA_SHM_DETACH)(void *p)
T_AS_STATUS status
unsigned char ip[4]
DLL_EXPORT int uc_del_cas_log(const char *br_name, int asid, char *errmsg)
int(* T_UC_RESTART_F)(char *, int, char *)
T_BR_CONF * br_conf
INT64 num_long_query
DLL_EXPORT int uc_as_info(const char *br_name, T_AS_INFO **ret_as_info, T_JOB_INFO **job_info, int *num_job, char *err_msg)
DLL_EXPORT int uc_changer(const char *br_name, const char *name, const char *value, char *err_msg)
int(* T_UC_ON_F)(char *, char *)
int(* T_UCA_GET_BR_NAME_WITH_OPENED_SHM)(void *shm_br, int br_index, char *name, int buffer_size, char *err_msg)
DLL_EXPORT int uc_cas_changer(const char *br_name, const char *name, const char *value, int as_number, char *err_msg)
const char * name
T_UC_CONF_ITEM * header_conf
#define SRV_CON_DBNAME_SIZE
char auto_add_flag
char keep_connection
int(* T_UC_UNICAS_CONF_F)(T_UC_CONF *, int *, char *)
int(* T_UC_OFF_F)(char *, char *)
DLL_EXPORT void * uc_broker_shm_open(char *err_msg)
char slow_log_mode
int(* T_UC_ADD_F)(char *, char *)
DLL_EXPORT int uc_get_as_reqs_received_with_opened_shm(void *shm_as, long long array[], int array_size, char *err_msg)
char script[32]
INT64 num_interrupts
t_as_status
INT64 num_error_queries
DLL_EXPORT int uc_off(const char *br_name, char *err_msg)
DLL_EXPORT int uc_br_info(T_BR_INFO **ret_br_info, char *err_msg)
int(* T_UC_STOP_F)(char *)
DLL_EXPORT int uc_get_as_query_processed_with_opened_shm(void *shm_as, long long array[], int array_size, char *err_msg)
DLL_EXPORT int uc_unicas_conf(T_UC_CONF *unicas_conf, int *ret_mst_shmid, char *err_msg)
INT64 num_error_query
int(* T_UC_BR_INFO_F)(T_BR_INFO **, char *)
void(* T_UC_UNICAS_CONF_FREE_F)(T_UC_CONF *)
DLL_EXPORT int uc_drop(const char *br_name, char *err_msg)
int(* T_UC_AS_INFO_F)(char *, T_AS_INFO **, T_JOB_INFO **, int *, char *)
int(* T_UCA_GET_AS_QUERY_PROCESSED_WITH_OPENED_SHM)(void *shm_as, long long array[], int array_size, char *err_msg)
DLL_EXPORT void uc_info_free(void *info)
DLL_EXPORT int uc_conf_broker_add(T_UC_CONF *unicas_conf, const char *br_name, char *err_msg)
#define DLL_EXPORT
INT64 num_long_tran
void(* T_UC_INFO_FREE_F)(void *)
int(* T_UC_SUSPEND_F)(char *, char *)
char access_list_flag
INT64 num_requests_received
DLL_EXPORT int uc_stop(char *err_msg)
int(* T_UC_DROP_F)(char *, char *)
char log_backup_flag
int(* T_UC_CHANGER_F)(char *, char *, char *, char *)
static T_SHM_BROKER * shm_br
Definition: broker.c:310
int(* T_UC_GET_ACTIVE_SESSION_WITH_OPENED_SHM)(void *, char *)
int(* T_UCA_GET_AS_REQS_RECEIVED_WITH_OPENED_SHM)(void *shm_as, long long array[], int array_size, char *err_msg)
time_t last_connect_time
DLL_EXPORT int uc_get_as_num_with_opened_shm(void *shm_br, int br_index, char *err_msg)
static int br_index
Definition: broker.c:315
static char database_name[MAX_HA_DBINFO_LENGTH]
Definition: cas_execute.c:387
int long_transaction_time
DLL_EXPORT int uc_get_active_session_with_opened_shm(void *, char *)
DLL_EXPORT void uc_unicas_conf_free(T_UC_CONF *unicas_conf)
T_UC_CONF_ITEM * item
char source_env_flag
enum t_as_status T_AS_STATUS
DLL_EXPORT int uc_get_as_tran_processed_with_opened_shm(void *shm_as, long long array[], int array_size, char *err_msg)
INT64 num_queries_processed
INT64 num_long_transactions
INT64 num_interrupts
DLL_EXPORT int uc_restart(const char *br_name, int as_index, char *err_msg)
INT64 num_transactions_processed
int(* T_UCA_GET_BR_NUM_WITH_OPENED_SHM)(void *shm_br, char *err_msg)
time_t last_access_time
int(* T_UC_CONF_BROKER_ADD_F)(T_UC_CONF *, char *, char *)
DLL_EXPORT int uc_get_br_num_with_opened_shm(void *shm_br, char *err_msg)
char service_flag
INT64 num_long_queries
int(* T_UC_JOB_QUEUE_F)(char *, char *)
char prgname[32]
DLL_EXPORT void uc_change_config(T_UC_CONF *unicas_conf, const char *br_name, const char *name, const char *value)
DLL_EXPORT int uc_add(const char *br_name, char *err_msg)
#define CUB_MAXHOSTNAMELEN
Definition: porting.h:379
int(* T_UC_DEL_CAS_LOG_F)(char *, int, char *)
const char ** p
Definition: dynamic_load.c:945
DLL_EXPORT void uc_shm_detach(void *p)