2

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

非常感谢。

4

3 回答 3

2

这是一个从 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
}
于 2014-01-19T13:48:38.007 回答
0

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

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 应用程序现代化》一书的第 6 章。

于 2021-06-14T08:10:15.797 回答
-1

我有一些用于调用 .TMIB 来监控 Tuxedo 应用程序的 C 代码:https ://github.com/TuxSQL/tuxmon 这应该可以帮助您入门。

于 2015-04-07T22:21:26.717 回答