The load balancer plug-in uses the web server’s logging mechanism to write log messages. The default log level on the Application Server is set to the default logging level on Sun Java System Web Server (INFO), Apache Web Server (WARN) and Microsoft IIS (INFO). The application server log levels, FINE, FINER, and FINEST, map to the DEBUG level on the web server.
These log messages are written to the web server log files, and are in the form of raw data that can be parsed using scripts, or imported into spreadsheets to calculate required metrics.
The load balancer plug-in generates the following types of log messages:
These messages will be logged when you are using idempotent URLs and error page settings.
An output for idempotent URL pattern configuration contains the following information:
When the log level is set to FINE:
CONFxxxx: IdempotentUrlPattern configured <url-pattern> <no-of-retries> for web-module : <web-module>
When the log level is set to SEVERE:
CONFxxxx: Duplicate entry of Idempotent URL element <url-pattern> for webModule <web-module> in loadbalancer.xml."
When the log level is set to WARN:
CONFxxxx: Invalid IdempotentUrlPatternData <url-pattern> for web-module <web-module>
An output for error page URL configuration contains the following information (log level set to WARN):
CONFxxxx: Invalid error-url for web-module <web-module>
These log messages are generated while a request is being load balanced and dispatched.
An output for standard logging for each method start contains the following information (log level set to FINE):
ROUTxxxx: Executing Router method <method_name>
An output for router logs for each method start contains the following information (log level set to INFO):
ROUTxxxx: Successfully Selected another ServerInstance for idempotent request <Request-URL>
An output for runtime logs contains the following information (log level set to INFO):
RNTMxxxx: Retrying Idempotent <GET/POST/HEAD> Request <Request-URL>
These errors appear if there are configuration problems, for example, if the custom error page referenced is missing.
Log level set to INFO:
ROUTxxxx: Non Idempotent Request <Request-URL> cannot be retried
For example: ROUTxxxx: Non Idempotent Request http://sun.com/addToDB?x=11&abc=2 cannot be retried
Log level set to FINE:
RNTMxxxx: Invalid / Missing Custom error-url / page: <error-url> for web-module: <web-module>
For example: RNTMxxxx: Invalid / Missing Custom error-url / page: myerror1xyz for web-module: test
The load balancer plug-in logs the following information:
Request start/stop information for every request.
Failed-over request information when the request fails over from an unhealthy instance to a healthy instance.
List of unhealthy instances at the end of every health check cycle.
When load balancer logging is enabled, and if the web server logging level is set to DEBUG or to print verbose messages, the load balancer writes HTTP session IDs in the web server log files. Therefore, if the web server hosting the load balancer plug-in is in the DMZ, do not use the DEBUG or similar log level in production environments.
If you must use the DEBUG logging level, turn off load balancer logging by setting require-monitor-data property to false in loadbalancer.xml.
Set the logging options in the web server. The procedure depends on the web server:
Set the load balancer configuration’s monitor option to true.
Use the asadmin create-http-lb-config command to set monitoring to true when you initially create the load balancer configuration, or use the asadmin set command to set it to true later. Monitoring is disabled by default.
The format of the load balancer plug-in log messages is as follows.
The start of an HTTP request contains the following information:
RequestStart Sticky(New) <req-id> <time-stamp> <URL>
The timestamp value is the number of milliseconds from January 1, 1970. For example:
RequestStart New 123456 602983 http://austen.sun.com/Webapps-simple/servlet/Example1
The end of an HTTP request contains the RequestExit message, as follows:
RequestExit Sticky(New) <req-id> <time-stamp> <URL> <listener-id> <response-time> Failure-<reason for error>(incase of a failure)
For example:
RequestExit New 123456 603001 http://austen.sun.com/Webapps-simple/servlet/Example1 http://austen:2222 18
In the RequestExit message, response-time indicates the total request turnaround time in milliseconds, from the perspective of the load balancer plug-in.
The list of unhealthy instances, as follows:
UnhealthyInstances <cluster-id> <time-stamp> <listener-id>, <listener-id>...
For example:
UnhealthyInstances cluster1 701923 http://austen:2210, http://austen:3010
A list of failed-over requests, as follows:
FailedoverRequest <req-id> <time-stamp> <URL> <session-id> <failed-over-listener-id> <unhealthy-listener-id>
For example:
FailedoverRequest 239496 705623 http://austen.sun.com/Apps/servlet/SessionTest 16dfdac3c7e80a40 http://austen:4044 http://austen:4045