Set Up A number of JMS Pods: Single jmsstore File – DZone – Uplaza

Drawback Assertion

By default, the IBM Handle JMS setup creates a single JMS retailer file for all queues, which successfully locations all queues in a single repository. This method poses a danger: if one queue turns into corrupt and a message is affected, you would need to delete the shop file for all queues to resolve the problem.

How To Overcome the Drawback

We developed an answer to configure the MAS 8 software with a definite JMS retailer file for every queue.

Design and Resolution Implementation

On this instance, I will reveal the setup for 4 queues: cqin, cgout, sqin, and sqout. You may have extra queues if they’re enabled in your Maximo net.xml configuration. I’ll modify the IBM configuration to point out the way to assign separate JMS retailer recordsdata for every queue, guaranteeing that an issue in a single queue doesn’t impression the others.

Make sure you create a Persistent Quantity Declare (PVC) to your JMS retailer recordsdata inside your MAS Core Suite software. In my case, the PVC is known as jmsstore and is situated at /jmsstore, with a storage dimension of 20GB for this demo. Nevertheless, you’ll be able to at all times allocate extra storage as wanted.

In case you have entry to OpenShift, navigate to your managed namespace and examine if pvc has been created: 

$oc challenge mas-masivt810x-manage
$oc get pvc

NAME                             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
masivt810x-wkspivt810x-custom-logs   Certain    pvc-cba1d87d-ab9f-4213-96fa-f52a135b2863   20Gi       RWX            nfs-storage     18d
masivt810x-wkspivt810x-doclink       Certain    pvc-981fa13b-0be6-4b4c-b595-e587473109ae   10Gi       RWX            nfs-storage     18d
masivt810x-wkspivt810x-globaldir     Certain    pvc-b8c9ffd6-9c4c-403e-9706-d750c8fa4394   20Gi       RWX            nfs-storage     18d
masivt810x-wkspivt810x-jmsstore      Certain    pvc-c6a2bbdc-85dc-4e57-a2ac-4a284c1e1976   20Gi       RWX            nfs-storage     18d
masivt810x-wkspivt810x-migration     Certain    pvc-2e06b37b-b7ff-4914-b532-e482ea5bb233   10Gi       RWX            nfs-storage     18d

You may as well navigate to the maxinst pod to examine if the /jmsstore listing was created.

$ oc exec -n mas-masivt810x-manage $(oc get -n mas-masivt810x-manage -l mas.ibm.com/appType=maxinstudb --no-headers=true pods -o identify | awk -F "https://dzone.com/" '{print $2}') -- ls -ltrh / |grep jms
drwxrwxrwx.  13 root          1000330000   0 Jul  3 11:32 jmsstore

After your MAS Core occasion reconciliation, you need to see the names of your PVCs, together with a brand new pvc for the jmsstore.


Within the Server bundles part, if the System managed checkbox is chosen, clear it. Click on Add bundle. We’re going to add 4 JMS server bundles:

  •  jmscqin
  •  jmscqout
  •  jmssqout
  •  jmssqin

Within the Sort column, choose standalonejms:

To configure the queues, full the next steps:

  1. Within the Further properties column to your JMS server bundle, click on View.
  2. Set a route subdomain that matches the identify of your bundles. We are going to use the pod’s service because the remoteServerAddress.

  1. Within the Further server config part, use XML to specify default and {custom} queues.
  2. You may specify a queue as:
  • Outbound sequential
  • Outbound steady
  • Inbound sequential
  • Inbound steady

Use this XML configuration for the jmscqin bundle. I’ve added the cqinerror engine to run alongside the cqin engine.



    
      
        wasJmsSecurity-1.0
        wasJmsServer-1.0
    
    
    
    
        
        
        
    

Use this XML configuration for the jmscqout bundle. I’ve added cqouterror engine to run alongside the cqout engine.



    
      
        wasJmsSecurity-1.0
        wasJmsServer-1.0
    
    
    
    
        
        
        
    

The jmssqout bundle runs the sqout engine alone. 


    
      
        wasJmsSecurity-1.0
        wasJmsServer-1.0
    
    
    
    
        
         
    

The jmssqin bundle runs the sqin engine alone.



    
      
        wasJmsSecurity-1.0
        wasJmsServer-1.0
    
    
    
    
        
        
    

Now you’ll need the service that has been created for these bundles. Primarily, the bundles will create pods, providers, and routes. Since it’s inside the cluster, we are able to use the service for our remoteServerAddress. Word: Your remoteServerAddress have to be within the following format: 

remoteServerAddress="--.mas--manage.svc:7276:BootstrapBasicMessaging"

remoteServerAddress="masivt810x-wkspivt810x-jmsscqin.mas-masivt810x-manage.svc:7276:BootstrapBasicMessaging"

Alternatively, you’ll be able to go to your OpenShift GUI and get the hostname routing created on the service. Use this because the remoteServerAddress. You may get the names of the pods and providers by working these instructions:

$ oc get svc |grep jms
masivt810x-wkspivt810x-jmscqin        ClusterIP   None                     9080/TCP,443/TCP,7276/TCP,7286/TCP   23h
masivt810x-wkspivt810x-jmscqout       ClusterIP   None                     9080/TCP,443/TCP,7276/TCP,7286/TCP   23h
masivt810x-wkspivt810x-jmssqin        ClusterIP   None                     9080/TCP,443/TCP,7276/TCP,7286/TCP   23h
masivt810x-wkspivt810x-jmssqout       ClusterIP   None                     9080/TCP,443/TCP,7276/TCP,7286/TCP   23h

$ oc get pods |grep jms
masivt810x-wkspivt810x-jmscqin-0                             1/1     Working   0          23h
masivt810x-wkspivt810x-jmscqout-0                            1/1     Working   0          23h
masivt810x-wkspivt810x-jmssqin-0                             1/1     Working   0          23h
masivt810x-wkspivt810x-jmssqout-0                            1/1     Working   0          23h

You may as well examine your maxinst pods to see if the jmsstore listing was created by working this command: 

oc exec -n mas-masivt810x-manage $(oc get -n mas-masivt810x-manage -l mas.ibm.com/appType=maxinstudb --no-headers=true pods -o identify | awk -F "https://dzone.com/" '{print $2}') -- ls -ltrh /jmsstore/
whole 0
drwxr-x---. 2 1001040000 root 0 Jul  3 11:20 cqin
drwxr-x---. 2 1001040000 root 0 Jul  3 11:27 cqout
drwxr-x---. 2 1001040000 root 0 Jul  3 11:28 sqout
drwxr-x---. 2 1001040000 root 0 Jul  3 11:29 sqin

In case you have the Maximo MEA bundle, you should utilize the XML file beneath. In case you have a single server (all) bundle, change maximomea to maximo-all within the XML. 






    
    
        jndi-1.0
        wasJmsClient-2.0
        jmsMdb-3.2
        mdb-3.2
    

    
    
        
    
    
    
        
    

    
        
    

    
        
    


    
    
    
    
    

    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        

    
    
        
    
    
        
    
    
        
    
    
        
    

In case you have UI, report, and cron bundles, use this XML:






    
    
        jndi-1.0
        wasJmsClient-2.0
        jmsMdb-3.2
        mdb-3.2
    

    
    
        
    
    
    
        
    

    
        
    

    
        
    

    
    
    
    
    

    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    
    
        
    


Our XML has the next checklist of jmsQueueConnectionFactory JNDI names from the offered XML:

  1. jms/maximo/int/cf/intcf-01
  2. jms/maximo/int/cf/intcf-02
  3. jms/maximo/int/cf/intcf-03
  4. jms/maximo/int/cf/intcf-04

We are going to use these jmsQueueConnectionFactory JNDI names for the exterior methods in Maximo. Add or modify the queues for sqin, sqout, cqin, cqinerr, cqouterr, and notf.

You may go to Motion on the Add/Modify dialog and examine the queues. You shouldn’t encounter any errors. 

Conclusion

All of the JMS queue ( cqin, cgout, sqin, and sqout) messages must be written to a devoted folder created inside a dad or mum jmsstore folder. Therefore, we must always have the ability to delete a single queue (everlasting and log) file at any time limit with out impacting the opposite queues.

Share This Article
Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Exit mobile version