返回首页

gbase数据、南大通用产品文档:GBase8s两阶段落实中使用的配置参数

更新日期:2024年09月11日

以下两个配置文件参数是特定于分布式环境的:

DEADLOCK_TIMEOUT

TXTIMEOUT

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 515 -
虽然两个参数都指定了超时周期,但它们是互相独立的。有关这些配置参数的更多信息,
请参阅《GBase 8s 管理员参考》。
DEADLOCK_TIMEOUT 参数的功能
如果强制分布式事务等待共享内存资源的时间超过 DEADLOCK_TIMEOUT 指定的秒数,
那么拥有事务的线程会假设存在多服务器死锁。会返回以下错误消息:
-154 ISAM error: deadlock timeout expired - Possible deadlock.
DEADLOCK_TIMEOUT 的缺省值为 60 秒。调整该值时要小心。如果把该值设置得过低,
各个数据库服务器会结束那些非死锁的事务。如果把该值设置得过高,那么多服务器死锁
可能会减少并发性。
TXTIMEOUT 参数的功能
TXTIMEOUT 配置参数特定于两阶段落实协议。仅当事务协调者和参与者之间的通信被中
断,并且必须重新建立时,才使用该参数。
TXTIMEOUT 参数指定参与者数据库服务器在分布式事务期间等待接收来自协调者数据
库服务器的 commit 指令的时间段。如果过了 TXTIMEOUT 指定的时间段,那么参与者
数据库服务器会检查事务的状态以确定参与者是否必须启动自动参与者恢复。
TXTIMEOUT 以秒为单位指定。缺省值为 300(5 分钟)。该参数的最佳值将根据您的特
定环境和应用程序而变化。修改此参数之前,请阅读两阶段落实协议如何处理故障中的说
明。

动态链接库
(DLL)
是可由应用程序共享的资源和函数的集合。
它类似于 runtime 库,
因为它存储许多应用程序需要的函数。然而,它与 runtime 库不同之处在于它链接到调用
的应用程序。
在编译时链接的库是静态链接库。诸如 libc 和 libcmt 之类的库(与 Microsoft™
Visual C++ Version 2.x 一起使用)是静态链接库。 无论何时将这些 Microsoft Visual C++
(版本 2.x)
之一链接到应用程序,
链接器将代码从适当的静态链接库复制到应用程序的可
执行文件中(.exe)。相比之下,当自动链接时,不会将代码复制到应用程序的可执行文件
中。相反,您的函数在运行时链接。
静态链接库在不需要多任务的环境中是有效的。但是,当多个应用程序调用相同的功
能时,它们变得无效。例如:如果在 Windows™ 环境中同时运行的两个应用程序调用相
同的静态链接函数,则该函数的两个副本位于内存中。这种情况是低效率的。
但是如果一个函数是动态链接的,则 Windows 系统首先检查内容,看看函数的副本
是否已经存在。如果存在副本,则 Windows 系统使用此副本而不是另一个创建另一个副
本。
如果内存中该函数还尚未存在,
则 Windows 系统将该函数从 DLL 中链接或复制到内
存中。
GBase 8s ESQL/C 库函数和其它内部函数包含在 ESQL 客户端接口 DLL 中。
要在您
的 GBase 8s ESQL/C 函数中使用这些函数,必须执行以下操作:
访问 ESQL 客户端接口 DLL 的导入库
定位 ESQL 客户端接口 DLL
访问导入库
使用 DLL 的导入库以使您的 GBase 8s ESQL/C 应用程序访问 ESQL 客户端接口
DLL 。
链接器使用导入库定位 DLL 中包含的函数。它包含使应用程序中使用的函数名称与
包含该函数的库模块协调的引用。
当将静态库链接到应用程序时,链接器将程序代码以静态链接库复制到可执行文件。
但是,如果将导入库链接到应用程序,链接器在链接可执行文件时不会复制程序代码。链
接器存储在 DLL 中定位函数所需的信息。运行应用程序是,此位置信息充当 DLL 的动
态链接。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 73 -
ESQL 客户端接口库提供 GBase 8s ESQL/C 函数调用的位置信息。当您使用它编译
并链接您的 GBase 8s ESQL/C 程序时,esql 命令处理器将自动链接 DLL 的导入和
Windows™ 库。
定位 DLL
在程序开发期间,GBase 8s ESQL/C 软件(如 esql 命令处理器)必须能访问对象库
并导入库。但是,在运行应用程序时 DLL 必须是可访问的。也就是说,Windows™ 必须
能够在您的硬盘上找到它们。
按照以下顺序搜寻 DLL 的目录:
加载应用程序的目录
Windows 环境系统目录 SYSTEM
当前目录(可执行文件所在的位置或图标的程序项目属性值指定的工作目录)
PATH 环境变量列出的目录
有关特定 Windows 操作系统的最新信息,请参阅 http://www.microsoft.com 上的
动态链接库搜寻顺序文档。
构建应用程序 DLL
可以告诉 GBase 8s ESQL/C 处理器使用 -target(或 -wd)命令行选项将 GBase 8s
ESQL/C 程序构建为 DLL(.dll 文件)ile)。这种 GBase 8s ESQL/C 程序被称为应用程序
DLL。
要将 GBase 8s ESQL/C 程序构建为 DLL,
请遵循通用 DLL 的直到。
有关更多信息,
请参阅您的系统文档。使用 -target:dll(或 -wd)编译 GBase 8s ESQL/C 源文件以创建应
用程序 DLL。
有关如何构建应用程序 DLL 的信息,
请参阅 %GBASEDBTDIR%\demo\wdemo 目录
中的 WDEMO 演示程序。示例应用程序 DLL 的 GBase 8s ESQL/C 源文件称为 wdll.ec。
要编译此 DLL,使用下面的 esql 命令:
esql -subsystem:windows -target:dll wdll.ec
WDEMO 可执行文件的源代码在 wdemo.exe 文件中。

统一监控提供SNMP Trap 推送接口,当统一监控发现某个集群节点发生异
常的时候,统一监控主动通过SNMP Trap 方式把异常信息推送给第三方应用,
这样第三方应用就可以实现对集群状态的统一监控。该功能默认不开启,
需要
在采集中心中修改配置文件conf/ snmp_udp_config.properties。
修改配置后,
需要重新启动采集中心。具体配置详见附录:SNMP Trap 推送配置信息。
当某个节点发生异常或异常恢复时,将推送以下PDU 内容: