若要异步接收消息,必须编写并注册一个消息监听器函数,当队列中出现消息时,由 QAnywhere 调用此函数。消息监听器将进来的消息作为一个参数。消息监听器执行的任务取决于您的应用程序。例如,随 SQL Anywhere Studio 一起安装的 TestMessage 示例应用程序中,消息监听器将消息添加到 TestMessage 主窗口的消息列表中。
异步接收消息 (C++)
创建一个实现 QAMessageListener 接口的类。
class MyClass: public QAMessageListener
{
private:
void onMessage( QAMessage * Msg);
};实现 onMessage 方法。
QAMessageListener 接口包含 onMessage 方法。每当有消息到达队列时,QAnywhere 库就将新消息作为一个参数传递给此方法并进行调用。
void MyClass::onMessage(QAMessage * msg)
{
// process msg
}处理错误时应特别小心。否则可能导致丢失消息。
注册消息监听器。
my_listener = new MyClass(); mgr->setMessageListener( "queue-name", my_listener );
异步接收消息 (.NET)
实现消息处理程序。
private void onMessage(QAMessage msg)
{
// process msg
}注册消息处理程序。
若要注册消息处理程序,请创建一个 QAManager.MessageListener 对象,该对象将消息处理程序作为其参数。然后使用 QAManager.SetMessageListener 函数在特定队列中注册该 MessageListener。
QAManager.MessageListener listener; listener=new QAManager.MessageListener( onMessage ); mgr.SetMessageListener( "queue-name", listener );
此处的 queue-name 是一个字符串,是 QAManager 对象监听的队列的名称。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。