C语言 如何通过mib监控Tuxedo



目前我正在尝试编写一个程序来监视Tuxedo。 从官方文件中,我发现MIB适合编写程序来监控它。http://docs.oracle.com/cd/E13203_01/tuxedo/tux90/rf5/rf5.htm#998207,我在这里阅读了很多文件。虽然有很多非常类的说明,但从一开始就没有任何指南告诉我如何使用它。我试图在github上搜索,但不幸的是,没有任何与tuxedo mib相关的代码。有没有人有一些好的示例代码?

多谢。

这里有一个从Tuxedo读取块时间的Shell函数:

get_blocktime() {
TmpErr=/tmp/ud32err_$$
rtc=0
ud32 -Ctpsysadm <<EOF 2>$TmpErr | grep TA_BLOCKTIME  | cut -f2
SRVCNM  .TMIB
TA_CLASS    T_DOMAIN
TA_OPERATION    GET
EOF
# ud32 has no good error-handling
if [ -s $TmpErr ]; then
    echo "$PRG: Error calling ud32:"
    cat $TmpErr 1>&2
    rtc=1
fi
rm  $TmpErr
exit $rtc
}

有几个使用 Python https://github.com/PacktPublishing/Modernizing-Oracle-Tuxedo-Applications-with-Python/tree/main/Chapter06 访问 MIB 的例子。例如:

import tuxedo as t
t.tpinit(cltname="tpsysop")
machine = t.tpadmcall(
    {
        "TA_CLASS": "T_MACHINE",
        "TA_OPERATION": "GET",
        "TA_FLAGS": t.MIB_LOCAL,
    }
).data

几点注意事项:

  • 您需要将TA_FLAGS设置为 MIB_LOCAL 以返回统计信息(默认情况下未完成)
  • 您可能希望使用 tpadmcall() 函数而不是调用 .TMIB服务。该功能在系统上要轻得多,并且不会增加Tuxedo统计信息(服务调用次数)。tpadmcall 的主要限制是响应的大小有限,因此您需要调用 .TMIB 服务,用于服务器和队列统计信息(如果您的应用程序有数十个)。

如果代码示例还不够,您可以查看《使用 Python 现代化 Oracle Tuxedo Applications 》一书的第 6 章。

我有一些用于调用的 C 代码。TMIB在这里监控燕尾服应用:https://github.com/TuxSQL/tuxmon这应该让你开始。

相关内容

  • 没有找到相关文章

最新更新