TUXEDO在线监控浅谈(二):用MIB实时监控系统状况之SERVER篇

TUXEDO使用TMIB系统管理 TUXEDO使用TMIB系统管理 TUXEDO为我们对TUXEDO的管理提供了一整套的API接口,可惜的是ORACLE公司并未提供一套完整的接口文档,让TUXEDO开发人员无法很好的掌握,同时网络上几乎没有MIB开发方面的资料。 本文就以WSH为例来讲解如何先获取WSH 列表,然后单独获取每个WSH与客户端连接的CLIENTID,最后通过CLIENTID再获取IP的一个完整实例。这是一个完 阅读详情
TUXEDO提供了一套可编程的管理员 API接口(Management Information Bases),简称为MIBS。通过MIBS,可以方便的监控TUXEDO运行时的所有系统资源,例如SERVER和SERVICE的运行状况、 SERVER队列和消息队列的资源情况、客户端的使用情况、域间通讯的连接情况、系统的资源配置等,所有的资源你都可以通过MIBS的API来获取或者动态的修改资源配置。例如对于某些关键的SERVER或者SERVICE,我们想监控它在多少秒之内的被调用情况,服务是否出现异常或者是被挂起,SERVER对应的消息队列是否出现了堵塞或者是队列空间紧张,当SERVER出现请求反应较慢需要增加进程时,通过MIBS动态的增加进程个数。对于消息队列,我们需要监控消息队列当前的请求总数,队列中的长度是否达到了危险程度需要告警。对于客户端使用者来说,我们需要监控有那些客户端调用超时或者是调用已经被系统给挂起了,某些客户端调用出现异常导致系统性能下降,我们可以自动先将这些客户端请求给消除或者杀掉,根据客户端请求的全过程来找出问题。如果系统和其它外围系统存在着连接或者是分布式的TUXEDO系统,我们需要监控系统和其它系统的域间通讯连接是否正常,远端的系统是否还在正常运行。用一句话来概括,TUXEDO所有的应用都可以通过MIBS进行实时监控。
   
     MIB接口规定了系统管理员,系统操作员和其它用户,三者具有不同的操作权限。MIB接口将系统资源划分为三种类型,分别为Classes和 Attributes和States。Classes指资源的分组,例如SERVER、SERVICE、CLIENT、QUEUE、MSG等。 Attributes指Classes对应的属性,例如SERVER的属性有SERVERNAME、SRVGRP、SRVID和运行时的参数值等属性。 States指Classes在运行时的状态,以及在运行时可以更改的属性。MIB的操作类(OPERATION)分为GET和SET两种类型,即指查询和设置两种操作。
  
    Classes的类型有T_MACHINE、T_GROUP、T_SERVER 、T_SERVICE 、T_SVCGRP、T_QUEUE、T_MSG T_DOMAIN、T_CLIENT等,下面逐一介绍怎么获取这些类型的属性和运行时的参数,重点介绍T_SERVER 、T_SERVICE 、T_SVCGRP、T_QUEUE、T_MSG 、T_DOMAIN、T_CLIENT等几个我们主要关心的类型。
    用MIBS的API查询系统资源的接口比较简单,跟客户端调用SERVICE方法一样,都是用tpcall()或者tpacall()。只是服务名为.MIB。输入输出的缓冲区类型为FML32。在调用之前我们需要指定几个查询参数TA_OPERATION和TA_CLASS、TA_FLAGS,已经Classes对应的参数,例如我们在查询T_SERVER这个Classes,我们想根据LMID、SERVERNAME、SRVGRP、 SRVID、RQADDR等参数来查询对应,那么就在输入缓冲区中输入对应的参数值。
    首先我们来介绍T_SERVER这个Classes。T_SERVER就是我们在TUXEDO配置文件的SERVER节中所定义的SERVER。用 MIBS来查询SERVER在运行状态下的数据,可以获取到SERVER的配置参数值,以及SERVER运行时的其它动态参数值,例如进程ID(操作系统的PID),请求消息队列的PID,回复消息队列的PID,队列名称,SERVER当前处于被请求服务的SERVICE,SERVER被调用的次数、已经完成的调用次数,还没有完成的请求数等。
    代码简单如下:
    obuf = (FBFR32 *)tpalloc("FML32",NULL,8000);
    Finit32(obuf, (FLDLEN32)Fsizeof32(obuf));
    Fchg32(obuf, TA_OPERATION, 0, "GET", 0);
    Fchg32(obuf, TA_CLASS, 0, "T_SERVER", 0);
    flags = MIB_LOCAL;
    Fchg32( obuf, TA_FLAGS, 0, (char *)&flags, 0);
    //根据查询参数设置想要查询的参数,例如服务名、服务ID、服务队列等。
    if(strlen(t_SrvName)>0) Fchg32(obuf, TA_SERVERNAME, 0,t_SrvName, 0);
    if(strlen(t_SrvGrp)>0)  Fchg32(obuf, TA_SRVGRP, 0,t_SrvGrp, 0);
    ret=tpcall(".TMIB",(char *)obuf,0,(char **)&obuf,&sendlen,TPNOTRAN); 
    if(ret == -1)
    {  
     userlog("获取系统服务的状态失败:%s",tpstrerror(tperrno));
     tpfree((char *)obuf);
   Tuxedo_Return("-1","查询TUXEDO系统状态失败");
    }
    i=Foccur32(obuf,TA_SERVERNAME);  
    for(j=0;j<i;j++)
    {
       Fgets32(obuf,TA_SERVERNAME,j,t_ServerName);
       Fgets32(obuf,TA_SRVID,j,t_SrvID);
       Fgets32(obuf,TA_STATE,j,t_STATE);
       Fgets32(obuf,TA_SRVGRP,j,t_SrvGrp);  
       Fgets32(obuf,TA_RQADDR,j,t_RQADDR);//SERVER队列名称
     Fgets32(obuf,TA_TOTWORKL,j,t_TOTWORKL);//工作量。t_TOTREQC*负载因子=TA_TOTWORKL

       ..........................
       //根据返回的数据进行其它操作。
       ..............................
   }
    从上面代码可以看到,我们可以获取到SERVER在运行状态下的所有参数值。例如假设有一个服务有异常,那么我们就可以根据获取的服务状态,来自动做一些处理。可以监控到SERVER被调用的频率,如果SERVER包含多个SERVICE,那么可以监控到某个SERVICE是否被调用次数过多而且影响到 SERVER中其它的SERVICE,那么就要考虑将这个SERVICE移到其它SERVER或者是单独成为一个SERVER。根据SERVER的 RPID,我们可以关联查询SERVER对应的REQUES消息队列,查看REQUES消息队列的排队率和占用率是否过高,自动进行处理或者是告警。
    如果我们想在运行状态时动态的修改SERVER的配置参数,那么我们可以将TA_OPERATION改为SET,将需要修改的参数输入缓冲区,调用 MIBS的接口即可。修改某些参数有时需要将SERVER的状态改为INActive,相当是tmshutdown -s SERVER,然后才能修改。
    下一篇文章我们将介绍跟SERVER密切相关的QUEUE和MSG QUEUE,分析如何通过SERVER的PID来查询对应的消息队列。因为我们知道,当系统的反应比较缓慢时,首先出问题的往往是消息队列。
tuxedo TMIB学习笔记 学习tuxedo TMIB监控学习笔记 可以对TMIB有较深入的了解,少走许多弯路 立即下载

相关推荐

【Codesys】获取从站信息,判断是否从站断联,总线丢失

获取EtherCAT从站信息,判断是否从站断联,总线丢失

qq_35316470的博客 5732

使用MIB来监控你的应用(tuxedo mib)

Tuxedo开发过程中很难找到关于监控的文章,以下内容是翻译自http://e-docs.bea.com/tuxedo/tux71/html/admon15.htm,希望有人继续完成这些文档的翻译。使用MIB来监控你的应用基本上你可以用MIB完成两种操作:从MIB得到信息(get操作)和更新MIB中的信息(set操作),你随时能通过一套ATMI函数(例如:tpalloc,tprealloc,tpc

wonder365x的专栏 3369

Python实战:3分钟搞定A股K线数据抓取(附东方财富/腾讯API完整代码)

本文为量化交易初学者提供了一份快速获取A股K线数据的实战指南。通过对比东方财富与腾讯财经两大免费API的优劣,并附上可直接运行的完整Python代码,帮助读者在3分钟内搭建起自己的数据抓取管道,为构建量化交易系统奠定坚实的数据基础。

weixin_29062255的博客 2913

第1讲--tuxedo总体介绍

Tuxedo总体介绍 1.1 中间件介绍  介于客户机与服务器之间的夹层,它突破了二层C/S结构的局限性,为构建大规模、高性能、分布式C/S应用程序提供了通信、事务、安全、容错等基础服务,它屏蔽了底层技术细节,使应用程序开发不必再从底层做起,以自身的复杂性换来了应用程序开发的简单。  最早具有中间件技术思想及功能的软件是IBM的CICS,但由于CICS不是分布式环境的产物,因此人们一般...

a8366的专栏 1267

超聚变安装银河麒麟服务器系统ky10-server-x86

超聚变-通过BMC口进服务器管理界面如下图为BMC管理口:默认BMC口IP:https://192.168.2.100l浏览器打开网页,输入用户名和密码登陆后,如下图红框处,选择“启动虚拟控制台”——选择“HTML集成远程控制台”系统银河麒麟服务器系统ky10 server x86选择镜像文件X86架构我们一般选择下图2212版本选择启动方式:光驱重启出现安装图形化界面选装安装系统的磁盘系统安装盘选完后如下图,会置灰创建root密码开始安装系统首次进入,有协议界面。

zengliguang的专栏 5966

吉林大学2016级唐班c语言期末考试B卷

` #include<stdio.h> #include<stdlib.h> //双指针法,每次从a,b中选一个最大的数,从后向前一次放在数组a中 int merge(int *a,int m,int *b,int n){ int i=m-1,j=n-1,k=m+n-1; while(i>=0&&j>=0){ if(a[i]>b[j])a[...

weixin_42339173的博客 1195

TUXEDO MIB信息查询

MIB信息查询 1. 实现功能 查询MIB,提取字段信息。本文主要介绍提取:客户端ID、客户端名、用户名。 2. 设置环境变量 第一个环境变量: FLDTBLDIR32=$APPDIR:$TUXDIR/udataobj  第二个环境变量: FIELDTBLS32=bank_fml,rtpnr_fml,common_fml,ui_fml,openpnr.fml32,open_d

1204

【STM32G474实战】RS485通信的DMA优化策略与性能对比

本文深入探讨了在STM32G474微控制器上优化RS485通信的DMA策略。通过对比轮询、中断和DMA三种数据传输方式的代码实现与性能,揭示了DMA在解放CPU、降低占用率方面的巨大优势。文章提供了详细的DMA配置指南、高级应用技巧(如结合空闲中断)以及一个高可靠通信框架的实战思路,旨在帮助开发者构建高效、实时的工业控制系统。

weixin_29268331的博客 304

linux tuxedo查看服务进程数,Tuxedo 运行监控命令

TUXEDO版本是8.1。下面简单说明,以 tmboot -y 启动TUXEDO服务。输入下面的命令即可进入TUXEDO的监控环境了,tmadmin一、查看服务信息psr(1)命令:printserver简写psr(2) psr [-mmachine] [-ggroupname] [-i srvid] [-q qaddress]-m machine LMID为machine的所有服务进程-g ...

weixin_39962675的博客 683

Windows10下安装VMware16虚拟机

由于本人系统为Windows 10 家庭中文版,无法安装Linux子系统WSL,虽然网上也有强制安装的方法,但为保险起见,还是把之前的VMware虚拟机重新进行安装,并浅浅记录一下安装过程。

沉香best的博客 864

端侧 AI 落地避坑指南(中):为什么 QAT 救不了精度?——对齐“融合后算子“的硬件物理约束

在上一篇文章中,我们深入探讨了量化的本质,并得出结论:QAT(量化感知训练)是保持精度的关键。明明做了 QAT,精度还是崩塌了!让我们看一个真实的案例:✅ 使用了✅ 配置了量化✅ 训练了 50 个 epoch,学习率降为原来的 1/10✅ 冻结了 BN 统计量FP32 模型:mAP = 0.85QAT 后 FP32:mAP = 0.84(正常)工具量化后:mAP = 0.68(崩塌!问题出在哪里?层融合(Layer Fusion)机制。

weixin_51988935的博客 55

Tuxedo性能调优经验谈

TUXEDO应用系统对IPC资源的要求 一个TUXEDO应用系统在运行时会大量用到IPC资源,包括信号灯,消息队列及共享内存,下面对他们的使用情况及与他们有关的操作系统核心参数分别进行介绍: UBBCONFIG中与IPC资源有关的配置参数 主要有: MAXACCESSERS ,REPLYQ,RQADDR,MAXSERVERS,MAXSERVICE,MAXGTT TUXEDO应用系统对IPC

Cottage驿站 1428

海康visionmaster开发笔记10-集成HALCON第三方算子到VM工具箱的方法

海康visionmaster开发笔记10-HALCON第三方算子到VM工具箱的方法

视觉人机器视觉的博客 4347

tuxedo性能监控文档

多年tuxedo性能监控,调优的总结,见附件.

guoruisheng2012的专栏 192

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

mib 文件中的 rowstatus 参数_【零基础学云计算】详述Linux系统中Nginx虚拟主机的配置...

Nginx虚拟主机应用Nginx支持的虚拟主机有三种基于域名的虚拟主机.基于IP的虚拟主机基于端口的虚拟主机通过"server{}"配置段实现本篇实验接着上一篇搭建Nginx服务继续搭建,前面Nginx的编译安装不在介绍基于域名的虚拟主机[root@localhost nginx-1.12.2]# mkdir -p /var/www/html/accp //递归创建accp网页站点目录[roo...

weixin_39781945的博客 169

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

TUXEDO管理命令总结

   BEA的官方参考文档:http://e-docs.bea.com/tuxedo/tux80/atmi/rfcmd31.htm   tmboot  启动服务: 参数说明: -l  lmid 启动逻辑服务器名为lmcd服务器上的所有进程 -g grpname 启动GROUP名为grpname的所有进程 -i  srvid 启动SRVID为srvid中的服务进程 -s aout 启...

topMan'blog 733

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

tuxedo常用命令

中间件系统检查:1、服务器运行情况。检查Tuxedo系统和应用的服务器的运行情况,用“ps -ef|grep server名”查看进程相关信息,如运行时间、占用内存大小等;用tmadmin命令检查看服务器运行情况,执行psr监控服务器运行情况,查看处理的请求数目、忙闲程度;2、service运行情况:用tmadmin命令中的psc命令查看tuxedo各service的运行情况和处理的交

shenzhen2008的专栏 3053

tuxedo管理命令之tmadmin

<br /><br /><br /><br />tmadmin 用来查看TUXEDO的运行情况。在tmadmin命令界面中可以使用如下命令:<br />~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />psr<br />为printserver命令的简写,监控服务器运行情况,查看处理的请求数目、忙闲程度。<br />参数如下:<br />-m machine LMID为 machine的所有服务进程<br />-g groupnam

云中舞步 2万+

如何监控Tuxedo中间件?Oralce TUXEDO监控方案

Oralce TUXEDO 是在企业、Internet 这样的分布式计算环境中开发和管理三层结构的客 户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。   Oracle Tuxedo Cartridge for Foglight可以实现对Oracle Tuxedo的监控管理. 通过此软件,每个Tuxed

liubang200707的专栏 1334

TUXEDO运行监控命令概述

转自http://blog.youkuaiyun.com/lazy2008/archive/2009/05/27/4220452.aspxTUXEDO作为优秀的中间件,被广泛的应用在电信、金融等领域。通过简单的命令就可以对其进行比较全面的运行状况监控的。下面简单做一些相关的介绍。 以AIX5.3为操作系统环境。TUXEDO版本是8.1。 下面简单说明,以 tmboot  -y

-=海 阔 天 空=- 1236

Linux下Tuxedo的安装和配置

Tuxedo下载:http://www.oracle.com/technetwork/cn/middleware/tuxedo/downloads/index.html Oracle Tuxedo 11gR1 (11.1.1.3.0) 适用于 Linux x86-64(64 位)(86,027,903 字节) 1、建用户及目录 campost:/ # groupadd tuxedo campost...

P.L.C的博客 2276

tuxedo server和service区别

server是一些你写的应用,比如你的服务端可执行程序,service是可执行程序里所包含的一种服务,也就是一个函数。 其实简单点理解:SERVER就是集成了几个SERVICE的可执行程序。就好象一个服务器上可以安装多个应用服务一样。SERVICE是商业逻辑层面的。 从客户端的角度,他们只用知道SERVICE name和参数就可以了,不必关心是放在哪个server里面.但是从服务端的角度两个都

MyDriverC 4717

TUXEDO超时控制全功略

背景: 解决客户以下问题:数据库版本9206,中间件BEA tuxedu。客户反映在业务中有分布式事务的时候,查询dba_pending_transactions视图会被hang住,直到分布式事务处理完成,这样造成数据库连接堵塞,影响业务的正常使用。参考以下资料: 链接:http://dev2dev.bea.com.cn/bbs/yuanch/ArticleShow.jsp

『煮面一族』的专栏 2637
上一篇: TUXEDO在线运行监控浅谈(一):事件监控
下一篇: TUXEDO 事件订阅客户端代码
bobui
博客等级 码龄19年 209粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值