cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1426
Views
0
Helpful
8
Replies

High Availability for server to server scenarios

stephan.steiner
Spotlight
Spotlight

Hi

The dev guide mentions something about BOSH channel notifications if a component goes down. Can I assume that those events also be sent to an XMPP channel?

1 Accepted Solution

Accepted Solutions

Cisco Finesse Tomcat goes down: The doc states that the 'finesse' user presence becomes UNAVAILABLE. This 'finesse' user is a very specific user and each Finesse Server only has one 'finesse' user. This is NOT the agent/supervisor.

I am not sure how to trigger a Finesse web app goes down scenario. This is the bad scenario where Tomcat is still up and the Notification service, but the Finesse webapp isn't working for some reason, maybe out of memory to this particular webapp. This is never a good failover scenario to get into.

To trigger a loss of connection to the CTI Server, on UCCX, you can stop the Cisco UCCX Engine (Sorry, I can't remember the exact name, but you can see it in the service list). Finesse's HA follows the same model as UCCX, where it has a master/slave relationship and will follow the mastership of the UCCX Engine. So, if the UCCX Engine goes down on the primary, Finesse will automatically go down on the primary as well (and go OUT_OF_SERVICE). Then the UCCX Engine will go up on the secondary and Finesse will automatically go up on the secondary (IN_SERVICE).

View solution in original post

8 Replies 8

dekwan
Cisco Employee
Cisco Employee

Hi,

Can you be more specific on which notification you are talking about? Are you talking about the presence of UNAVAILABLE or the systemInfo notification of OUT_OF_SERVICE?

The systemInfo notification of OUT_OF_SERVICE will be sent to the XMPP channel if you are subscribed to the SystemInfo node.

I'm talking about chapter 7 of the dev guide.

I've now been playing around with my CCX and found that the "Finesse notification Service" the guide talks about is actually the service called "Cisco Unified CCX Notification Service". Stopping it stops the Xmpp connection, while the rest api is still up but reports OUT_OF_SERVICE status.

But as for the other failure scenarios (page 266), I haven't managed to produce them so far. I can stopp the "Cisco Finesse Tomcat" just fine.. that stops the REST services from working, and my XMPP connection remains up. However, since the REST API is down, there's no way I can query the user status of any user, including the user I'm logged into XMPP with.. and there's no XMPP notification about any user I'm subscribed to (no status changing to unavailable), which seems to be at adds with the description in the dev guide.

So why am I not getting any user updates when the guide says the status changes?

Also.. how would you trigger a "Finesse web app goes down" scenario? I take it that this refers to a webapp that runs on the Cisco Finesse Tomcat, but we have no access to this, have we?

Finally, how can I interrupt the connection to the CTI server other than disconnecting my CUCMs from the network? Is there a service I can stop to trigger this condition so I can teach ms software to handle this properly?

Cisco Finesse Tomcat goes down: The doc states that the 'finesse' user presence becomes UNAVAILABLE. This 'finesse' user is a very specific user and each Finesse Server only has one 'finesse' user. This is NOT the agent/supervisor.

I am not sure how to trigger a Finesse web app goes down scenario. This is the bad scenario where Tomcat is still up and the Notification service, but the Finesse webapp isn't working for some reason, maybe out of memory to this particular webapp. This is never a good failover scenario to get into.

To trigger a loss of connection to the CTI Server, on UCCX, you can stop the Cisco UCCX Engine (Sorry, I can't remember the exact name, but you can see it in the service list). Finesse's HA follows the same model as UCCX, where it has a master/slave relationship and will follow the mastership of the UCCX Engine. So, if the UCCX Engine goes down on the primary, Finesse will automatically go down on the primary as well (and go OUT_OF_SERVICE). Then the UCCX Engine will go up on the secondary and Finesse will automatically go up on the secondary (IN_SERVICE).

Is there a way to query that finesse user? Can I just use the rest api to get the user with that name? And can it be monitored?

Hi,


The 'finesse' user is actually an xmpp user. I did additional research/testing and realized that each xmpp user is automatically subscribed to the presence of the 'finesse' user on the sever side.


On my Finesse 11.0 UCCE testbed, I logged in my user and then stopped the Cisco Finesse Tomcat service. Using pidgin, I was able to see an UNAVAILABLE almost immediately for the finesse user.


finesse-unavailable.jpg

I get that presence update as well. But upon connection, I get a whole lot of presence updates I don't care about - any idea on how to filter those out? Here's such an example

<presence id="dOAB9-378" from="admin@chdevuccx105.nxodev.intra/Smack-events-4" to="pmgr_agentmonitoring@chdevuccx105.nxodev.intra/MatriX" xmlns="jabber:client" />

I want to smack that smack even so it doesn't bother me so to speak

Back to more serious matters.. I found a "Cisco Unified CCX Engine" service.. shutting it down makes the system operational state go to out of service, and the presence of the finesse user goes to unavailable.. So that's as expected. There's also a presence state update for admin@ccx (that's no documented):

presence type="unavailable" from="admin@chdevuccx105.nxodev.intra/desktop" to="pmgr_agentmonitoring@chdevuccx105.nxodev.intra" xmlns="jabber:client" />

And.. shouldn't I get a SystemInfo update when I stop a service but the xmpp connection is still up? I do get the presence update of the finesse user.. why do I not get a SystemInfo notification

I don't know of a way to filter out other presence updates. Maybe you can look at the XMPP publish/subscribe guide and find something useful: XEP-0060: Publish-Subscribe

Yes, "Cisco Unified CCX Engine" is the correct one. For a CCX deployment, Finesse and CCX share a notification service. The admin@ccx user doesn't belong to Finesse. I don't have access to a CCX system right now, so I cannot try out the scenario. But, now that you mention that you aren't getting a SystemInfo update, I realize that this way of disconnecting the CTI connection causes Finesse to go into "slave" mode. As a result, I don't think that you would be getting a SystemInfo notification. So, I think the only way to trigger this might be what you had said earlier, disconnecting the CUCM. This way, Finesse is still running and the CCX engine is still running.

stephan.steiner
Spotlight
Spotlight

Interesting.. I didn't do much with Pidgin.. and I didn't get such an event with Matrix. I'll try again during my next test session.