Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » QAnywhere » 服务器管理请求

 

服务器管理请求简介

QAnywhere 客户端应用程序可以将称为服务器管理请求的特殊消息发送到服务器。这些消息包含格式化为 XML 并要发送到 QAnywhere 系统队列的内容。它们需要一个特殊的验证字符串。服务器管理请求可以执行许多功能,例如:

指定服务器管理请求的地址

缺省情况下,服务器管理请求必须定址于 ianywhere.server\system.。要更改此地址的客户端 ID 部分,请设置 ianywhere.qa.server.id 属性并重新启动服务器。例如,如果 ianywhere.qa.server.id 属性设置为 myServer,则服务器管理请求定址为 myServer\system。

有关设置 ianywhere.qa.server.id 属性的详细信息,请参见服务器属性

有关指定 QAnywhere 消息的地址的详细信息,请参见发送 QAnywhere 消息

有关系统队列的详细信息,请参见系统队列

示例

以下是一个消息详细信息请求的示例。它生成一个报告,该报告显示当前在服务器上优先级为 9 的所有消息的消息 ID、状态和目标地址。

<?xml version="1.0" encoding="UTF-8"?>
<actions>
   <MessageDetailsRequest>
      <request>
         <requestId>testRequest</requestId>
         <condition>
            <priority>9</priority>
         </condition>
         <status/>
         <address/>
      </request>
   </MessageDetailsRequest>
</actions>

以下示例采用 C# 编写。它为客户端设置这样的服务器端传输规则,即优先级大于 4 时,来自服务器的消息仅传送至称为 someClient 的客户端。

QAManager mgr = ...; // Initialize the QAManager
QAMessage msg = mgr.CreateTextMessage();
msg.SetStringProperty( "ias_ServerPassword", "QAnywhere" );

// Indenting and newlines are just for readability
msg.Text = "<?xml version="1.0" encoding="UTF-8"?>\n"
+ "<actions>\n"
+ " <SetProperty>\n"
+ "  <prop>\n"
+ "   <client>someClient</client>\n"
+ "   <name>ianywhere.qa.server.rules</name>\n"
+ "   <value>ias_Priority &gt; 4</value>\n"
+ "  </prop>\n"
+ " </SetProperty>\n"
+ " <RestartRules>\n"
+ "  <client>someClient</client>\n"
+ " </RestartRules>\n"
+ "</actions>\n";

mgr.PutMessage( @"ianywhere.server\system", msg );
验证服务器管理请求

ianywhere.qa.server.password.e 服务器属性用于指定一个口令,使用该口令来验证服务器管理请求。如果未设置该属性,则口令为 QAnywhere。请参见服务器属性