A QAnywhere client application can send special messages to the server called server management requests. These messages contain content that is formatted as XML and are addressed to the QAnywhere system queue. They require a special authentication string. Server management requests can perform a variety of functions, such as:
Starting and stopping connectors and web services.
See Opening connectors and Closing connectors.
Monitoring connector status.
Setting and refreshing client transmission rules.
See Specifying transmission rules with a server management request.
Monitoring message status.
See Monitoring QAnywhere.
Setting, updating, deleting, and querying client message store properties on the server.
See Setting server properties with a server management request.
Cancelling messages.
See Cancelling messages.
Querying for active clients, message store properties, and messages.
By default, server management requests must be addressed to ianywhere.server\system. To change the client ID portion of this address, set the ianywhere.qa.server.id property and restart the server. For example, if the ianywhere.qa.server.id property is set to myServer, server management requests are addressed to myServer\system.
For more information about setting the ianywhere.qa.server.id property, see Server properties.
For more information about addressing QAnywhere messages, see Sending QAnywhere messages.
For more information about the system queue, see System queue.
The message string property ias_ServerPassword specifies the server password. The server password is set using the ianywhere.qa.server.password.e property. If this property is not set, the password is QAnywhere.
The server password is transmitted as text. Use an encrypted communication stream to send server management requests that require a server password.
For more information about the ianywhere.qa.server.password.e property, see Server properties.
The following is a sample message details request. It generates a single report that displays the message ID, status, and target address of all messages with priority 9 currently on the server.
<?xml version="1.0" encoding="UTF-8"?> <actions> <MessageDetailsRequest> <request> <requestId>testRequest</requestId> <condition> <priority>9</priority> </condition> <status/> <address/> </request> </MessageDetailsRequest> </actions>
The following example is in C#. It sets a server-side transmission rule for a client such that messages from the server are only transmitted to the client called someClient if the priority is greater than 4.
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 > 4</value>\n" + " </prop>\n" + " </SetProperty>\n" + " <RestartRules>\n" + " <client>someClient</client>\n" + " </RestartRules>\n" + "</actions>\n"; mgr.PutMessage( @"ianywhere.server\system", msg );
Writing server management requests
Custom message requests
Server management request DTD
Scheduling server management requests