WebMaker deployed applications can be tuned to meet various specific requirements based on the server environment and the type of applications deployed. There are various considerations that will require identification of environmental aspects before it is possible to decide on the best configuration for an application or set of applications.
The first steps are to obtain various elements of information to assist in reviewing the best options:
Obtaining the Platform Information
When a WebMaker application is started on a Server, WebMaker will initiate some setup before running a selected application. WebMaker maintains various platform related information as an application runs. These details can be inspected at any time by calling a specific URL for the application to examine the Platform Information.
The first step is to determine the Server and Web Application name, then append the specific WebMaker reserved action name that will retrieve the Platform information:
http://<server-name>:<port>/<web-application-name>/get_xplatform_info.do
Note: For BizFlow WebMaker applications "/bizflowwebmaker+?+?+? needs to be inserted into the URL above just after the <port> number.
Calling this URL while the platform is running on the server will return platform details about what is currently running. The information will vary quite considerably depending on the exact configuration of the Publication environment. Attached to this FAQ you will find a couple of example files illustrating a "dynamic" and a "static" platform information reports.
The first step would be to call the URL when the application is first started up, and then again after any stress testing is performed. This will highlight the differences between the initial setup configuration and the running application configuration. These details can then be reviewed for optimisation purposes.
Understanding the Platfom Information Report
When an application is published to a server the settings above are actually deployed as a morphyc configuration file onto the server. The exact location will depend on the environment specific details.
The key elements to look for in the XML report produced from the URL above are:
Background to default settings
WebMaker publishes applications with a set of default settings based on a preconfigured Publication Environment profile. These settings are basic settings that may work for many small applications, but larger more sophisticated applications will possibly require tuning for performance.
To view the Publication details for an application, access the "Deploy & Publish" icon on the main WebMaker Project screen. The Publication details are the configuration information for the WebMaker platform that will be used when the application is published to the defined environment on a server. The screen will show the list of currently defined publication environments. Edit the appropriate Publication and then click the link to the "Configure the Runtime Platform for this Environment". Finally, click on the "Configure Morphyc Settings", which will display the specific application settings.
This FAQ will not go through all the screen details and parameters as they can be found in the Product Documentation via the WebMaker "Help+?+?-?" tab. The specific documentation section that covers this area can be found in the "Installation and Administration Guide".
Reviewing the Platform Information
The tuning of applications should be reviewed in the context of the environment that the applications will be used, and also the nature of the usage of the application by users. This section examines some of those considerations, in order to provide pointers to the appropriate tuning required.
The following are various key points to be considered:
Note: For production environments it is worth checking that the Development and Administration logs are switched off, as they are only required for debugging scenarios. The Platform logs should be set to report only Errors. These are the default settings.
Altering Publication Environment Details
Once publication settings have been changed for a Publication environment, the platform information URL can be used again to review the outcome of the changes. You may find that you need to go through a few iterations to get the optimal configuration.
It is not necessary to restart the Application server to get the settings to take effect. There is another default action with every WebMaker application, which will reload the application. This process will restart the application and configure appropriately.
The URL to call is:
http://<server-name>:<port>/<web-application-name>/reload_application.do
Note: For BizFlow WebMaker applications "/bizflowwebmaker" needs to be inserted into the URL above just after the <<port>> number.
Note: One final important consideration is that if you extend the application in the future (adding new pages and controllers), then you may well need to review and refine the settings.
The first steps are to obtain various elements of information to assist in reviewing the best options:
- Hardware Configuration +?+?+? What is the operating system, CPU and memory specification and the Application Server configuration for these elements.[/*]
- Current WebMaker Publication +?+?+? Obtain the current WebMaker platform information for the published environment to establish how it is currently setup.[/*]
Obtaining the Platform Information
When a WebMaker application is started on a Server, WebMaker will initiate some setup before running a selected application. WebMaker maintains various platform related information as an application runs. These details can be inspected at any time by calling a specific URL for the application to examine the Platform Information.
The first step is to determine the Server and Web Application name, then append the specific WebMaker reserved action name that will retrieve the Platform information:
http://<server-name>:<port>/<web-application-name>/get_xplatform_info.do
Note: For BizFlow WebMaker applications "/bizflowwebmaker+?+?+? needs to be inserted into the URL above just after the <port> number.
Calling this URL while the platform is running on the server will return platform details about what is currently running. The information will vary quite considerably depending on the exact configuration of the Publication environment. Attached to this FAQ you will find a couple of example files illustrating a "dynamic" and a "static" platform information reports.
The first step would be to call the URL when the application is first started up, and then again after any stress testing is performed. This will highlight the differences between the initial setup configuration and the running application configuration. These details can then be reviewed for optimisation purposes.
Understanding the Platfom Information Report
When an application is published to a server the settings above are actually deployed as a morphyc configuration file onto the server. The exact location will depend on the environment specific details.
The key elements to look for in the XML report produced from the URL above are:
- xgate_info / action +?+?+? This section defines all the actions (URLs) that can be requested within the application. Three of the actions are WebMaker defined actions: "get_xplatform_info", "refresh_logs" and "reload_application". All the others will be the actions defined on the Application Map screen within FormMaker.[/*]
- xplatform_info / morphyc_info +?+?+? These details document the main configuration settings for the application. The "xplatform_mode" will usually be "static" or "on-demand". The +?+?-?default_pooling+?+?+? can be configured to start any number of WebMaker engines to process user sessions. The +?+?-?min+?+?+? defines how many are started initially, and the +?+?-?max+?+?+? defines the top limit that can be created.[/*]
- xagents_info / xagent_info +?+?+? This section defines the agent/nodes that are running and their appropriate pooling options. There will be an entry for each +?+?-?View+?+?+?, +?+?-?Controller+?+?+? and +?+?-?Model+?+?+? defined for a WebMaker application. The +?+?-?pooling+?+?+? details define the defaults for the number of engines to be run. These settings are based on the general application wide settings unless specific details have been setup for an agent/node. The +?+?-?pool_info+?+?+? provides the actual settings at a point in time. So, it is possible to see if the +?+?-?max+?+?+? engines was used at any time by examining the +?+?-?peak+?+?+? and +?+?-?current+?+?+? values.[/*]
- assets_info +?+?+? This section provides details of key XML assets used by the application that are cached for performance reasons if the mode is defined as +?+?-?static+?+?+? or +?+?-?on-demand+?+?+?. They will predominantly be XSL files used for rendering the actual web pages (View Page Painter), and supporting XSLs used for various XML transformation needs e.g. processing SOAP messages.[/*]
- cache_info / app_info +?+?+? This lists any application wide cache definitions. Each of these cache introduces will hold the associated XML information that was requested to be cached.[/*]
- cache_info / session_info +?+?+? This lists each of the active web sessions and also the user session caches they have created. This is the area that can have the most impact on memory usage if there are a lot of sessions with multiple cache details.[/*]
Background to default settings
WebMaker publishes applications with a set of default settings based on a preconfigured Publication Environment profile. These settings are basic settings that may work for many small applications, but larger more sophisticated applications will possibly require tuning for performance.
To view the Publication details for an application, access the "Deploy & Publish" icon on the main WebMaker Project screen. The Publication details are the configuration information for the WebMaker platform that will be used when the application is published to the defined environment on a server. The screen will show the list of currently defined publication environments. Edit the appropriate Publication and then click the link to the "Configure the Runtime Platform for this Environment". Finally, click on the "Configure Morphyc Settings", which will display the specific application settings.
This FAQ will not go through all the screen details and parameters as they can be found in the Product Documentation via the WebMaker "Help+?+?-?" tab. The specific documentation section that covers this area can be found in the "Installation and Administration Guide".
Reviewing the Platform Information
The tuning of applications should be reviewed in the context of the environment that the applications will be used, and also the nature of the usage of the application by users. This section examines some of those considerations, in order to provide pointers to the appropriate tuning required.
The following are various key points to be considered:
- Memory +?+?+? It is important to assess the level of memory available on the server for the WebMaker application. If the memory is limited then there are likely to be more refinements required to get optimum performance. Caching options have to be considered carefully especially individual user sessions, as they can consume a lot of memory.[/*]
- Processors +?+?+? It is important to assess the level of CPU power being used for the application. If the CPU has plenty of capacity then there are options for increasing the number of WebMaker engines that can run in parallel to process user requests. However, if the CPU is running at full capacity, increasing the number of engines can have a negative impact. It is important to get the right balance for the user usage profile.[/*]
- User Usage Profile +?+?+? There are broadly two types of common user usage profiles: a) Low level of fixed users with continuous usage. b) High level of intermittent users. The latter tends to be related to external self-service websites, and requires greater consideration of the number of likely concurrent users at any one time and the consequent impact on memory usage on the server. In this situation more care should be taken with application design in order to optimise the usage of memory especially related to caching techniques. If the number of users usage patterns are variable, it is recomended that the "Platform Cleanup" options are used. This performs periodic checks to to see if engnes that have been created are no longer required. It is suggested that the Cleanup Run Interval should typically be set to every hour (3600000 milliseconds). [/*]
- Application Functionality +?+?+? If an application is very small and all the pages and controllers are used evenly by the users, then there may be less value to tweak the number of WebMaker engines running to process requests. If the application functionality varies in its usage pattern, then some parts may be used more heavily than others. If this is the case it is worth changing the engine pooling options to make more engines available for the functionality used the most. For example, the +?+?-?View+?+?+? agent / node that renders all web pages will generally require more engines allocated. In addition, some "Controllers" may be used at a much higher level than others and require more engines.
For smaller applications that tend to have a fixed number of users throughout the day, it may be simpler to configure the default pooling options so that a higher number of engines are available to be executed without worrying about specific agent / node overrides. [/*] - Application(s) Size +?+?+? If there is a very large application, or lots of small applications, then it may require a different startup strategy for WebMaker. Servers are usually configured with either +?+?-?static+?+?+? or +?+?-?on-demand+?+?+? mode. The former will cache all processing and assets when the application first starts. The latter will only cache as each is requested by a user for the first time. +?+?-?on-demand+?+?+? is more suitable for application(s) when all the functionality is not used all the time. [/*]
- Web Session Timeout +?+?+? By default WebMaker sets the sessions to timeout after 30 minutes for a user. This value is defined within the Web.XML for your application. If the value is increased, then the platform will use more memory as sessions live longer. This may be OK for a low level of fixed users, but needs to be reviewed for a high level of users, if their application use is intermittent.[/*]
- Use of Application Caching +?+?+? WebMaker provides the ability to cache data for either individual user sessions, or for all users using an application. Individual user sessions will use up a lot more memory. However, it is then necessary to ensure there is a process to refresh the Application Cache if the underlying data changes.
Web form applications that are built into Business Process Management systems such as BizFlow will use individual user caching for details of the Business Process details and the work item (task) context details. This will use up more memory on the server, so careful consideration needs to be given to how long the sessions are maintained. If the numbers of users are low then the memory usage is unlikely to be a problem.[/*] - Use of Databases & External Services +?+?+? If an applicartion uses external databases or web services, then there can be wait time incurred by +?+?-?Model+?+?+? layer agent/nodes waiting for responses. If lots of time spent processing on these machines then there will be lots of waiting threads within webmaker, and so increasing the pooling is likely to be beneficial.[/*]
Note: For production environments it is worth checking that the Development and Administration logs are switched off, as they are only required for debugging scenarios. The Platform logs should be set to report only Errors. These are the default settings.
Altering Publication Environment Details
Once publication settings have been changed for a Publication environment, the platform information URL can be used again to review the outcome of the changes. You may find that you need to go through a few iterations to get the optimal configuration.
It is not necessary to restart the Application server to get the settings to take effect. There is another default action with every WebMaker application, which will reload the application. This process will restart the application and configure appropriately.
The URL to call is:
http://<server-name>:<port>/<web-application-name>/reload_application.do
Note: For BizFlow WebMaker applications "/bizflowwebmaker" needs to be inserted into the URL above just after the <<port>> number.
Note: One final important consideration is that if you extend the application in the future (adding new pages and controllers), then you may well need to review and refine the settings.