IBM Websphere Application Server Network Deployment and IBM HTTP Server - sample cluster

IBM Websphere Application Server Network Deployment and IBM HTTP Server - sample cluster @ DevOps consultant
18 Jan 2016


in this post, I will show how we can install and create one application, working on Webpshere Application Server ND with two nodes on different machines, both behind IBM HTTP server.

First of all, you need to purchase and download the software from IBM website:)

All new software is installed with IBM Installation Manager:

After you download and extract the AS and HTTP server, you need to add the link to the extracted repository.config file.
Here are the system requirements and main steps for installing IBM software:

On the first server, you can install Application server profile with the help of Profile Management Tool or by command line with default configuration:
On the second server, we have to install one Deployment Manager profile, one Application server profile and HTTP server after that.
Note that if we install first the Deployment manager, after that the ports of the next profile are with one above.

After installating the profiles and starting them, we have to add each application server as a node, so we can administer them from Manager profile.
First node is the Manager node, it cannot be removed. When adding, we are specifying ip address and administrative port of the application server.

Adding Nodes

Now we have added the app servers and we can stop/start them. In order to do this, the node agents should be started. When adding, you can select wether to run as a windows service or not.

Next step is to add the nodes in the cluster. We are using clusters for load balancing between its members. If some of them has problems, the customer will not understand this. There are many configurations that we can make like session replication, weight.

add in the cluster

In the internet, there are many samples for web applications, that can be used to read/write messages to/from queues. We have to specify Qmanager and queues - Incoming/Outgoing. This can be done in Resources -> JMS -> Queue connection factories and Queues.

First we are adding the Queues. They should be visible in the application servers cluster, so scope is cluster - name of the cluster.

Qmanager in the WAS cluster

In the configuration for Qmanager, we have to specify hostname, Qmanager name, Qmanager port and channel. For security we can choose SSL configuration, that we have configured before creating the QM connection. This step is optional, but prefered.
SSL configuration should be visible also in the Scope - cluster. We have to add/create a personal certificate and to add the issuer - root certificates in the chain.

In each step, both nodes are synchronizing every time when there is a change.

Now we are adding the queues. Note that each object in the WAS has its own way to be named - for example queue JNDI name is jms/Queue.
Queues should be in the Scope - cluster.

queues in WAS

Now We have working nodes in working cluster with connection to MQ. Till now, we didnt specified the HTTP server. It is working as main server for requests. HTTP server is added from Servers -> web servers. We have to specify the folder where HTTP server is installed and Plugins folder. After that we can add it in the Nodes but like Unmanaged node.

Now we can deploy the sample web application. We can do this from menu Applications -> types -> Websphere enterprise applications.

websphere enterprise applications

If we want to access this application from HTTP server, we have to specify this in the modules section - by selecting the cluster and Webserver. Every time when there is a change connected with HTTP server, we have to generate and propagate the plugin-cfg.xml from Server -> types -> web server.

We are ready to test the application by typing in the web browser -> http://http_server_host/WebApplication

Sample applications dont need session replications because they are just sending messages to some queue, but there are applications that are complex with forms and the data stored during process shouldnt be lost.

for questions, I am available via mail :)