要检查是否存在已到达数据库的新消息,消息代理 (dbremote) 会轮询新消息。缺省的轮询间隔(从一次轮询结束到下一次轮询开始)为 1 分钟。可以使用 -rd 选项配置轮询间隔,但通常缺省值便足够。
通过使用以秒为单位的值可以更频繁地轮询。例如,以下命令每三十秒轮询一次:
dbremote -c "DSN=SQL Anywhere 11 Demo" -rd 30s |
一般来说,除非有特殊原因需要对消息作出快速响应,否则不要使用非常短的轮询间隔。将间隔设置得非常短可能会对系统的整体吞吐量产生不利影响,因为:
当队列中没有消息时进行轮询会浪费资源。例如,如果正在使用电子邮件,则每次轮询邮件服务器时都会增加消息系统的负荷。轮询太频繁可能会影响消息系统,并且不会带来任何益处。
重新发送请求会使您的系统过载。调整轮询间隔时,还应调整消息代理 (dbremote) 的等待时间。此等待时间是消息代理 (dbremote) 在请求重新发送未按顺序到达的消息之前等待该消息到达所经历的轮询数。请参见调整要重新发送消息的请求。
可以较低的频率轮询,如以下命令所示(每五分钟轮询一次):
dbremote -c "DSN=SQL Anywhere 11 Demo" -rd 5 |
设置较长的轮询间隔可以提高系统整体的消息吞吐量,但会增加应用各条消息的时间。例如,如果检查进来的消息的轮询周期与消息到达的频率相比过长,则结果可能是消息搁置在队列中,等待接受处理。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |