Thursday 9 January 2014

webMethods Elastic ESB using Command Central (v9.5)

Introduction

In version 9.x of webMethods, +Software AG have come up with a new method of scaling Integration Servers (see official blog here - http://goo.gl/79OJOP), using a product called Command Cental. In the current 9.5 version, it allows for Command Central to use scripts to clone an existing product stack to another server. The official blog actually talks about scaling in the cloud to bring up instances when the load is too much.
This article will go through how to provision a new installation

Pre-requisites

  • webMethods product image (wm9_5_win64.zip)
  • Existing webMethods product installation including CommandCentral and SPM (SoftwareAG Platform Manager)

Provisioning Process

Initial Setup

  1. Startup CommandCentral and open the browser to the instance (default port is 8090)
  2. Create a new environment (I called mine dev)
  3. On the second tab, click on Add
  4. It should prompt you to enter some information:
    • Logical node name - dev-master
    • hostname
    • port - 8092 (this is the SPM port number)
  5. If all the details are correct, you should see a list of all the products installed along with version numbers
  6. Now you'll need to install only SPM on the target server using the product image (make note of the port number)
  7. Once you have done that go back to CommandCentral and add a new environment
  8. Repeat step 3-5 (this time you should only see the SPM product)
Now that all the initial steps are completed, it's time to begin the provisioning

Process

  1. Open up a command/shell window
  2. Navigate to the CommandCentral/client/bin folder
  3. We are going to check that everything is in order before provisioning a new instance
    1. Check nodes in landscape 
      • cc list landscape nodes -e ONLINE -p <password>
      • You should see both nodes from the initial setup online
    2. Check IS is installed on source node 
      • cc list inventory products IS-Local -e integrationServer -w 0 -p <password>
      • You should see something like IS-Local IS-Local-integrationServer integrationServer Integration Server | Server
  4. Now it's time to add our image to the repository of the target
    1. cc add repository products path=D:/sag/webMethods/wm9_5_win64.zip -p <password>
  5. Check that the repository was added successfully
    • cc list repository products -p <password>
    • You should see something like REPOSITORY-wm9_5_win64.zip      product false
  6. Now we are going to create a template from the source node (file can be downloaded and then replace the alias and nodeAlias with your own)
  7. List the templates on the source node
    • cc list templates -p <password>
    • You should see something like local-source    IS-Local        Administrator
  8. Apply the product template to target (again replace alias and nodeAlias as target this time)
    • cc exec templates apply -i D:/applyProducts.xml -p <password>
    • It should return a job number if working. Make note of this.This will take around 5-10 minutes to complete. If you want to monitor the job, run this:
      • cc get jobmanager jobs -e "DONE|WARNING|ERROR" -w 180 -p <password>

Conclusion

Although not fully polished off, this method of spawning instances of the product is quite handy and can be modelled using BPM to automatically kick off when certain SLA's are breached.
In the upcoming versions of webMethods, I'm sure this will be provided from the GUI itself, making it easier to change ports and other configurations.