可选 dll_name 参数是希望 mlreplay 使用的重放 DLL 的名称。重放 DLL 在重放 API 中进行编译。请参见MobiLink 生成的重放 API 实用程序 (mlgenreplayapi)。
"名称=值" 类似于重放 API 的命令行参数。它们在所有 mlreplay 回调中均可访问,并且可用于自定义重放 DLL 的行为。仅当使用重放 DLL 时才使用它们。例如,要使用相同的重放 DLL 对不同的数据库(含不同 mlreplay 实例)执行同步,并且在同步结束时要连接到数据库以确保成功上载了数据,则可使用
"名称=值" 对为数据库指定连接字符串,而不是在重放 DLL 中进行硬编码。
每个被记录的文件称作记录协议文件。从连接开始到该连接结束期间接收的所有数据都会记录在一个单独的记录协议文件中。每个记录协议文件名为 recorded_protocol_x.mlr,其中 x 是作业 ID。MobiLink 服务器 -rp 选项用于指定 MobiLink 服务器应记录从其客户端接收的所有 MobiLink 协议。请参见-rp mlsrv16 选项。
除 MobiLink 服务器发送和接收的数据外,记录协议文件还包含计时信息,使得 mlreplay 可准确重放记录的协议信息(如同其最初执行一般)。还可通过计时信息尝试使模拟客户端使用与原始客户端相同的时间。
缺省情况下,mlreplay 会一成不变地播放记录协议文件。不过,可以使用不同的选项自定义重放会话。模拟客户端信息包含用户名、口令、远程 ID、上次下载时间和脚本版本。可分别使用 -u、-p、-r(或 -rg)-ldt 和 -sv 选项自定义该信息。
mlreplay 实用程序可使用多个不同模拟客户端同时重放记录协议文件。有三种方法可实现这一点:
仅使用命令行
使用 -n、-u、-p、-sv、-r、-rg 和 -rp 选项组合同时重放记录协议文件。-n 选项用于指定模拟客户端数,而 -u、-p、-sv、-r 和 -rg 则用于指定关于每个客户端的信息。缺省情况下,使用 -u、-p、-sv 和/或 -r
时可根据需要多次指定星号 (*),以告知 mlreplay 将星号替换为模拟客户端的数量。使用 -rp 选项可将星号改为任意其它字符。
例如,mlreplay -ap -x tcpip -n 2 -rp $ -u user_$ -p pwd_$ -r rid_$ -sv test_script recorded_protocol.mlr 通过两个模拟客户端运行 mlreplay。模拟客户端 1 具有以下信息:
用户:user_1
口令:pwd_1
远程 ID:rid_1
脚本版本:test_script
模拟客户端 2 具有以下信息:
用户:user_2
口令:pwd_2
远程 ID:rid_2
脚本版本:test_script
如果忽略任意选项,则使用以下规则:
当未指定用户名、口令或脚本版本时,模拟客户端使用记录协议文件中记录的用户名、口令或脚本版本。
未指定远程 ID 且模拟客户端数大于 1 时,将为每个远程 ID 自动生成不同的 GUID。模拟客户端数为 1 时,将使用记录协议文件中记录的远程 ID。使用 -rg 选项可强制生成 GUID。
当指定了用户名、口令、远程 ID 或脚本版本,但不包含星号 (*)(或 -rp 选项指定的任意字符)时,每个模拟客户端使用相同的用户名、口令、远程 ID 或脚本版本。
使用模拟客户端信息文件
通过使用 -sci 选项指定模拟客户端信息文件,可同时重放记录协议文件。模拟客户端信息文件是 .csv 文件,其中每行按顺序依次包含用户名、口令、远程 ID、上次下载时间和脚本版本。
mlreplay 实用程序按仅使用命令行部分选项中描述的相同规则填充空字段。
缺省情况下,mlreplay 为模拟客户端信息文件中的每行信息创建一个模拟客户端。不过,可将 -n 选项与 -sci 文件一起使用以限制模拟客户端的数量。如果模拟客户端信息文件指定 x 个模拟客户端,则可使用 -n 选项指定一个 1 到 x 之间的数字,以使 mlreplay 仅使用此数量的模拟客户端。
使用模拟客户端信息文件比仅使用命令行更为灵活,但不如使用重放 DLL 灵活。
使用重放 DLL
使用重放 DLL 时,使用 -n 选项指定模拟客户端的数量。当 mlreplay 调用用户实施的回调时将检索所有其它信息。此方法提供了最大的灵活性,因为它允许自定义重放的其它部分。 请参见MobiLink 重放 C++ 回调和MobiLink 生成的重放 API 实用程序 (mlgenreplayapi)。
mlreplay 实用程序可以运行多个模拟客户端以通过命令行重放协议。要运行的模拟客户端的数量可由 -n 选项指定。使用 -u、-p -r 和 -sv 选项指定用户名、口令、远程 ID 和脚本版本时,应分别使用星号字符来表示模拟客户端号。以下规则用于决定每个模拟客户端的用户名、口令、远程
ID 和脚本版本:
未指定用户名或口令时,所有模拟客户端均使用正在重放的记录协议文件中记录的用户名或口令。
未指定远程 ID 且模拟客户端数量大于 1 时,每个远程 ID 都变为自动生成的 GUID。模拟客户端数量为 1 时,使用记录协议文件中记录的远程 ID;可以通过 -rg 选项强制使用 GUID 值。
当指定的用户名、口令或远程 ID 不包含星号时,各模拟客户端使用相同的用户名、口令或远程 ID。当指定的用户名、口令或远程 ID 至少包含一个星号时,各模拟客户端获取其自身的唯一用户名、口令或远程 ID 并用模拟客户端号替换各个星号。
原始同步花费的时间是记录时间的一部分,因此 mlreplay 可尝试用同样的时间重放同步。
使用含有以下 MobiLink 服务器选项的 mlreplay 实用程序:
-rp
使用此选项指定将会记录下来以便使用 mlreplay 实用程序重放的同步所在的目录。
-rrp
使用此选项在 MobiLink 服务器启动时运行 mlreplay 实用程序。
-lsc
使用此选项指定本地服务器的连接信息,以便 mlreplay 实用程序可连接到服务器。
使用 MobiLink 生成的重放 API 实用程序可对重放会话进行更多自定义设置。