Appboard/2.5/builder/errors: Difference between revisions
imported>Jason.nicholls |
imported>Jason.nicholls |
||
(27 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
AppBoard consists of both a client component, the Builder or Viewer, and a server component. Errors can occur in a variety of circumstances both on the client and the server, sometimes these are very straight forward, and other times it can be a challenge to follow what is happening with complex deployments and many things happening at once. | AppBoard consists of both a client component, the Builder or Viewer, and a server component. Errors can occur in a variety of circumstances both on the client and the server, sometimes these are very straight forward, and other times it can be a challenge to follow what is happening with complex deployments and many things happening at once. | ||
This document is not a comprehensive guide to every error message | This document is not a comprehensive guide to every error message, instead the focus is on errors that occur during communications between the client and server when trying to fetch data. This could be due to previewing Data Collections, viewing a board, and any active (visible) Data Collections set to poll. | ||
== Client Behaviour == | == Client Behaviour == | ||
In the event of | In the event of a data or communications error the client will attempt to gracefully continue. This means active Data Collections set to poll will continue to poll, however one-off queries, such as Data Collection preview, are ''not'' automatically retried. | ||
Administrator users in the Builder will | Administrator users in the Builder will see all error messages. Some suppression is used to avoid displaying an error message that's already visible, or popping up within 30 seconds of the previous occurrence. | ||
In the Viewer when [[appboard/2.5/admin/accessing_appboard#Kiosk_Mode|Kiosk Mode]] is enabled all error messages are suppressed. | In the Viewer when [[appboard/2.5/admin/accessing_appboard#Kiosk_Mode|Kiosk Mode]] is enabled all error messages are suppressed. | ||
When logged in as a non-administrator to the Viewer error messages are also displayed, however less information is shown to avoid disclosing any sensitive information. Optionally the system administrator can modify the client configuration file to suppress all error messages in the Viewer: | |||
* Edit <tt>[INSTALL_HOME]/server/webapps/enportal/visualizer/assets/config.xml</tt> | * Edit <tt>[INSTALL_HOME]/server/webapps/enportal/visualizer/assets/config.xml</tt> | ||
Line 36: | Line 33: | ||
=== Client Timeout === | === Client Timeout === | ||
A client timeout occurs when the client was able to issue a request but the server cannot | [[File:appboard-2.5-error-client-timeout.png|frame|right|Example administrator client timeout error message]] | ||
<tt>There has been a connection error</tt> | |||
A client timeout occurs when the client was able to issue a request but the server cannot complete the request in time. Unless the server itself is completely overloaded this type of error is typically because the data source itself is taking a long time to respond. | |||
For administrator users the error message reads <tt>Request timed out</tt> and indicates the specific Data Collection being queried. In example the screenshot this is <tt>mysql.slow_query</tt>. | |||
The client | The client timeout exists so that data polls aren't completely blocked by a slow request. The timeout duration is configurable, see the ''Client Behaviour'' section above for more details. | ||
Generally a deployment should be designed such that users aren't waiting on slow queries to drive | Generally a deployment should be designed such that users aren't waiting on slow queries to drive widgets. This error message can help to identify the slow queries so caching and polling values can be tweaked, or other optimizations done to improve the response. | ||
=== Server-Side Error === | === Server-Side Error === | ||
[[File:appboard-2.5-error-server-admin.png|frame|right|Example administrator message for server-side error]] | |||
<tt>There has been a server error</tt> | |||
This type of error encapsulates all errors that can occur on the server side. These may be due to communications issues to the data source, authentication issues, invalid queries, unexpected responses, missing files, missing JDBC drivers, etc... | This type of error encapsulates all errors that can occur on the server side. These may be due to communications issues to the data source, authentication issues, invalid queries, unexpected responses, missing files, missing JDBC drivers, etc... | ||
In order for the client to show a server-side error then the server needs to respond within the client timeout. | |||
Both admin and non-admin error messages will indicate the specific transaction id so the administrator can see the full transaction details in the <tt>appBoard.log</tt>. For administrators the name of the Data Collection and the error details are also shown. | |||
=== Communication Failure === | === Communication Failure === | ||
[[File:appboard-2.5-error-comm-failure.png|frame|right|Example administrator communications failure]] | |||
<tt>There has been a connection error</tt> | |||
If the client cannot communicate with the server at all this message is shown. This type of error may occur due to a networking issue, e.g. wireless down or cable unplugged, or it could be due to the AppBoard server going offline. | If the client cannot communicate with the server at all this message is shown. This type of error may occur due to a networking issue, e.g. wireless down or cable unplugged, or it could be due to the AppBoard server going offline. | ||
For both admin and non-admin users the error message indicates <tt>Send request to server failed ...</tt>. Administrators also see the Data Collection that triggered the request, however in this situation the real issue is the server is not contactable. |
Latest revision as of 09:44, 28 October 2014
Overview
AppBoard consists of both a client component, the Builder or Viewer, and a server component. Errors can occur in a variety of circumstances both on the client and the server, sometimes these are very straight forward, and other times it can be a challenge to follow what is happening with complex deployments and many things happening at once.
This document is not a comprehensive guide to every error message, instead the focus is on errors that occur during communications between the client and server when trying to fetch data. This could be due to previewing Data Collections, viewing a board, and any active (visible) Data Collections set to poll.
Client Behaviour
In the event of a data or communications error the client will attempt to gracefully continue. This means active Data Collections set to poll will continue to poll, however one-off queries, such as Data Collection preview, are not automatically retried.
Administrator users in the Builder will see all error messages. Some suppression is used to avoid displaying an error message that's already visible, or popping up within 30 seconds of the previous occurrence.
In the Viewer when Kiosk Mode is enabled all error messages are suppressed.
When logged in as a non-administrator to the Viewer error messages are also displayed, however less information is shown to avoid disclosing any sensitive information. Optionally the system administrator can modify the client configuration file to suppress all error messages in the Viewer:
- Edit [INSTALL_HOME]/server/webapps/enportal/visualizer/assets/config.xml
- Find the attribute viewerHideErrors and set this to true
- Reload the client - a server restart is not required.
Both the Builder and Viewer feature a client timeout which is configurable. This is the number of seconds the client will wait for a response from the AppBoard server.
- Edit [INSTALL_HOME]/server/webapps/enportal/visualizer/assets/config.xml
- Find the attribute timeout and set this to the desired value in seconds. The default value is 120.
- Reload the client - a server restart is not required.
Types of Data / Communication Errors
There are three main types of data and communications errors that can occur.
Client Timeout
There has been a connection error
A client timeout occurs when the client was able to issue a request but the server cannot complete the request in time. Unless the server itself is completely overloaded this type of error is typically because the data source itself is taking a long time to respond.
For administrator users the error message reads Request timed out and indicates the specific Data Collection being queried. In example the screenshot this is mysql.slow_query.
The client timeout exists so that data polls aren't completely blocked by a slow request. The timeout duration is configurable, see the Client Behaviour section above for more details.
Generally a deployment should be designed such that users aren't waiting on slow queries to drive widgets. This error message can help to identify the slow queries so caching and polling values can be tweaked, or other optimizations done to improve the response.
Server-Side Error
There has been a server error
This type of error encapsulates all errors that can occur on the server side. These may be due to communications issues to the data source, authentication issues, invalid queries, unexpected responses, missing files, missing JDBC drivers, etc...
In order for the client to show a server-side error then the server needs to respond within the client timeout.
Both admin and non-admin error messages will indicate the specific transaction id so the administrator can see the full transaction details in the appBoard.log. For administrators the name of the Data Collection and the error details are also shown.
Communication Failure
There has been a connection error
If the client cannot communicate with the server at all this message is shown. This type of error may occur due to a networking issue, e.g. wireless down or cable unplugged, or it could be due to the AppBoard server going offline.
For both admin and non-admin users the error message indicates Send request to server failed .... Administrators also see the Data Collection that triggered the request, however in this situation the real issue is the server is not contactable.