我正在处理日志。我想重现应用程序无法连接到服务器的日志。
目前我正在使用的命令是
db2 force applications all
这将关闭所有连接,然后我一个接一个地停用每个数据库
db2 deactivate db "database_name"
发生的情况是它暂时阻止连接,一分钟后我的应用程序能够再次创建连接,因此我无法重新生成日志。任何想法我该怎么做?
你要找的是 QUIESCE。
默认情况下,用户可以连接到数据库。它变为活动状态,并初始化内部内存中数据结构。当最后一个连接关闭时,数据库将变为非活动状态。激活数据库会使它们保持初始化状态并"随时可用"。
静默数据库会使它们进入管理状态。普通用户无法连接。您可以静默单个数据库或整个实例。有关管理对静默实例的访问的一些选项,请参阅文档。以下内容会强制所有用户离开当前数据库并使其远离:
db2 quiesce db immediate
如果要为应用生成连接错误,还有其他选项。您是否曾经尝试过连接到一个非终止端口,而 Db2 没有侦听它?或者撤消尝试连接的该用户的连接权限。
可以使用几种测试策略,它们涉及中断客户端和服务器之间的网络连接:
- 更改客户机上的 IP 路由表以将 DB2 服务器地址路由到不存在的子网
- 通过可以关闭的代理软件使用连接,有一个特殊的代理ToxiProxy,旨在测试网络中断
- 从客户端计算机上拔出以太网电缆,观察然后将其重新插入(我已经这样做了)
这样做的优点是不会为正在进行的其他测试禁用 DB2 服务器。