以下步骤介绍消息代理 (dbremote) 如何应用进来的消息:
它读取消息。消息将被读取且标头信息将被检查(以确定正确的应用顺序)。从消息系统读取消息的操作是单线程的。
它应用消息。将读取的消息传递给数据库工作线程以进行应用。
在远程数据库中,通常以串行方式应用消息。在多层系统中,远程数据库也可以作为其它远程数据库的统一数据库。在此类远程数据库中,消息的应用方式与统一数据库中一样。
在统一数据库中,缺省设置为以串行方式应用消息。可以使用附加的数据库工作线程以并行方式应用远程用户发来的消息。请参见消息代理 (dbremote)中的 -w 选项。
当在统一数据库中使用数据库工作线程时:
不同远程用户发来的消息将以并行方式进行应用。
来自一个远程用户的消息将以串行方式应用。
例如,来自同一远程用户的十条消息将由一个工作线程按正确的顺序应用。
在统一数据库中使用数据库工作线程可提高吞吐量,方法是以并行方式(而不是串行方式)应用消息。如果数据库服务器位于具有条纹化驱动器阵列的系统上,则性能优势将非常显著。
如果在统一数据库中使用数据库工作线程导致用户之间的大量锁定,则会降低吞吐量。
死锁将通过稍后重新应用已回退的事务来进行处理。
在统一数据库中,使用 -w 选项设置数据库工作线程的数目。
例如,以下命令可将工作线程数设置为 5:
dbremote -c "DSN=SQL Anywhere 11 Demo" -w 5 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |