mlreplay 实用程序是用于重放由 MobiLink 服务器记录的 MobiLink 协议信息的工具。
mlreplay [options] [name=value [name2=value2...]] [[dll_name] filename]
选项 | 说明 |
---|---|
@data |
此选项用于从指定的环境变量或配置文件中读入选项。如果存在具有相同名称的环境变量和配置文件,则使用环境变量。 请参见配置文件。 要保护口令或配置文件中的其它信息,可以使用文件隐藏实用程序对配置文件的内容进行模糊处理。 请参见文件隐藏实用程序 (dbfhide)。 |
-ap | 调整重放会话中正在重放的同步进度,从而避免 mlreplay 实用程序在 MobiLink 服务器上产生进度偏移不匹配的警告,并调整序号以避免出现序号错误。 |
-f time_scale_factor | 均匀应用到记录时间的乘数。 |
-ldt last_download_time | 指定要在重放会话期间发送给 MobiLink 服务器的上次下载时间。如果正在重放的记录协议包含多个同步(记录持久连接时可能出现这种情况),则只替换首个上次下载时间;其余的将会被 MobiLink 服务器在重放会话中发送给 mlreplay 的上次下载时间替换。即使未使用 -ldt 选项,mlreplay 仍会使用在重放会话过程中从 MobiLink 服务器接收到的上次下载时间替换所有的上次下载时间(除首个同步外)。也可使用模拟客户端信息文件(使用 -sci 选项时)或通过 IdentifySimulatedClient 回调(提供 DLL 时)指定上次下载时间。 |
-ls | 为每个模拟客户端记录总运行时间、重放所用总时间以及成功完成、失败或跳过的总重复次数。即使未指定此选项,mlreplay 仍会在退出之前记录此信息。 |
-n number_of_simulated_clients |
要运行的模拟客户端的数量。最小值为 1。 当 -n 指定的模拟客户端数量小于或等于模拟客户端信息文件中的模拟客户端数量时,此选项可与 -sci 选项一起使用。一起使用时,由 -n 指定运行的模拟客户端的数量。这两个选项允许用一个模拟客户端信息文件指定 x 个模拟客户端,进而通过第 1 至第 x 个模拟客户端重放协议。 |
-o file | 将命令行选项和输出消息记录到指定文件。 |
-os size | 限制日志文件的最大大小。当日志文件达到指定大小(最小 10 KB)后,将重新命名为 YYMMDDxx.rlg,并以原始名称起用一个新日志文件。 |
-ot file | 截断日志文件。将命令行选项和输出消息记录到指定文件。 |
-p password | 使用给定口令替换口令。 |
-ping seconds |
对 MobiLink 服务器执行强制回应命令以确定服务器是否已准备好接收同步。缺省情况下,mlreplay 会对服务器执行 60 秒的强制回应命令。 如果使用 -ping 选项,则以下返回代码有效:
|
-r remote ID | 将远程 ID 替换成给定的远程 ID。该选项不可与 -rg 选项一起使用。 |
-rep number_of_repetitions | 指定模拟客户端应重放记录协议的次数。如果使用重放 DLL/共享对象,则可以对每次重复进行自定义。使用生成的重放 API 时,每次重复都会调用 GetUploadTransaction、GetDownloadApplyTime、ReportEndOfReplay 和 DelayStartOfReplay 回调。 |
-rg | 将远程 ID 替换成 GUID。 |
-rnt seconds |
指示模拟客户端重新开始协议重放,直至达到指定秒数。模拟客户端并未停止,但也不会开始更多重复。 指定此选项后,任何 API 回调的 numRepetitions 参数都将设置为 0 |
-rp pattern | 用模拟客户端号替换在命令行中指定的用户名、口令和远程 ID 的指定模式。 |
-sci file |
向 mlreplay 提供有关用户名、口令、远程 ID、上次下载时间和脚本版本的列表以用于重放。mlreplay 会在文件中的每一行创建一个模拟客户端,以便通过该客户端信息重放记录协议。每行的格式应为:[用户名]、[口令]、[远程 ID]、[上次下载时间]、[脚本版本]。上次下载时间的格式应为 yyyy-MM-dd hh:mm:ss.SSS。如果将用户名、口令、上次下载时间或脚本版本字段留空,mlreplay 将使用记录协议中的相应值。如果将远程 ID 留空,mlreplay 则用 GUID 替换远程 ID。该选项不可与 -u、-p、-r、-rg、-ldt 和 -sv 选项一起使用,也不可与 DLL 一起使用。 当 -n 指定的模拟客户端数量小于或等于模拟客户端信息文件中的模拟客户端数量时,此选项可与 -n 选项一起使用。一起使用时,由 -n 指定运行的模拟客户端的数量。这两个选项允许用一个模拟客户端信息文件指定 x 个模拟客户端,进而通过第 1 至第 x 个模拟客户端重放协议。 |
-sv script version | 使用给定脚本版本替换脚本版本。 |
-u user name | 将用户名替换成给定用户名。 |
-x stream(opts) | 用于连接 MobiLink 服务器的协议流和流选项。可使用此选项设置活动超时,并根据 MobiLink 服务器使用的内容自动进行调整。 |
可选 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 具有以下信息:
模拟客户端 2 具有以下信息:
如果忽略任意选项,则使用以下规则:
使用模拟客户端信息文件 通过使用 -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 实用程序可对重放会话进行更多自定义设置。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |