diff options
Diffstat (limited to 'src/rep/rep_stat.c')
-rw-r--r-- | src/rep/rep_stat.c | 76 |
1 files changed, 47 insertions, 29 deletions
diff --git a/src/rep/rep_stat.c b/src/rep/rep_stat.c index addfee25..ffb9f262 100644 --- a/src/rep/rep_stat.c +++ b/src/rep/rep_stat.c @@ -1,7 +1,7 @@ /*- * See the file LICENSE for redistribution information. * - * Copyright (c) 2001, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2015 Oracle and/or its affiliates. All rights reserved. * * $Id$ */ @@ -73,6 +73,13 @@ static const char *__rep_syncstate_to_string __P((repsync_t)); } \ } while (0) +#define PRINT_VIEW(sp) do { \ + if ((sp)->st_view != 0) \ + __db_msg(env, "Environment configured as view site"); \ + else \ + __db_msg(env, "Environment not configured as view site");\ +} while (0) + /* * __rep_stat_pp -- * ENV->rep_stat pre/post processing. @@ -120,7 +127,7 @@ __rep_stat(env, statp, flags) DB_REP_STAT *stats; LOG *lp; REP *rep; - u_int32_t startupdone; + u_int32_t startupdone, view; uintmax_t queued; int dolock, ret; @@ -177,10 +184,12 @@ __rep_stat(env, statp, flags) if (LF_ISSET(DB_STAT_CLEAR)) { queued = rep->stat.st_log_queued; startupdone = rep->stat.st_startup_complete; + view = rep->stat.st_view; memset(&rep->stat, 0, sizeof(rep->stat)); rep->stat.st_log_queued = rep->stat.st_log_queued_total = rep->stat.st_log_queued_max = queued; rep->stat.st_startup_complete = startupdone; + rep->stat.st_view = view; } /* @@ -377,6 +386,7 @@ __rep_print_stats(env, flags) __db_dl(env, "Number of page records missed and requested", (u_long)sp->st_pg_requested); PRINT_STARTUPCOMPLETE(sp); + PRINT_VIEW(sp); __db_dl(env, "Number of transactions applied", (u_long)sp->st_txns_applied); @@ -462,16 +472,20 @@ __rep_print_all(env, flags) u_int32_t flags; { static const FN rep_cfn[] = { - { REP_C_2SITE_STRICT, "REP_C_2SITE_STRICT" }, - { REP_C_AUTOINIT, "REP_C_AUTOINIT" }, - { REP_C_AUTOROLLBACK, "REP_C_AUTOROLLBACK" }, - { REP_C_BULK, "REP_C_BULK" }, - { REP_C_DELAYCLIENT, "REP_C_DELAYCLIENT" }, - { REP_C_ELECTIONS, "REP_C_ELECTIONS" }, - { REP_C_INMEM, "REP_C_INMEM" }, - { REP_C_LEASE, "REP_C_LEASE" }, - { REP_C_NOWAIT, "REP_C_NOWAIT" }, - { 0, NULL } + { REP_C_2SITE_STRICT, "REP_C_2SITE_STRICT" }, + { REP_C_AUTOINIT, "REP_C_AUTOINIT" }, + { REP_C_AUTOROLLBACK, "REP_C_AUTOROLLBACK" }, + { REP_C_AUTOTAKEOVER, "REP_C_AUTOTAKEOVER" }, + { REP_C_BULK, "REP_C_BULK" }, + { REP_C_DELAYCLIENT, "REP_C_DELAYCLIENT" }, + { REP_C_ELECT_LOGLENGTH, "REP_C_ELECT_LOGLENGTH" }, + { REP_C_ELECTIONS, "REP_C_ELECTIONS" }, + { REP_C_INMEM, "REP_C_INMEM" }, + { REP_C_LEASE, "REP_C_LEASE" }, + { REP_C_NOWAIT, "REP_C_NOWAIT" }, + { REP_C_PREFMAS_CLIENT, "REP_C_PREFMAS_CLIENT" }, + { REP_C_PREFMAS_MASTER, "REP_C_PREFMAS_MASTER" }, + { 0, NULL } }; static const FN rep_efn[] = { { REP_E_PHASE0, "REP_E_PHASE0" }, @@ -481,19 +495,21 @@ __rep_print_all(env, flags) { 0, NULL } }; static const FN rep_fn[] = { - { REP_F_ABBREVIATED, "REP_F_ABBREVIATED" }, - { REP_F_APP_BASEAPI, "REP_F_APP_BASEAPI" }, - { REP_F_APP_REPMGR, "REP_F_APP_REPMGR" }, - { REP_F_CLIENT, "REP_F_CLIENT" }, - { REP_F_DELAY, "REP_F_DELAY" }, - { REP_F_GROUP_ESTD, "REP_F_GROUP_ESTD" }, - { REP_F_LEASE_EXPIRED, "REP_F_LEASE_EXPIRED" }, - { REP_F_MASTER, "REP_F_MASTER" }, - { REP_F_MASTERELECT, "REP_F_MASTERELECT" }, - { REP_F_NEWFILE, "REP_F_NEWFILE" }, - { REP_F_NIMDBS_LOADED, "REP_F_NIMDBS_LOADED" }, - { REP_F_SKIPPED_APPLY, "REP_F_SKIPPED_APPLY" }, - { REP_F_START_CALLED, "REP_F_START_CALLED" }, + { REP_F_ABBREVIATED, "REP_F_ABBREVIATED" }, + { REP_F_APP_BASEAPI, "REP_F_APP_BASEAPI" }, + { REP_F_APP_REPMGR, "REP_F_APP_REPMGR" }, + { REP_F_CLIENT, "REP_F_CLIENT" }, + { REP_F_DELAY, "REP_F_DELAY" }, + { REP_F_GROUP_ESTD, "REP_F_GROUP_ESTD" }, + { REP_F_HOLD_GEN, "REP_F_HOLD_GEN" }, + { REP_F_LEASE_EXPIRED, "REP_F_LEASE_EXPIRED" }, + { REP_F_MASTER, "REP_F_MASTER" }, + { REP_F_MASTERELECT, "REP_F_MASTERELECT" }, + { REP_F_NEWFILE, "REP_F_NEWFILE" }, + { REP_F_NIMDBS_LOADED, "REP_F_NIMDBS_LOADED" }, + { REP_F_READONLY_MASTER, "REP_F_READONLY_MASTER" }, + { REP_F_SKIPPED_APPLY, "REP_F_SKIPPED_APPLY" }, + { REP_F_START_CALLED, "REP_F_START_CALLED" }, { 0, NULL } }; static const FN rep_lfn[] = { @@ -523,15 +539,16 @@ __rep_print_all(env, flags) rep = db_rep->region; infop = env->reginfo; renv = infop->primary; - ENV_ENTER(env, ip); __db_msg(env, "%s", DB_GLOBAL(db_line)); __db_msg(env, "DB_REP handle information:"); if (db_rep->rep_db == NULL) STAT_ISSET("Bookkeeping database", db_rep->rep_db); - else + else { + ENV_GET_THREAD_INFO(env, ip); (void)__db_stat_print(db_rep->rep_db, ip, flags); + } __db_prflags(env, NULL, db_rep->flags, dbrep_fn, NULL, "\tFlags"); @@ -604,7 +621,6 @@ __rep_print_all(env, flags) STAT_LONG("Maximum lease timestamp microseconds", lp->max_lease_ts.tv_nsec / NS_PER_US); MUTEX_UNLOCK(env, rep->mtx_clientdb); - ENV_LEAVE(env, ip); return (0); } @@ -648,8 +664,10 @@ __rep_stat_summary_print(env) ret = 0; if ((ret = __rep_stat(env, &sp, 0)) == 0) { PRINT_STATUS(sp, is_client); - if (is_client) + if (is_client) { PRINT_STARTUPCOMPLETE(sp); + PRINT_VIEW(sp); + } PRINT_MAXPERMLSN(sp); /* * Use the number of sites that is kept up-to-date most |