cancel
Showing results for 
Search instead for 
Did you mean: 

RMI JMX agent end point URL

Former Member
0 Kudos

Hi All

We are using BO 4.1 SP5. In our setup there are 4 hosts that are part of the business objects cluster. For monitoring we are using the JMX interface exposed by the monitoring service. Since the monitoring service supports clustering it is only active on one host in the cluster, on the rest it is inactive. The problem we are facing is that the 4 hosts under go a weekly reboot, and depending on which host the monitoring service comes up first the JMX agent service URL gets changed. So if prior to the reboot the monitoring service was on server A, the JMX URL we would use to monitor would be service:jmx:rmi://serverA:5005/jndi/rmi://serverA:5005/serverA:6400. However, after the reboot if monitoring service comes up first on server B, the URL will change to service:jmx:rmi://serverB:5005/jndi/rmi://serverB:5005/serverA:6400

My question is, is there a way to have a consistent JMX URL that does not change or a property to say if a particular server becomes available it always will be the active server? or any other suggestion to get round this problem.

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Toby_Johnston
Advisor
Advisor
0 Kudos

Hi Faisal,

I see your dilemma here.  One thing I can tell you is that it is only necessary to have a monitoring service on each host if you are using Host Monitoring (with the SAP Host Agent).  If not, then there is no reason to run a Monitoring Service on each host in your landscape (in this case you would only need two for redundancy)

The reason that this is required with Host monitoring is because BI 4.0 and 4.1 are using an older method for accessing host metrics from the host agent (passive monitoring service makes local calls to the process SAPOSCOL.exe).  This method is actually deprecated and will be removed from host agent at the end of 2015.  In BI 4.2, we should be using the new method (Web Service API) for accessing host metrics and you will no longer be required to run a monitoring service on each host in your landscape since the one monitoring service can access host metrics from all BI nodes over the web service calls.  So, this may not be a problem for you in the near future.

In the meantime, I can only suggest that you add a delay in your restarts so that you know which Monitoring service will come online first (IE, Start SIA node A, wait 3 minutes, then start the rest of the SIA nodes). 

There may also be some other DNS tricks you could use to work around this problem but it might be easier to simply explicitly order your SIA node restarts so you know which will Monitoring service will be active.

Regards,

Toby

Former Member
0 Kudos

Hi Toby

Very helpful answer, much appreciated.

With regards to DNS tricks, I was also thinking of that but wasn't quite sure how the loadbalancer will be able to work out which host has monitoring service active. Could you please elaborate a bit more on that.

Thanks

Faisal

Toby_Johnston
Advisor
Advisor
0 Kudos

Hi Faisal,

If it were me, I would have a simple Java program that handles the load balancing by iterating through a list of JMX Endpoint URL (in other words, the possible Monitoring service URLs) and attempting the JMX connection.  Put this in a try/catch block for each connection so that if the connection fails, it catches the exception and moves on to the next URL.  Once the connection succeeds, the program would close the connection and then return the active URL to your monitoring application.

Regards,

Toby

Former Member
0 Kudos

Thanks Toby! Very helpful, much appreciated.

Answers (0)