目前我正在尝试编写一个程序来监视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这应该让你开始。