Many Java™ Enterprise applications running on WebSphere Application Server (hereafter called Application Server) require persistence of HTTP sessions, either to avoid interruption due to server failure, or because the application uses the HTTP session to store a lot of user-specific data. The HTTP sessions can be persisted into memory, a database, or any of the caching solutions provided by WebSphere XC10 or WebSphere eXtreme Scale.
When memory or a database is used for storing session data, numerous applications are facing challenges during performance requirements. Scaling and managing a database or memory is a challenging task when the load on applications increases. Configuring a replication of the database is also a costly and time consuming task because of the increased load of HTTP sessions.
WebSphere DataPower XC10 is an appliance version of WebSphere eXtreme Scale -- a distributed caching technology from IBM. The XC10 can be plugged into any Application Server infrastructure and can be used to offload the HTTP sessions into the appliance. This provides an easy and fast option to configure any Application Server environment for HTTP session persistence. The XC10, when integrated with Application Server, further enhances quality of service by offloading the application server cache memory requirements and disk usage for dynamic cache and HTTP session persistence.
In session intensive enterprise applications running on Application Server, session data can consume large amounts of memory on the application server that limits how many active users a given deployment can handle. Increasing the number of users requires increasing the number of servers -- even if the servers are not overloaded from a CPU perspective. Also, increasing the number of Application Server servers increases the likelihood of a server failure, resulting in lost sessions for users on that server.
The XC10 caching appliance can address both of these problems by offloading session data to an elastic data grid (cache) running on a separate appliance, which can be scaled up independently to address the volume of users. When Application Server is configured to store sessions in an elastic data grid, the server maintains a cache of active user sessions. The sessions that do not fit in this cache are stored in the data grid.
Consequently, they do not consume resources on Application Server. This allows Application Server to manage an increased number of active users without requiring additional memory per server, or an increased number of Application Server instances. Active user sessions are not lost in the event of an Application Server failure, since all the user sessions are stored in the highly available elastic data grid. In the event of a server failure, when the user is directed to a different Application Server (which will not contain their session data), the user's session is automatically retrieved from the grid hosted on the XC10 and cached in the new Application Server.
The XC10 comes with a flexible administration console (see Figure 1). Once
the appliance has been configured in the network, the XC10 admin console
can be accessed from a browser using
http://<IPAddress configured for appliance>.
The following options are provided by the admin console to administer the
- The Data Grid option creates data grid types of Simple, Dynamic Cache, and Session.
- The Monitor option monitors the usage of various data grids created in the appliance.
- The Collective option configures multiple appliances together for high availability and failover.
- The Tasks option views the status of tasks executed and in progress tasks.
- The Appliance option configures various settings for the appliance, along with troubleshooting the appliance by viewing the available log files.
Figure 1. XC10 administration console
In this article, we will explain how you can easily offload an HTTP Session management to the XC10 from the Application Server environment. Any enterprise application hosted on Application Server can be configured to use the session management capability of the XC10. Sessions are stored in a data grid, which you can configure from the console. The data grid configuration parameters can be tuned for performance and monitoring requirements.
You will need the following products in order to use the instructions in this article:
- WebSphere Application Server
- WebSphere eXtreme Scale Client
- WebSphere DataPower XC10 Appliance
Prerequisite setup procedure
- Install WebSphere Application Server on the server with the default profile.
- Install WebSphere eXtreme Scale Client on the server.
- Augment the WebSphere Application Server profile with the WebSphere eXtreme Scale feature.
After the profile is augmented, you can see the eXtreme Scale option on the profile in the Application Server administration console as shown in Figure 2.
Figure 2. Admin console showing the Application Server profile with the eXtreme Scale client (see enlarged Figure 2)
Setting up the XC10 Appliance
You need to set up WebSphere XC10 Appliance with the latest firmware updates. You can configure it by using the serial to a USB cable supplied with the appliance. To activate the appliance, you must know specifics about the network environment, including the intended appliance IP address, the subnet mask in CIDR format, the subnet address, the gateway address, the dynamic name server (DNS) address, and the NTP (time) server address. The specifications for the DNS and NTP server can be performed within the XC10 administrative console after it is activated on the network. Set the DNS server for the XC10 properly if host names are used in the network so that the appliance can reach Application Server in case of any call back requirements.
For more details, see the XC10 Installation and Configuration document.
Once the XC10 is configured, you can access the console (Figure 3) from any
machine via the web browser at:
https://<XC10Ipaddress>. The default user
name and password are
Figure 3. XC10 administration console login screen
After you log in to the XC10 console, you can see the options to create different types of data grids as shown in Figure 4. For session persistence requirements, you can create a data grid of type "Session" from the console, or the data grid can be created for you while configuring the session management properties from the administration console as detailed in the next section.
Figure 4. XC10 administration console with data grid options
Configuring the application for HTTP Session Management
Once the server is updated with eXtreme Scale and the profile is augmented to use eXtreme Scale, any web applications installed on the server can use the eXtreme Scale features. In our scenario, we will show how to configure the HTTP Session Management for the DefaultApplication to use the XC10.
- From the Application Server V8 administration console, go to Applications > WebSphere enterprise applications. This lists all the applications installed on Application Server V8.
- Select the application for which you want to configure session management. For our scenario, select DefaultApplication.
- Select the Session Management option from the console as shown in Figure 5.
- Examine the Session Management options. Select the extreme scale
session management settings to configure the XC10 configurations for
Figure 5. Administration console to set the Session Management for the application (see enlarged Figure 5)
- To edit the Session Management configuration, click on the
Session management option. In Figure 6, you can
see the option to set the eXtreme Scale Session Management settings.
This option sets the details of the XC10 appliance where the HTTP
session needs to be persisted.
Figure 6. Administration console with the eXtreme Scale Session Management option (see enlarged Figure 6)
- When you select the eXtreme Scale Session Management settings option, you see a screen where you can set the XC10 appliance details for the Session Management (see Figure 7). Select the Enable Session Management option and provide the details for the XC10 appliance IP address details that have been configured in the network. Under the session persistence preference, you can configure the persist session to one of the existing data grid, or you can create a new data grid for the application. In this scenario, you create a new data grid with name "DefaultApplication" as specified in Figure 7. You can use the "Test Connection" option to make sure that the details provided are correct and the XC10 can be connected from Application Server.
Figure 7. Admin console with the XC10 Settings option (see enlarged Figure 7)
Once the settings for the XC10 are defined as shown in Figure 7, the application is ready to use the data grid in the XC10 for the HTTP session persistence requirements. You can log in to the XC10 administration console and make sure that the "DefaultApplication" Session Data grid is created in the XC10.
Monitoring the XC10
You can monitor the usage of the XC10 by using the XC10 administration console. The application configuration can be tested for various scenarios. The HTTP session object details, which are persisted in the XC10, can be seen from the monitoring option of the XC10 administration console. The monitoring option provides a view via the Data Grid Overview, individual data grid details, and data grid reports. For reference, you can test the application for various scenarios and see the usage in the XC10.
In Figure 8 and Figure 9, you can see the various graphs for the session data grid from the XC10 administration console. You can also view the same data in tabular format.
Figure 8. Monitoring that shows cache usage for the data grid
Figure 9. Monitoring that shows the average throughput for the data grid
This section lists the configuration parameters for Application Server and XC10 integration. You can tune them accordingly for better throughput during performance testing of the application based on application requirements. We recommend that you use the latest version of the eXtreme Scale client and upgrade the firmware of the XC10 to the latest available version.
- Below are the suggested settings for the ORB service:
com.ibm.CORBA.RequestTimeout=30 com.ibm.CORBA.LocateRequestTimeout=10 com.ibm.CORBA.iiop.NoLocalCopies=true com.ibm.CORBA.ThreadPool.MinimumSize=256 com.ibm.CORBA.ThreadPool.MaximumSize=256 com.ibm.CORBA.ThreadPool.IsGrowable=false com.ibm.CORBA.MinOpenConnections=1024 com.ibm.CORBA.MaxOpenConnections=1024
- Set the DNS Server value properly for the XC10 so that the XC10 can access Application Server if the host names are used. This can be done using the "set-dns-servers" command.
- Modify the ReplicationInterval, SessionTableSize, and reuseSessionID parameters accordingly based on the configuration of the server and the results of the performance testing. These properties can be set from the eXtreme Scale client properties file, splicer.properties, on the Application Server side.
This article explained the flexibility of WebSphere DataPower XC10 Appliance and demonstrated how distributed caching using the X10 can be easily integrated with WebSphere Application Server. The article also explained how the various configuration settings need to be modified on Application Server to configure the HTTP session persistence for the XC10. And finally, the monitoring features of the XC10 were demonstrated along with the configuration parameters that can affect the performance of the integrated solution.
- WebSphere DataPower XC10 Information Center
- WebSphere DataPower XC10 Install and Configuration document
- WebSphere DataPower XC10 V2.0 client prerequisites
- developerWorks WebSphere DataPower zone
- WebSphere Extreme Scale V7 Information Center
- WebSphere Application Server V8 Information Center
- WebSphere Application Server features and benefits
- developerWorks WebSphere Application Server zone