I just installed 2 instances of IS and configured them in a clustered environment and I see both servers under each IS admin clustering page. My question is; how do I do a simple test to demonstrate that clustering is working between 2 servers? I know I need to use replication to sync both servers, but is there a quick way to demonstrate clustering on a vanilla installation?
Some of ways to know if your IS are in clustered or not are
publish many document to broker which is connected to clustered IS. Broker should send these document to both IS. If not check your client prefix used when connecting IS to broker.
Send a simple HTTP request to see if its uniformaly getting distributed or not.
Check fail over. Kill one IS and see if fail over of request happens or not.
Change settting of trigger using admin page or through flow service. Set apply across the cluster. See if it the trigger on all IS in clustered is getting updated or not.
Create a JDBC notification and see how polling is working. Only one IS should be able to poll the records from the buffer table successfully. If both IS polls same records and publishes twice then their is some problem. Check your co ordination mode of polling notification to see its distributed or not.
Create a scheduler on one IS. Its should get created on all IS as well. If you change the scheduler on one IS, the changed setting should reflected on other IS’s in clustered too.
There are many other ways to check depending on the wM components and your architecture. May be some one can chime in to give more info.
The scheduler test worked perfectly for me, which is sufficient for my demo needs at the moment. A few things I didn’t mention is that I’m not using broker and there’s currently no load balancing . So to your point of testing HTTP request distribution and failover, I will not be able to test. There is a plan to use a load balancer however.
So my follow up question to this would be; is a load balancing tool required in a clustered environment? I’m still just understanding the concept of load balancing for IS. I know they share the same database, but if they required replication of packages between environment, what is the point of configuring them in a cluster? Couldn’t you just have 2 independent instances, use a load balancer, then replicate everything in the environment?
Clustering and load balancing are two different things, although they usually are used together.
The IS cluster enables the automatic failover of services and processes between the clustered IS. So if one IS goes down another takes over. You need to code you flows and proccesses to be able to failed over , details are in the webMethods documentation. You can use IS cluster without a loadbalancer if you don’t have clients which need to access the servers.
You use a load balancer if
you want to distribute the load of client requests between different servers
have the client always connecting to an available IS automatically
you can use a loadbalancer against non clustered IS if the server side is completely stateless
It’s quite common to have an IS cluster together with a loadbalancer, so the cluster takes care of failover of services or processes and the loadbalancers guarantees the accessibility to clients.
If failover of running components is not needed you may also use equally setup IS sharing a common queue to broker and a loadbalancer to just distribute workload.