EAE Query Service Client

The purpose of the Query Service Client is to make it simpler to create modules querying the Query Service, hiding TCP/IP communication and XML logic. In summary, the way this remote client works, is that you first create an instance of a query manager, i.e., for page view queries you create an instance of PageviewQueryManager, and tell this manager the URL to the Query Service servlet. Then you can call all the available query methods. These methods return special objects/Beans, wrapping the response from the Query Service.

Examples and documentation on this remote client API is available in the Query Service Client JavaDoc, found in documentation/javadoc/qs-client/.

Please note that for sites with high traffic peaks where the application servers receive too many requests, the Query Service may become too busy, and, it would take too long to respond to the Query Service Client. The client keeps waiting until it receives response from the Query Service which may cause performance issues to the sites using this service. To cope with such situations, one can define two system properties sun.net.client.defaultConnectTimeout (default -1) and sun.net.client.defaultReadTimeout (default -1) in the appserver start up script as a workaround. These properties specify the default connect and read timeout in milliseconds, respectively. If the timeout values expire before connection can be established to the Query Service or data is available to the Query Service Client, having these properties defined will cause a java.net.SocketTimeoutException to be raised.

For more information about these system properties, please refer to http://java.sun.com/j2se/1.5.0/docs/guide/net/properties.html.