jk_status.c

来自「以便Apache与其他服务进行整合 Mod_JK安装」· C语言 代码 · 共 1,753 行 · 第 1/5 页

C
1,753
字号
        jk_print_xml_att_int(s, 4, "member_count", lb->num_of_workers);        jk_print_xml_att_int(s, 4, "good", good);        jk_print_xml_att_int(s, 4, "degraded", degraded);        jk_print_xml_att_int(s, 4, "bad", bad);        jk_print_xml_att_int(s, 4, "busy", lb->s->busy);        jk_print_xml_att_int(s, 4, "max_busy", lb->s->max_busy);        jk_print_xml_att_int(s, 4, "map_count", map_count);        jk_print_xml_att_int(s, 4, "time_to_maintenance_min", ms_min);        jk_print_xml_att_int(s, 4, "time_to_maintenance_max", ms_max);        jk_print_xml_stop_elt(s, 2, 0);    }    else if (mime == JK_STATUS_MIME_TXT) {        jk_puts(s, "Balancer Worker:");        jk_printf(s, " name=%s", name);        jk_printf(s, " type=%s", status_worker_type(JK_LB_WORKER_TYPE));        jk_printf(s, " sticky_session=%s", jk_get_bool(lb->sticky_session));        jk_printf(s, " sticky_session_force=%s", jk_get_bool(lb->sticky_session_force));        jk_printf(s, " retries=%d", lb->retries);        jk_printf(s, " recover_time=%d", lb->recover_wait_time);        jk_printf(s, " max_reply_timeouts=%d", lb->max_reply_timeouts);        jk_printf(s, " method=%s", jk_lb_get_method(lb, l));        jk_printf(s, " lock=%s", jk_lb_get_lock(lb, l));        jk_printf(s, " member_count=%d", lb->num_of_workers);        jk_printf(s, " good=%d", good);        jk_printf(s, " degraded=%d", degraded);        jk_printf(s, " bad=%d", bad);        jk_printf(s, " busy=%d", lb->s->busy);        jk_printf(s, " max_busy=%d", lb->s->max_busy);        jk_printf(s, " map_count=%d", map_count);        jk_printf(s, " time_to_maintenance_min=%d", ms_min);        jk_printf(s, " time_to_maintenance_max=%d", ms_max);        jk_puts(s, "\n");    }    else if (mime == JK_STATUS_MIME_PROP) {        jk_print_prop_att_string(s, w, NULL, "list", name);        jk_print_prop_att_string(s, w, name, "type", status_worker_type(JK_LB_WORKER_TYPE));        jk_print_prop_att_string(s, w, name, "sticky_session", jk_get_bool(lb->sticky_session));        jk_print_prop_att_string(s, w, name, "sticky_session_force", jk_get_bool(lb->sticky_session_force));        jk_print_prop_att_int(s, w, name, "retries", lb->retries);        jk_print_prop_att_int(s, w, name, "recover_time", lb->recover_wait_time);        jk_print_prop_att_int(s, w, name, "max_reply_timeouts", lb->max_reply_timeouts);        jk_print_prop_att_string(s, w, name, "method", jk_lb_get_method(lb, l));        jk_print_prop_att_string(s, w, name, "lock", jk_lb_get_lock(lb, l));        jk_print_prop_att_int(s, w, name, "member_count", lb->num_of_workers);        jk_print_prop_att_int(s, w, name, "good", good);        jk_print_prop_att_int(s, w, name, "degraded", degraded);        jk_print_prop_att_int(s, w, name, "bad", bad);        jk_print_prop_att_int(s, w, name, "busy", lb->s->busy);        jk_print_prop_att_int(s, w, name, "max_busy", lb->s->max_busy);        jk_print_prop_att_int(s, w, name, "map_count", map_count);        jk_print_prop_att_int(s, w, name, "time_to_maintenance_min", ms_min);        jk_print_prop_att_int(s, w, name, "time_to_maintenance_max", ms_max);    }    if (!hide_members) {        if (mime == JK_STATUS_MIME_HTML) {            jk_puts(s, "<h4>Balancer Members [");            if (single) {                status_write_uri(s, p, "Hide", JK_STATUS_CMD_SHOW, JK_STATUS_MIME_UNKNOWN,                                 NULL, NULL, JK_STATUS_ARG_OPTION_NO_MEMBERS, 0, "", l);            }            else {                status_write_uri(s, p, "Hide", JK_STATUS_CMD_LIST, JK_STATUS_MIME_UNKNOWN,                                 NULL, NULL, JK_STATUS_ARG_OPTION_NO_MEMBERS, 0, "", l);            }            jk_puts(s, "]</h4>\n");            jk_puts(s, "<table>" JK_STATUS_SHOW_MEMBER_HEAD);        }        for (j = 0; j < lb->num_of_workers; j++) {            worker_record_t *wr = &(lb->lb_workers[j]);            ajp_worker_t *a = (ajp_worker_t *)wr->w->worker_private;            int rs_min = 0;            int rs_max = 0;            if (wr->s->state == JK_LB_STATE_ERROR) {                rs_min = lb->recover_wait_time - (int)difftime(now, wr->s->error_time);                if (rs_min < 0) {                    rs_min = 0;                }                rs_max = rs_min + lb->maintain_time;                if (rs_min < ms_min) {                    rs_min = ms_min;                }            }            if (mime == JK_STATUS_MIME_HTML) {                jk_puts(s, "<tr>\n<td>");                if (!read_only) {                    jk_puts(s, "[");                    status_write_uri(s, p, "E", JK_STATUS_CMD_EDIT, JK_STATUS_MIME_UNKNOWN,                                     name, wr->s->name, 0, 0, "", l);                    jk_puts(s, "|");                    status_write_uri(s, p, "R", JK_STATUS_CMD_RESET, JK_STATUS_MIME_UNKNOWN,                                     name, wr->s->name, 0, 0, "", l);                    if (wr->s->state == JK_LB_STATE_ERROR) {                        jk_puts(s, "|");                        status_write_uri(s, p, "T", JK_STATUS_CMD_RECOVER, JK_STATUS_MIME_UNKNOWN,                                         name, wr->s->name, 0, 0, "", l);                    }                    jk_puts(s, "]");                }                jk_puts(s, "&nbsp;</td>");                jk_printf(s, JK_STATUS_SHOW_MEMBER_ROW,                          wr->s->name,                          status_worker_type(wr->w->type),                          a->host, a->port,                          jk_dump_hinfo(&a->worker_inet_addr, buf),                          jk_lb_get_activation(wr, l),                          jk_lb_get_state(wr, l),                          wr->s->distance,                          wr->s->lb_factor,                          wr->s->lb_mult,                          wr->s->lb_value,                          wr->s->elected,                          wr->s->errors,                          wr->s->client_errors,                          wr->s->reply_timeouts,                          status_strfsize(wr->s->transferred, buf_wr),                          status_strfsize(wr->s->readed, buf_rd),                          wr->s->busy,                          wr->s->max_busy,                          wr->s->route,                          wr->s->redirect ? (*wr->s->redirect ? wr->s->redirect : "&nbsp;") : "&nbsp",                          wr->s->domain ? (*wr->s->domain ? wr->s->domain : "&nbsp;") : "&nbsp",                          rs_min,                          rs_max);            }            else if (mime == JK_STATUS_MIME_XML) {                jk_print_xml_start_elt(s, w, 6, 0, "member");                jk_print_xml_att_string(s, 8, "name", wr->s->name);                jk_print_xml_att_string(s, 8, "type", status_worker_type(wr->w->type));                jk_print_xml_att_string(s, 8, "host", a->host);                jk_print_xml_att_int(s, 8, "port", a->port);                jk_print_xml_att_string(s, 8, "address", jk_dump_hinfo(&a->worker_inet_addr, buf));                jk_print_xml_att_string(s, 8, "activation", jk_lb_get_activation(wr, l));                jk_print_xml_att_int(s, 8, "lbfactor", wr->s->lb_factor);                jk_print_xml_att_string(s, 8, "route", wr->s->route);                jk_print_xml_att_string(s, 8, "redirect", wr->s->redirect);                jk_print_xml_att_string(s, 8, "domain", wr->s->domain);                jk_print_xml_att_int(s, 8, "distance", wr->s->distance);                jk_print_xml_att_string(s, 8, "state", jk_lb_get_state(wr, l));                jk_print_xml_att_uint64(s, 8, "lbmult", wr->s->lb_mult);                jk_print_xml_att_uint64(s, 8, "lbvalue", wr->s->lb_value);                jk_print_xml_att_uint64(s, 8, "elected", wr->s->elected);                jk_print_xml_att_uint32(s, 8, "errors", wr->s->errors);                jk_print_xml_att_uint32(s, 8, "client_errors", wr->s->client_errors);                jk_print_xml_att_uint32(s, 8, "reply_timeouts", wr->s->reply_timeouts);                jk_print_xml_att_uint64(s, 8, "transferred", wr->s->transferred);                jk_print_xml_att_uint64(s, 8, "read", wr->s->readed);                jk_print_xml_att_int(s, 8, "busy", wr->s->busy);                jk_print_xml_att_int(s, 8, "max_busy", wr->s->max_busy);                jk_print_xml_att_int(s, 8, "time_to_recover_min", rs_min);                jk_print_xml_att_int(s, 8, "time_to_recover_max", rs_max);                /* Terminate the tag */                jk_print_xml_stop_elt(s, 6, 1);            }            else if (mime == JK_STATUS_MIME_TXT) {                jk_puts(s, "Member:");                jk_printf(s, " name=%s", wr->s->name);                jk_printf(s, " type=%s", status_worker_type(wr->w->type));                jk_printf(s, " host=%s", a->host);                jk_printf(s, " port=%d", a->port);                jk_printf(s, " address=%s", jk_dump_hinfo(&a->worker_inet_addr, buf));                jk_printf(s, " activation=%s", jk_lb_get_activation(wr, l));                jk_printf(s, " lbfactor=%d", wr->s->lb_factor);                jk_printf(s, " route=\"%s\"", wr->s->route ? wr->s->route : "");                jk_printf(s, " redirect=\"%s\"", wr->s->redirect ? wr->s->redirect : "");                jk_printf(s, " domain=\"%s\"", wr->s->domain ? wr->s->domain : "");                jk_printf(s, " distance=%d", wr->s->distance);                jk_printf(s, " state=%s", jk_lb_get_state(wr, l));                jk_printf(s, " lbmult=%" JK_UINT64_T_FMT, wr->s->lb_mult);                jk_printf(s, " lbvalue=%" JK_UINT64_T_FMT, wr->s->lb_value);                jk_printf(s, " elected=%" JK_UINT64_T_FMT, wr->s->elected);                jk_printf(s, " errors=%" JK_UINT32_T_FMT, wr->s->errors);                jk_printf(s, " client_errors=%" JK_UINT32_T_FMT, wr->s->client_errors);                jk_printf(s, " reply_timeouts=%" JK_UINT32_T_FMT, wr->s->reply_timeouts);                jk_printf(s, " transferred=%" JK_UINT64_T_FMT, wr->s->transferred);                jk_printf(s, " read=%" JK_UINT64_T_FMT, wr->s->readed);                jk_printf(s, " busy=%d", wr->s->busy);                jk_printf(s, " max_busy=%d", wr->s->max_busy);                jk_printf(s, " time_to_recover_min=%d", rs_min);                jk_printf(s, " time_to_recover_max=%d", rs_max);                jk_puts(s, "\n");            }            else if (mime == JK_STATUS_MIME_PROP) {                jk_print_prop_att_string(s, w, name, "balance_workers", wr->s->name);                jk_print_prop_att_string(s, w, wr->s->name, "type", status_worker_type(wr->w->type));                jk_print_prop_att_string(s, w, wr->s->name, "host", a->host);                jk_print_prop_att_int(s, w, wr->s->name, "port", a->port);                jk_print_prop_att_string(s, w, wr->s->name, "address", jk_dump_hinfo(&a->worker_inet_addr, buf));                jk_print_prop_att_string(s, w, wr->s->name, "activation", jk_lb_get_activation(wr, l));                jk_print_prop_att_int(s, w, wr->s->name, "lbfactor", wr->s->lb_factor);                jk_print_prop_att_string(s, w, wr->s->name, "route", wr->s->route);                jk_print_prop_att_string(s, w, wr->s->name, "redirect", wr->s->redirect);                jk_print_prop_att_string(s, w, wr->s->name, "domain", wr->s->domain);                jk_print_prop_att_int(s, w, wr->s->name, "distance", wr->s->distance);                jk_print_prop_att_string(s, w, wr->s->name, "state", jk_lb_get_state(wr, l));                jk_print_prop_att_uint64(s, w, wr->s->name, "lbmult", wr->s->lb_mult);                jk_print_prop_att_uint64(s, w, wr->s->name, "lbvalue", wr->s->lb_value);                jk_print_prop_att_uint64(s, w, wr->s->name, "elected", wr->s->elected);                jk_print_prop_att_uint32(s, w, wr->s->name, "errors", wr->s->errors);                jk_print_prop_att_uint32(s, w, wr->s->name, "client_errors", wr->s->client_errors);                jk_print_prop_att_uint32(s, w, wr->s->name, "reply_timeouts", wr->s->reply_timeouts);                jk_print_prop_att_uint64(s, w, wr->s->name, "transferred", wr->s->transferred);                jk_print_prop_att_uint64(s, w, wr->s->name, "read", wr->s->readed);                jk_print_prop_att_int(s, w, wr->s->name, "busy", wr->s->busy);                jk_print_prop_att_int(s, w, wr->s->name, "max_busy", wr->s->max_busy);                jk_print_prop_att_int(s, w, wr->s->name, "time_to_recover_min", rs_min);                jk_print_prop_att_int(s, w, wr->s->name, "time_to_recover_max", rs_max);            }        }        if (mime == JK_STATUS_MIME_HTML) {            jk_puts(s, "</table><br/>\n");            if (!read_only) {                jk_puts(s, "<b>E</b>dit one attribute for all members: [");                status_write_uri(s, p, JK_STATUS_ARG_LBM_TEXT_ACTIVATION, JK_STATUS_CMD_EDIT, JK_STATUS_MIME_UNKNOWN,                                 name, "", 0, 0, JK_STATUS_ARG_LBM_ACTIVATION, l);                jk_puts(s, "\n|");                status_write_uri(s, p, JK_STATUS_ARG_LBM_TEXT_FACTOR, JK_STATUS_CMD_EDIT, JK_STATUS_MIME_UNKNOWN,                                 name, "", 0, 0, JK_STATUS_ARG_LBM_FACTOR, l);                jk_puts(s, "\n|");                status_write_uri(s, p, JK_STATUS_ARG_LBM_TEXT_ROUTE, JK_STATUS_CMD_EDIT, JK_STATUS_MIME_UNKNOWN,                                 name, "", 0, 0, JK_STATUS_ARG_LBM_ROUTE, l);                jk_puts(s, "\n|");                status_write_uri(s, p, JK_STATUS_ARG_LBM_TEXT_REDIRECT, JK_STATUS_CMD_EDIT, JK_STATUS_MIME_UNKNOWN,                                 name, "", 0, 0, JK_STATUS_ARG_LBM_REDIRECT, l);                jk_puts(s, "\n|");                status_write_uri(s, p, JK_STATUS_ARG_LBM_TEXT_DOMAIN, JK_STATUS_CMD_EDIT, JK_STATUS_MIME_UNKNOWN,                                 name, "", 0, 0, JK_STATUS_ARG_LBM_DOMAIN, l);                jk_puts(s, "\n|");                status_write_uri(s, p, JK_STATUS_ARG_LBM_TEXT_DISTANCE, JK_STATUS_CMD_EDIT, JK_STATUS_MIME_UNKNOWN,                                 name, "", 0, 0, JK_STATUS_ARG_LBM_DISTANCE, l);                jk_puts(s, "\n]<br/>\n");            }        }    }    else {        if (mime == JK_STATUS_MIME_HTML) {            jk_puts(s, "<p>\n");            if (single) {                status_write_uri(s, p, "Show Balancer Members", JK_STATUS_CMD_SHOW, JK_STATUS_MIME_UNKNOWN,                                 NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_MEMBERS, "", l);            }            else {                status_write_uri(s, p, "Show Balancer Members", JK_STATUS_CMD_LIST, JK_STATUS_MIME_UNKNOWN,                                 NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_MEMBERS, "", l);            }            jk_puts(s, "</p>\n");        }    }    if (name)        display_maps(s, p, name, l);    if (mime == JK_STATUS_MIME_XML) {        jk_print_xml_close_elt(s, w, 2, "balancer");    }    JK_TRACE_EXIT(l);}static void display_worker_ajp(jk_ws_service_t *s,                               status_endpoint_t *p,                               ajp_worker_t *aw,                               jk_logger_t *l){    char buf[32];    int cmd;    int mime;    int single = 0;    const char *arg;    int map_count;    const char *name = aw->name;    status_worker_t *w = p->worker;    JK_TRACE_ENTER(l);    status_get_string(p, JK_STATUS_ARG_CMD, NULL, &arg, l);    cmd = status_cmd_int(arg);    status_get_string(p, JK_STATUS_ARG_MIME, NULL, &arg, l);    mime = status_mime_int(arg);    if (cmd == JK_STATUS_CMD_SHOW) {        single = 1;    }    map_count = count_maps(s, name, l);    if (mime == JK_STATUS_MIME_HTML) {        jk_puts(s, "<hr/><h3>[");        if (single)            jk_puts(s, "S");        else            status_write_uri(s, p, "S", JK_STATUS_CMD_SHOW, JK_STATUS_MIME_UNKNOWN,                             name, "", 0, 0, "", l);        jk_puts(s, "]&nbsp;&nbsp;");        jk_putv(s, "Worker Status for ", name, "</h3>\n", NULL);        jk_puts(s, "<table>" JK_STATUS_SHOW_AJP_HEAD);        jk_printf(s, JK_STATUS_SHOW_AJP_ROW,                  status_worker_type(aw->worker.type),                  aw->host, aw->port,                  jk_dump_hinfo(&aw->worker_inet_addr, buf));        jk_puts(s, "</table>\n");    }    else if (mime == JK_STATUS_MIME_XML) {        jk_print_xml_start_elt(s, w, 0, 0, "ajp");        jk_print_xml_att_string(s, 2, "name", name);        jk_print_xml_att_string(s, 2, "type", status_worker_type(aw->worker.type));        jk_print_xml_att_string(s, 2, "host", aw->host);        jk_print_xml_att_int(s, 2, "port", aw->port);        jk_print_xml_att_string(s, 2, "address", jk_dump_hinfo(&aw->worker_inet_addr, buf));        jk_print_xml_att_int(s, 2, "map_count", map_count);        /* Terminate the tag */        jk_print_xml_stop_elt(s, 0, 0);    }    else if (mime == JK_STATUS_MIME_TXT) {        jk_puts(s, "AJP Worker:");        jk_printf(s, " name=%s", name);        jk_printf(s, " type=%s", status_worker_type(aw->worker.type));        jk_printf(s, " host=%s", aw->host);        jk_printf(s, " port=%d", aw->port);        jk_printf(s, " address=%s", jk_dump_hinfo(&aw->worker_inet_addr, buf));        jk_printf(s, " map_cou

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?