IBM Support

Clustering with Maximo and WebSphere 8.5.5 - Part 2 - JMS Configuration

Technical Blog Post


Abstract

Clustering with Maximo and WebSphere 8.5.5 - Part 2 - JMS Configuration

Body

Previously I had posted a blog on creating a horizontal cluster across multiple nodes in WebSphere 8.5.5. If you haven't read that posting, please head on over Clustering with Maximo and WebSphere 8.5.5 - Part 1 - Configuration and take a look. Today we will be continuing forward with JMS configuration. I was going to do this series in 2 parts, but I will separate this out in 3 parts due to the length of the topic. 

In the original blog posting we configured the following.

mxcluster1

  • DMGR
  • IHS
  • Node 1 w/ MAXIMOUI1

mxcluster2

  • Node 2 w/ MAXIMOUI2, MAXIMOIF

This is a basic configuration, for larger companies, more UI's could be added, as well as clusters for CRON and BROS functionality.  In our example the MIF JVM will function as a CRON JVM as well.

Today we will be going over the JMS queue configuration.

JMS\Queue configuration

Before we get into the Maximo stuff, we will want to configure the queues to run on the correct JVMs. We want all incoming transactions to be processed by the MIF JVM and all outbound transaction to be processed by the MAXIMOUI.

  • SQOUT - MAXIMOUI
  • SQIN - MAXIMOIF
  • CQIN - MAXIMOIF
  • CQINERR - MAXIMOIF

 

1. To start off we will create our JDBC Provider, expand 'Resources' - > 'JDBC' and click on 'JDBC Provider'. Set the scope to your cell level as seen below then click on 'New'

image

 

2. On the next screen you will be prompted for your JDBC provider Configuration info. We are using DB2 for our Database, but you will want to choose the Database Driver and Type associated with the Database you are running Maximo on.

image

 

3. Next we want to point to the database driver for DB2, this is db2jcc.jar, for Oracle it would be oraclethin and SQL Server opta. In the example below I pointed the class path directly to the DB2 folder with the DB2 driver. This driver will be required to exist on each of the nodes in the cluster. Click Apply, Next and Finish.

image

 

4. Now that we have the driver configured that we will be using to connect to our database, we want to create two data sources, one for the UI and one for the MIF. Each of these data sources need to point to different unique schema's. We left our UI data source pointing to the Maximo schema and created a separate schema for the MIF data source. Our MIF data source will be called 'maximomif' with a JNDI name of 'jdbc/maximomif'. Click next.

image

 

5. On the next screen select the JDBC driver created in step two and click next

image

 

7. On the next step of creating the data source we will need to point to our database for 'maximomif' we created our new schema under the Maximo database, so this is where we are going to point the data source. We will point to the specific schema in the bus configuration.

image

 

8. We will skip the security configuration for now and setup our component-managed authentication alias in the next step. Click next and finish.

image



9. Once your 'maximomif' data source is created, click on it from the main data source page in WebSphere. Under related items click on 'JAAS- J2C authentication data.'

image

 

 

10. Click on new, give this an authentication alias of maximomif and enter in the userid and password that will be used to connect to the schema from your data source.Click Apply.

image

 

11. Head back to the 'maximomif' data source configuration page, at the bottom select your 'maximomif' alias in the 'Component-Managed authentication alias' drop down. Click Apply and save to the master configuration.

image

 

12. Repeat steps 4 to 11 for a data source with a name of 'maximoui' and JNDI name of jdbc/maximoui. Create the authentication alias called maximoui for a user that has access to the schema the UI data source will be connecting to ( in our case UI will be connecting to the maximo schema)

13. Now that our Data Sources are created we will want to create our buses. 'mifjmsbus' will run on the MAXIMOIF jvm and 'uijmsbus' will run on the UI Cluster. From the WebSphere Console expand 'Service Integration' - > 'Buses' and click on New. Enter in the first bus name 'mifjmsbus' and uncheck 'Bus Security'. Click Next and Finish. Repeat this step to create a bus for your user cluster called 'uijmsbus'

 

image

 

14. Once both of your buses are created click on the 'mifjmsbus' then click 'Bus members' then click 'Add'image

 

15. the 'mifjmsbus' will be be assigned the MAXIMOIF JVM as it's member.  Click Next and choose Data Store for your type of message store.

image

 

16. Enter your data source JNDI name for the MIF data source 'jdbc/maximomif'. Here is where we will be specifying the schema we created unique to the maximomif data source, ours is called 'maximomif' as well. Then select the the authentication alias created earlier and check the 'Create Tables' box. Click next and finish.

image

 

17. As you did in step 14 for the 'mifjmsbus', click on the 'uijmsbus' and then click on 'Bus members' then click 'Add'. Instead of choosing an individual server, we will choose the MAXCLUSTER we created for the UI.

image

 

18. Again choose data store as your message store and enter in the JNDI name, schema name and authentication alias for for your UI data source. Check create tables and click Next and Finish. image

 

19. Now we have our Data Sources and Buses configured for both the UI Cluster and MIF JVM's. We now need to create the destinations on each of the buses. Click on the 'mifjmsbus' once more under 'Destination Resources' choose 'Destinations' Click on new, choose 'Queue' then click Next.

image

 

20. Your first queue will be called 'cqindb' click Next

image

 

21. Assign this Queue to the MAXIMOIF bus member. Click Next and Finish. Now Repeat steps 19 - 21 for 'sqinbd' and 'cqindberr'.

image

 

22. Now click on the 'uijmsbus' once more under 'Destination Resources' choose 'Destinations' click on new, choose 'Queue' then click Next. We now want to create 'sqoutbd'

image

 

23. Assign this to the MAXCLUSTER bus member, click Next and Finish.

image

 

24.The queues are now created and assigned to the appropriate bus members. The next step is creating our connections factories. From the WebSphere console expand 'Resources' - > 'JMS'  and click on 'Queue Connection Factories'. Change the scope to the cell level and click on new, choose 'Default messaging provider' and click OK.  Give the connection factory the following properties and save the record.

Name: mifconfact

JNDI name: jms/maximo/int/cf/intcfmif

Bus Name: mifjmsbus

image

 

25. Now we need to repeat the last step for the UI connection factory with the following properties

Name: uiconfact

JNDI name: jms/maximo/int/cf/intcfui

Bus Name: uijmsbus

image

 

26. Now expand 'Resources' - > 'JMS' and click 'Queues'. Set the scope to the cell level and click new. The first queue we will create here is the CQINERR with the following properties.

Name: CQINERR

JNDI name: jms/maximo/int/queue/cqinerr

Bus name: mifjmsbus

Queue name: cqinbderr

image

 

27. Repeat step 26 for CQIN with the following properties

Name: CQIN

JNDI name: jms/maximo/int/queue/cqin

Bus name: mifjmsbus

Queue name: cqinbd

image

 

28. Repeat step 26 for SQIN with the following properties

Name: SQIN

JNDI name: jms/maximo/int/queue/sqin

Bus name: mifjmsbus

Queue name: sqinbd

image

 

29. Repeat step 26 for SQOUT for the 'uijmsbus'

Repeat step 26 for SQIN

Name: SQOUT

JNDI name: jms/maximo/int/queue/sqout

Bus name: uijms

Queue name: sqoutbd

image

 

 

30. Our last steps for the WebSphere JMS configuration is the Activation Specification for the CQIN and CQINERR. From the WebSphere Console expand 'Resource' - > 'JMS' and click on 'Activation specifications'. Set the scope to the cell level click on 'new' and choose 'Default messaging provider'. Create the first Activation Specification with the following properties.

Name: intjmsact

JNDI name: intjmsact

Destination Type: Queue

Destination JNDI name: jms/maximo/int/queues/cqin

Bus name: mifjmsbus

 

image

 

Now repeat the above steps for another Activation spec with the following properties.

Name: intjmsacterr

JNDI name: intjmsacterr

Destination Type: Queue

Destination JNDI name: jms/maximo/int/queues/cqinerr

Bus name: mifjmsbus

 

That should do it for today's post, at this point your cluster is configured with 2 UI JVM's and a separate MIF\Cron JVM. The JMS configuration is setup to run the sqout on the UI and the cqin,cqinerr and cqin on the MIF JVM. Part 3 will finish off the series with the Maximo file configuration,Virtual Host\Deployment of the ear files and separating the cron task\escalations to the MIF JVM.

 

Series

Clustering with Maximo and WebSphere 8.5.5 - Part 1 - Configuration
Clustering with Maximo and WebSphere 8.5.5 - Part 2 - JMS Configuration
Clustering with Maximo and WebSphere 8.5.5 - Part 3 - Isolating Functionality and Deployment

 

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

UID

ibm11113741