| 1 | /********************************************************************** |
|---|
| 2 | * Copyright (c) 2005-2008 David Carter <dcarter@arm4.org> and others. |
|---|
| 3 | * All rights reserved. This program and the accompanying materials |
|---|
| 4 | * are made available under the terms of the Eclipse Public License v1.0 |
|---|
| 5 | * which accompanies this distribution, and is available at |
|---|
| 6 | * http://www.eclipse.org/legal/epl-v10.html |
|---|
| 7 | * |
|---|
| 8 | * Contributors: |
|---|
| 9 | * David Carter - Initial API and implementation |
|---|
| 10 | **********************************************************************/ |
|---|
| 11 | |
|---|
| 12 | #ifndef BERKELEYDB_H /* Prevent multiple inclusion */ |
|---|
| 13 | #define BERKELEYDB_H 1 |
|---|
| 14 | |
|---|
| 15 | #include <db_cxx.h> |
|---|
| 16 | #include "Arm4dbBackEnd.h" |
|---|
| 17 | |
|---|
| 18 | #define WRAP_EXCEPTION(status,command) \ |
|---|
| 19 | {\ |
|---|
| 20 | try { (status) = (command); } \ |
|---|
| 21 | catch (DbRunRecoveryException r) { panic (r, __FILE__, __LINE__); } \ |
|---|
| 22 | catch (DbException e) { status = e.get_errno (); }\ |
|---|
| 23 | } |
|---|
| 24 | |
|---|
| 25 | #define WRAP_EXCEPTION_STEP(status,command,step) \ |
|---|
| 26 | {\ |
|---|
| 27 | try { (status) = (command); step++; } \ |
|---|
| 28 | catch (DbRunRecoveryException r) { panic (r, __FILE__, __LINE__); } \ |
|---|
| 29 | catch (DbException e) { status = e.get_errno (); }\ |
|---|
| 30 | } |
|---|
| 31 | |
|---|
| 32 | #define MAX_FAILURES (5) |
|---|
| 33 | |
|---|
| 34 | /* The various databases */ |
|---|
| 35 | #define SEQUENCE_DB_NAME "arm4_sequence.db" |
|---|
| 36 | |
|---|
| 37 | #define APPLICATION_DB_NAME "arm4_appl.db" |
|---|
| 38 | #define APPLICATION_NAME_DB_NAME "arm4_appl_name.db" |
|---|
| 39 | #define APPLICATION_IDENTITY_DB_NAME "arm4_appl_identity.db" |
|---|
| 40 | #define APPLICATION_CONTEXT_NAMES_DB_NAME "arm4_appl_context_names.db" |
|---|
| 41 | #define APPLICATION_INSTANCE_DB_NAME "arm4_appl_instance.db" |
|---|
| 42 | #define APPLICATION_INSTANCE_APP_DB_NAME "arm4_appl_instance_app.db" |
|---|
| 43 | #define APPLICATION_GROUP_DB_NAME "arm4_appl_group.db" |
|---|
| 44 | #define APPLICATION_INSTANCE_NAMES_DB_NAME "arm4_appl_instance_names.db" |
|---|
| 45 | #define APPLICATION_CONTEXT_VALUES_DB_NAME "arm4_appl_context_values.db" |
|---|
| 46 | #define APPLICATION_ADDRESS_DB_NAME "arm4_appl_address.db" |
|---|
| 47 | |
|---|
| 48 | #define TRANSACTION_DB_NAME "arm4_tran.db" |
|---|
| 49 | #define TRANSACTION_NAME_DB_NAME "arm4_tran_name.db" |
|---|
| 50 | #define TRANSACTION_APPID_DB_NAME "arm4_tran_appid.db" |
|---|
| 51 | #define TRANSACTION_IDENTITY_DB_NAME "arm4_tran_identity.db" |
|---|
| 52 | #define TRANSACTION_CONTEXT_NAMES_DB_NAME "arm4_tran_context_names.db" |
|---|
| 53 | #define TRANSACTION_IDENTITY_URI_DB_NAME "arm4_tran_identity_uri.db" |
|---|
| 54 | #define TRANSACTION_METRIC_BINDING_DB_NAME "arm4_tran_metric_binding.db" |
|---|
| 55 | #define TRANSACTION_INSTANCE_DB_NAME "arm4_tran_instance.db" |
|---|
| 56 | #define TRANSACTION_INSTANCE_TRANID_DB_NAME "arm4_tran_instance_tranid.db" |
|---|
| 57 | #define TRANSACTION_INSTANCE_APP_HANDLE_DB_NAME "arm4_tran_instance_app_handle.db" |
|---|
| 58 | #define TRANSACTION_CONTEXT_VALUES_DB_NAME "arm4_tran_context_values.db" |
|---|
| 59 | #define TRANSACTION_CONTEXT_URI_DB_NAME "arm4_tran_context_uri.db" |
|---|
| 60 | #define TRANSACTION_CONTEXT_METRIC_VALUE_DB_NAME "arm4_tran_context_metric_value.db" |
|---|
| 61 | #define TRANSACTION_CONTEXT_USER_DB_NAME "arm4_tran_context_user.db" |
|---|
| 62 | #define TRANSACTION_CONTEXT_DIAG_DB_NAME "arm4_tran_context_diag.db" |
|---|
| 63 | |
|---|
| 64 | #define METRIC_DB_NAME "arm4_metric.db" |
|---|
| 65 | #define METRIC_NAME_DB_NAME "arm4_metric_name.db" |
|---|
| 66 | #define METRIC_APPID_DB_NAME "arm4_metric_appid.db" |
|---|
| 67 | |
|---|
| 68 | #define CORRELATOR_PARENT_DB_NAME "arm4_correlator_parent.db" |
|---|
| 69 | #define CORRELATOR_CURRENT_DB_NAME "arm4_correlator_current.db" |
|---|
| 70 | |
|---|
| 71 | #define TRACE_STAT_DB_NAME "arm4_trace_stat.db" |
|---|
| 72 | #define APPDEX_STAT_DB_NAME "arm4_appdex_stat.db" |
|---|
| 73 | |
|---|
| 74 | |
|---|
| 75 | class BerkeleyDB : public Arm4dbBackEnd |
|---|
| 76 | { |
|---|
| 77 | public: |
|---|
| 78 | /* Constructors */ |
|---|
| 79 | BerkeleyDB (); |
|---|
| 80 | |
|---|
| 81 | /* Destructors */ |
|---|
| 82 | virtual ~BerkeleyDB (); |
|---|
| 83 | |
|---|
| 84 | /* Accessors */ |
|---|
| 85 | |
|---|
| 86 | /* Mutators */ |
|---|
| 87 | |
|---|
| 88 | /* Operations */ |
|---|
| 89 | void initializeLibrary (void); |
|---|
| 90 | void initializeThread (void); |
|---|
| 91 | |
|---|
| 92 | arm_error_t openDatabases (void); |
|---|
| 93 | arm_error_t openDatabasesReadOnly (void); |
|---|
| 94 | arm_error_t closeDatabasesNoLock (void); |
|---|
| 95 | |
|---|
| 96 | arm_error_t initializeSequences (arm4_shm_header_t *header_ptr); |
|---|
| 97 | |
|---|
| 98 | arm_error_t processApplicationInstances (const arm4_shm_application_instance_t *app_instance_ptr); |
|---|
| 99 | arm_error_t processApplicationGroup (const arm4_shm_property_t *group_ptr); |
|---|
| 100 | arm_error_t processApplicationInstanceId (const arm4_shm_property_t *property_ptr); |
|---|
| 101 | arm_error_t processApplicationContext (const arm4_shm_context_property_t *property_ptr); |
|---|
| 102 | arm_error_t processApplicationAddress (const arm4_shm_address_t *address_ptr); |
|---|
| 103 | arm_error_t processTransactionInstances (const arm4_shm_transaction_instance_t *tran_instance_ptr); |
|---|
| 104 | arm_error_t processTransactionContext (const arm4_shm_context_property_t *property_ptr); |
|---|
| 105 | arm_error_t processTransactionUri (const arm4_shm_uri_t *uri_ptr); |
|---|
| 106 | arm_error_t processTransactionMetricValue (const arm4_shm_metric_value_t *metric_ptr); |
|---|
| 107 | arm_error_t processTransactionUser (const arm4_shm_user_t *user_ptr); |
|---|
| 108 | arm_error_t processTransactionDiag (const arm4_shm_diag_t *diag_ptr); |
|---|
| 109 | arm_error_t processCorrelators (const arm4_shm_correlator_t *correlator_ptr); |
|---|
| 110 | arm_error_t processSequence (const arm4_shm_db_sequence_t *sequence_ptr); |
|---|
| 111 | arm_error_t processRegisterApplication (const arm4_shm_register_application_t *application_ptr, |
|---|
| 112 | arm_id_t *appid_ptr, |
|---|
| 113 | arm_boolean_t *is_new_ptr); |
|---|
| 114 | arm_error_t processRegisterApplicationIdentity (const arm4_shm_register_application_identity_t *identity_ptr); |
|---|
| 115 | arm_error_t processRegisterApplicationContext (const arm4_shm_register_application_context_t *context_ptr); |
|---|
| 116 | arm_error_t processRegisterTransaction (const arm4_shm_register_transaction_t *transaction_ptr, |
|---|
| 117 | arm_id_t *tranid_ptr, |
|---|
| 118 | arm_boolean_t *is_new_ptr); |
|---|
| 119 | arm_error_t processRegisterTransactionIdentity (const arm4_shm_register_application_identity_t *identity_ptr); |
|---|
| 120 | arm_error_t processRegisterTransactionContext (const arm4_shm_register_application_context_t *context_ptr); |
|---|
| 121 | arm_error_t processRegisterTransactionUri (const arm4_shm_register_transaction_uri_t *uri_ptr); |
|---|
| 122 | arm_error_t processRegisterTransactionMetricBinding (const arm4_shm_register_transaction_metric_t *metric_ptr); |
|---|
| 123 | arm_error_t processRegisterMetric (arm4_shm_register_metric_t *metric_ptr, |
|---|
| 124 | arm_id_t *metricid_ptr); |
|---|
| 125 | arm_error_t processTraceStats (arm_time_t sample_time, arm4db_transaction_trace_stats_t *stats_ptr, int transaction_count); |
|---|
| 126 | |
|---|
| 127 | void saveApplicationDefinition (const arm_id_t &appl_id, const application_record_t &application); |
|---|
| 128 | void saveApplicationIdentity (const arm_id_t &appl_id, const property_record_t &property); |
|---|
| 129 | void saveApplicationContext (const arm_id_t &appl_id, const indexed_property_name_record_t &property); |
|---|
| 130 | |
|---|
| 131 | void saveMetricDefinition (const arm_id_t &metric_id, const metric_record_t &metric); |
|---|
| 132 | |
|---|
| 133 | void saveTransactionDefinition (const arm_id_t &tran_id, const transaction_record_t &transaction); |
|---|
| 134 | void saveTransactionIdentity (const arm_id_t &tran_id, const property_record_t &property); |
|---|
| 135 | void saveTransactionContext (const arm_id_t &tran_id, const indexed_property_name_record_t &property); |
|---|
| 136 | void saveTransactionUri (const arm_id_t &tran_id, const char *uri_ptr); |
|---|
| 137 | void saveTransactionMetric (const arm_id_t &tran_id, const arm_metric_binding_t &binding); |
|---|
| 138 | |
|---|
| 139 | void saveApplicationInstance (const arm_app_start_handle_t app_handle, const application_instance_record_t &application); |
|---|
| 140 | void saveAppInstanceContextValue (const arm_app_start_handle_t app_handle, const indexed_property_value_record_t &property); |
|---|
| 141 | void saveAppInstanceGroup (const arm_app_start_handle_t app_handle, const char *group_ptr); |
|---|
| 142 | void saveAppInstanceName (const arm_app_start_handle_t app_handle, const char *name_ptr); |
|---|
| 143 | void saveAppInstanceAddress (const arm_app_start_handle_t app_handle, const application_address_record_t &address_value); |
|---|
| 144 | |
|---|
| 145 | void saveTransactionInstance (const arm_tran_start_handle_t tran_handle, const transaction_instance_record_t &transaction); |
|---|
| 146 | void saveTranInstanceContextValue (const arm_tran_start_handle_t tran_handle, const indexed_property_value_record_t &property); |
|---|
| 147 | void saveTranInstanceMetricValue (const arm_tran_start_handle_t tran_handle, const metric_value_record_t &metric); |
|---|
| 148 | void saveTranInstanceUri (const arm_tran_start_handle_t tran_handle, const char *uri_ptr); |
|---|
| 149 | void saveTranInstanceUser (const arm_tran_start_handle_t tran_handle, const user_record_t &user); |
|---|
| 150 | void saveTranInstanceDiag (const arm_tran_start_handle_t tran_handle, const char *diag_ptr); |
|---|
| 151 | void saveTranCorrelator (const arm_tran_start_handle_t tran_handle, const arm_correlator_t *correlator_ptr); |
|---|
| 152 | void saveTranParentCorrelator (const arm_tran_start_handle_t tran_handle, const arm_correlator_t *correlator_ptr); |
|---|
| 153 | |
|---|
| 154 | void saveTraceStats (const arm_time_t sample_time, const arm4db_transaction_trace_stats_t &trace_stats); |
|---|
| 155 | |
|---|
| 156 | /* Checkpoint the database transactions */ |
|---|
| 157 | virtual void checkpoint (void); |
|---|
| 158 | |
|---|
| 159 | /* Get transaction stats */ |
|---|
| 160 | virtual void *getStats (void); |
|---|
| 161 | |
|---|
| 162 | /* Debugging routines */ |
|---|
| 163 | virtual void dump (void) const; |
|---|
| 164 | |
|---|
| 165 | /* Database backup and rollover */ |
|---|
| 166 | virtual void backup (void); |
|---|
| 167 | |
|---|
| 168 | /* Reporting functions */ |
|---|
| 169 | virtual void printSummaries (void) const; |
|---|
| 170 | virtual void printTransactions (void) const; |
|---|
| 171 | |
|---|
| 172 | virtual std::list<arm_id_t> *getApplicationList (void); |
|---|
| 173 | virtual std::list<arm_id_t> *getTransactionList (void); |
|---|
| 174 | virtual std::list<arm_id_t> *getTransactionList (const arm_id_t &app_id); |
|---|
| 175 | virtual std::list<arm_tran_start_handle_t> *getTransactionInstanceList (const arm_id_t &tran_id); |
|---|
| 176 | virtual int getApplicationCount (void); |
|---|
| 177 | virtual int getTransactionCount (void); |
|---|
| 178 | virtual int getTransactionCount (const arm_id_t &app_id); |
|---|
| 179 | |
|---|
| 180 | virtual arm_error_t getApplicationInformation (const arm_id_t &app_id, arm4db_application_summary_t *summary_ptr); |
|---|
| 181 | virtual arm_error_t getTransactionInformation (const arm_id_t &tran_id, arm4db_transaction_summary_t *summary_ptr); |
|---|
| 182 | virtual const arm_correlator_t *getCorrelator (arm_tran_start_handle_t tran_handle, arm_correlator_t *correlator_ptr); |
|---|
| 183 | virtual const arm_correlator_t *getParentCorrelator (arm_tran_start_handle_t tran_handle, arm_correlator_t *correlator_ptr); |
|---|
| 184 | |
|---|
| 185 | virtual void setTransactionTraceInformation (const arm_id_t &tran_id, const arm4db_transaction_summary_t &summary); |
|---|
| 186 | |
|---|
| 187 | virtual std::ostream& exportApplicationDefinitions (std::ostream &os) const; |
|---|
| 188 | virtual std::ostream& exportTransactionDefinitions (std::ostream &os) const; |
|---|
| 189 | virtual std::ostream& exportMetricDefinitions (std::ostream &os) const; |
|---|
| 190 | virtual std::ostream& exportApplications (std::ostream &os) const; |
|---|
| 191 | virtual std::ostream& exportTransactions (std::ostream &os) const; |
|---|
| 192 | virtual std::ostream& exportTraceStats (std::ostream &os) const; |
|---|
| 193 | |
|---|
| 194 | /* Operators */ |
|---|
| 195 | |
|---|
| 196 | private: |
|---|
| 197 | /* Mark these as private to prevent their use */ |
|---|
| 198 | BerkeleyDB (const Arm4db &); |
|---|
| 199 | BerkeleyDB &operator= (const Arm4db &); |
|---|
| 200 | |
|---|
| 201 | const Arm4dbConfig &getConfig (void) { return Arm4dbConfig::getConfig (); } |
|---|
| 202 | |
|---|
| 203 | static void panic (const DbRunRecoveryException &r, const char *file, int line); |
|---|
| 204 | static void panic (const DbException &e, const char *file, int line); |
|---|
| 205 | |
|---|
| 206 | int openEnvironment (int flags); |
|---|
| 207 | int openDatabaseWithTxn (Db **db_ptr, |
|---|
| 208 | const char *db_name_ptr, |
|---|
| 209 | int flags, |
|---|
| 210 | DbTxn *transaction_ptr); |
|---|
| 211 | int openDatabase (Db **db_ptr, |
|---|
| 212 | const char *db_name_ptr, |
|---|
| 213 | int flags); |
|---|
| 214 | void close_database (Db **database_pptr); |
|---|
| 215 | |
|---|
| 216 | /* Association methods */ |
|---|
| 217 | static int get_application_name (Db *db_ptr, |
|---|
| 218 | const Dbt *primary_key_ptr, |
|---|
| 219 | const Dbt *primary_data_ptr, |
|---|
| 220 | Dbt *secondary_key_ptr); |
|---|
| 221 | static int get_application_instance_app (Db *db_ptr, |
|---|
| 222 | const Dbt *primary_key_ptr, |
|---|
| 223 | const Dbt *primary_data_ptr, |
|---|
| 224 | Dbt *secondary_key_ptr); |
|---|
| 225 | static int get_transaction_name (Db *db_ptr, |
|---|
| 226 | const Dbt *primary_key_ptr, |
|---|
| 227 | const Dbt *primary_data_ptr, |
|---|
| 228 | Dbt *secondary_key_ptr); |
|---|
| 229 | static int get_transaction_appid (Db *db_ptr, |
|---|
| 230 | const Dbt *primary_key_ptr, |
|---|
| 231 | const Dbt *primary_data_ptr, |
|---|
| 232 | Dbt *secondary_key_ptr); |
|---|
| 233 | static int get_tran_instance_tranid (Db *db_ptr, |
|---|
| 234 | const Dbt *primary_key_ptr, |
|---|
| 235 | const Dbt *primary_data_ptr, |
|---|
| 236 | Dbt *secondary_key_ptr); |
|---|
| 237 | static int get_tran_instance_app_handle (Db *db_ptr, |
|---|
| 238 | const Dbt *primary_key_ptr, |
|---|
| 239 | const Dbt *primary_data_ptr, |
|---|
| 240 | Dbt *secondary_key_ptr); |
|---|
| 241 | static int get_metric_name (Db *db_ptr, |
|---|
| 242 | const Dbt *primary_key_ptr, |
|---|
| 243 | const Dbt *primary_data_ptr, |
|---|
| 244 | Dbt *secondary_key_ptr); |
|---|
| 245 | static int get_metric_appid (Db *db_ptr, |
|---|
| 246 | const Dbt *primary_key_ptr, |
|---|
| 247 | const Dbt *primary_data_ptr, |
|---|
| 248 | Dbt *secondary_key_ptr); |
|---|
| 249 | |
|---|
| 250 | int openApplicationDatabase (int flags); |
|---|
| 251 | int openApplicationInstanceDatabase (int flags); |
|---|
| 252 | int openTransactionDatabase (int flags); |
|---|
| 253 | int openTransactionInstanceDatabase (int flags); |
|---|
| 254 | int openMetricDatabase (int flags); |
|---|
| 255 | arm_error_t openDatabasesNoLock (int flags); |
|---|
| 256 | |
|---|
| 257 | int process_application_instances_txn (const arm4_shm_application_instance_t *entry_ptr); |
|---|
| 258 | int process_application_group_txn (const arm4_shm_property_t *group_ptr); |
|---|
| 259 | int process_application_instance_id_txn (const arm4_shm_property_t *property_ptr); |
|---|
| 260 | int process_application_context_txn (const arm4_shm_context_property_t *property_ptr); |
|---|
| 261 | int process_application_address_txn (const arm4_shm_address_t *address_ptr); |
|---|
| 262 | int process_transaction_instances_txn (const arm4_shm_transaction_instance_t *entry_ptr); |
|---|
| 263 | int process_transaction_context_txn (const arm4_shm_context_property_t *property_ptr); |
|---|
| 264 | int process_transaction_uri_txn (const arm4_shm_uri_t *property_ptr); |
|---|
| 265 | int process_transaction_metric_value_txn (const arm4_shm_metric_value_t *metric_ptr); |
|---|
| 266 | int process_transaction_user_txn (const arm4_shm_user_t *user_ptr); |
|---|
| 267 | int process_transaction_diag_txn (const arm4_shm_diag_t *diag_ptr); |
|---|
| 268 | int process_correlator_txn (const arm4_shm_correlator_t *correlator_ptr); |
|---|
| 269 | int process_sequence_txn (const arm4_shm_db_sequence_t *sequence_ptr); |
|---|
| 270 | int process_register_application_txn (const unsigned char *digest_ptr, |
|---|
| 271 | const char *application_name_ptr, |
|---|
| 272 | const arm_charset_t charset, |
|---|
| 273 | arm_id_t *output_app_id, |
|---|
| 274 | arm_boolean_t *is_new_ptr); |
|---|
| 275 | int process_register_application_identity_txn (const arm4_shm_register_application_identity_t *identity_ptr); |
|---|
| 276 | int process_register_application_context_txn (const arm4_shm_register_application_context_t *context_ptr); |
|---|
| 277 | int process_register_transaction_txn (const arm4_shm_register_transaction_t *transaction_ptr, |
|---|
| 278 | arm_id_t *output_tran_id, |
|---|
| 279 | arm_boolean_t *is_new_ptr); |
|---|
| 280 | int process_register_transaction_identity_txn (const arm4_shm_register_application_identity_t *identity_ptr); |
|---|
| 281 | int process_register_transaction_context_txn (const arm4_shm_register_application_context_t *context_ptr); |
|---|
| 282 | int process_register_transaction_uri_txn (const arm4_shm_register_transaction_uri_t *uri_ptr); |
|---|
| 283 | int process_register_transaction_metric_binding_txn (const arm4_shm_register_transaction_metric_t *metric_ptr); |
|---|
| 284 | int process_register_metric_txn (const unsigned char *digest_ptr, |
|---|
| 285 | const char *metric_name_ptr, |
|---|
| 286 | const arm_id_t *app_id, |
|---|
| 287 | const char *metric_units_ptr, |
|---|
| 288 | const arm_metric_format_t metric_format, |
|---|
| 289 | const arm_metric_usage_t metric_usage, |
|---|
| 290 | arm_id_t *output_metric_id); |
|---|
| 291 | int process_trace_stats_txn (arm_time_t sample_time, arm4db_transaction_trace_stats_t *stats_ptr); |
|---|
| 292 | |
|---|
| 293 | int initialize_sequence (int index, arm4_shm_header_t *header_ptr); |
|---|
| 294 | |
|---|
| 295 | void dump_sequence (void) const; |
|---|
| 296 | void dump_application (void) const; |
|---|
| 297 | void dump_application_identity (void) const; |
|---|
| 298 | void dump_application_context_names (void) const; |
|---|
| 299 | void dump_application_instance (void) const; |
|---|
| 300 | void dump_application_group (void) const; |
|---|
| 301 | void dump_application_instance_names (void) const; |
|---|
| 302 | void dump_application_context_values (void) const; |
|---|
| 303 | void dump_application_address (void) const; |
|---|
| 304 | void dump_transaction (void) const; |
|---|
| 305 | void dump_transaction_identity (void) const; |
|---|
| 306 | void dump_transaction_context_names (void) const; |
|---|
| 307 | void dump_transaction_identity_uri (void) const; |
|---|
| 308 | void dump_transaction_metric_binding (void) const; |
|---|
| 309 | void dump_transaction_instance (void) const; |
|---|
| 310 | void dump_transaction_context_values (void) const; |
|---|
| 311 | void dump_transaction_context_uri (void) const; |
|---|
| 312 | void dump_transaction_context_metric_value (void) const; |
|---|
| 313 | void dump_transaction_context_user (void) const; |
|---|
| 314 | void dump_transaction_context_diag (void) const; |
|---|
| 315 | void dump_metric (void) const; |
|---|
| 316 | |
|---|
| 317 | std::ostream& export_application_definition (std::ostream &os, const arm_id_t &appl_id, const application_record_t &application) const; |
|---|
| 318 | std::ostream& export_application_identity (std::ostream &os, const arm_id_t &appl_id) const; |
|---|
| 319 | std::ostream& export_application_context_names (std::ostream &os, const arm_id_t &appl_id) const; |
|---|
| 320 | |
|---|
| 321 | std::ostream& export_transaction_identity (std::ostream &os, const arm_id_t &tran_id) const; |
|---|
| 322 | std::ostream& export_transaction_context (std::ostream &os, const arm_id_t &tran_id) const; |
|---|
| 323 | std::ostream& export_transaction_uri (std::ostream &os, const arm_id_t &tran_id) const; |
|---|
| 324 | std::ostream& export_transaction_metric_binding (std::ostream &os, const arm_id_t &tran_id) const; |
|---|
| 325 | |
|---|
| 326 | std::ostream& exportApplicationGroup (std::ostream &os, arm_app_start_handle_t app_handle) const; |
|---|
| 327 | std::ostream& exportApplicationInstanceNames (std::ostream &os, arm_app_start_handle_t app_handle) const; |
|---|
| 328 | std::ostream& exportApplicationContextValues (std::ostream &os, arm_app_start_handle_t app_handle) const; |
|---|
| 329 | std::ostream& exportApplicationAddress (std::ostream &os, arm_app_start_handle_t app_handle) const; |
|---|
| 330 | |
|---|
| 331 | std::ostream& exportTransactionContextValues (std::ostream &os, arm_tran_start_handle_t tran_handle) const; |
|---|
| 332 | std::ostream& exportTransactionContextUri (std::ostream &os, arm_tran_start_handle_t tran_handle) const; |
|---|
| 333 | std::ostream& exportTransactionContextMetricValue (std::ostream &os, arm_tran_start_handle_t tran_handle) const; |
|---|
| 334 | std::ostream& exportTransactionContextUser (std::ostream &os, arm_tran_start_handle_t tran_handle) const; |
|---|
| 335 | std::ostream& exportTransactionContextDiag (std::ostream &os, arm_tran_start_handle_t tran_handle) const; |
|---|
| 336 | std::ostream& exportParentCorrelator (std::ostream &os, arm_tran_start_handle_t tran_handle) const; |
|---|
| 337 | std::ostream& exportCorrelator (std::ostream &os, arm_tran_start_handle_t tran_handle) const; |
|---|
| 338 | |
|---|
| 339 | arm_error_t copyDatabases (void); |
|---|
| 340 | void destroyInstanceDatabase (const char *name_ptr); |
|---|
| 341 | void destroyInstanceDatabases (void); |
|---|
| 342 | |
|---|
| 343 | void find_and_print_correlators (arm_tran_start_handle_t tran_handle) const; |
|---|
| 344 | void find_and_print_metric_values (arm_tran_start_handle_t tran_handle) const; |
|---|
| 345 | void find_and_print_user_values (arm_tran_start_handle_t tran_handle) const; |
|---|
| 346 | void find_and_print_diag_values (arm_tran_start_handle_t tran_handle) const; |
|---|
| 347 | int find_application (application_record_t *application_ptr, |
|---|
| 348 | const arm_id_t *appl_id) const; |
|---|
| 349 | int find_transaction (transaction_record_t *transaction_ptr, |
|---|
| 350 | const arm_id_t *transaction_instance_ptr) const; |
|---|
| 351 | void print_transaction_metadata (const arm_id_t *tran_id) const; |
|---|
| 352 | void print_trace_stats (const arm_id_t *tran_id) const; |
|---|
| 353 | arm_error_t summarize_transaction (const arm_id_t *tran_id) const; |
|---|
| 354 | void print_application_metadata (const arm_id_t *appl_id) const; |
|---|
| 355 | arm_error_t summarize_application (const arm_id_t *appl_id, const application_record_t *application_ptr) const; |
|---|
| 356 | |
|---|
| 357 | int save (Db *db_ptr, const void *key_ptr, size_t key_size, const void *data_ptr, size_t data_size); |
|---|
| 358 | int save (Db *db_ptr, const void *key_ptr, size_t key_size, const char *data_ptr); |
|---|
| 359 | |
|---|
| 360 | DbEnv *m_environmentPtr; |
|---|
| 361 | |
|---|
| 362 | /* The database objects */ |
|---|
| 363 | Db *db_sequence_ptr; |
|---|
| 364 | |
|---|
| 365 | Db *db_application_ptr; |
|---|
| 366 | Db *db_application_name_ptr; |
|---|
| 367 | Db *db_application_identity_ptr; |
|---|
| 368 | Db *db_application_context_names_ptr; |
|---|
| 369 | Db *db_application_instance_ptr; |
|---|
| 370 | Db *db_application_instance_app_ptr; |
|---|
| 371 | Db *db_application_group_ptr; |
|---|
| 372 | Db *db_application_instance_names_ptr; |
|---|
| 373 | Db *db_application_context_values_ptr; |
|---|
| 374 | Db *db_application_address_ptr; |
|---|
| 375 | |
|---|
| 376 | Db *db_transaction_ptr; |
|---|
| 377 | Db *db_transaction_name_ptr; |
|---|
| 378 | Db *db_transaction_appid_ptr; |
|---|
| 379 | Db *db_transaction_identity_ptr; |
|---|
| 380 | Db *db_transaction_context_names_ptr; |
|---|
| 381 | Db *db_transaction_identity_uri_ptr; |
|---|
| 382 | Db *db_transaction_metric_binding_ptr; |
|---|
| 383 | Db *db_transaction_instance_ptr; |
|---|
| 384 | Db *db_transaction_instance_tranid_ptr; |
|---|
| 385 | Db *db_transaction_instance_app_handle_ptr; |
|---|
| 386 | Db *db_transaction_context_values_ptr; |
|---|
| 387 | Db *db_transaction_context_uri_ptr; |
|---|
| 388 | Db *db_transaction_context_metric_value_ptr; |
|---|
| 389 | Db *db_transaction_context_user_ptr; |
|---|
| 390 | Db *db_transaction_context_diag_ptr; |
|---|
| 391 | |
|---|
| 392 | Db *db_metric_ptr; |
|---|
| 393 | Db *db_metric_name_ptr; |
|---|
| 394 | Db *db_metric_appid_ptr; |
|---|
| 395 | |
|---|
| 396 | Db *db_parent_correlator_ptr; |
|---|
| 397 | Db *db_current_correlator_ptr; |
|---|
| 398 | |
|---|
| 399 | Db *db_trace_stat_ptr; |
|---|
| 400 | Db *db_appdex_stat_ptr; |
|---|
| 401 | }; |
|---|
| 402 | |
|---|
| 403 | #endif /* BERKELEYDB_H */ |
|---|