Author Topic: How to find the other HA pair when the Backup is running as Primary?  (Read 3861 times)

Offline oceanblue

  • Newbie
  • *
  • Posts: 23
  • Karma: 0
I am trying to find a way to determine the HA pair of an application.

It is easier when the [b]Original Primary[/b] is running in the [b]Primary mode[/b], one can simply construct the "[b]CfgApplicationQuery[/b]" to read the application related config object.

However, things are not so trivial (at least to me) when the [b]original Backup[/b] app is running as [b]Primary[/b]. Any idea how to find the [b]Backup app[/b] ([b]original primary[/b]) in that case?

Thanks in advance!

Cheers

Offline jamesmurphyau

  • Full Member
  • ***
  • Posts: 123
  • Karma: 2
Re: How to find the other HA pair when the Backup is running as Primary?
« Reply #1 on: July 16, 2019, 09:19:52 AM »
You might be able to do this with an XPath query.. you can do some quite complex queries with XPath.. if I find time and work it out I'll update this post

Offline jamesmurphyau

  • Full Member
  • ***
  • Posts: 123
  • Karma: 2
Re: How to find the other HA pair when the Backup is running as Primary?
« Reply #2 on: July 17, 2019, 12:53:22 AM »
Yep you can do it with XPath

Assume the backup application DBID is 417, the below code will give you the primary for that backup.

[code]
RequestReadObjects2.create(CfgObjectType.CFGApplication.ordinal, "CfgServer[backupServerDBID/DBID=417]")
[/code]

Offline hsujdik

  • Hero Member
  • *****
  • Posts: 541
  • Karma: 30
Re: How to find the other HA pair when the Backup is running as Primary?
« Reply #3 on: July 24, 2019, 01:37:06 AM »
Check if the filter backup_server_dbid works for you:
https://docs.genesys.com/Documentation/PSDK/latest/ConfigLayerRef/CfgApplication

Offline jamesmurphyau

  • Full Member
  • ***
  • Posts: 123
  • Karma: 2
Re: How to find the other HA pair when the Backup is running as Primary?
« Reply #4 on: July 24, 2019, 02:52:08 AM »
Actually that's a much better way and it's available natively to CfgApplicationQuery

[code]
val query = new CfgApplicationQuery();
query.setBackupServerDbid(417);
service.retrieveObject(classOf[CfgApplication], query);
[/code]

(code is Scala, but same thing applies to Java/.NET)

Offline oceanblue

  • Newbie
  • *
  • Posts: 23
  • Karma: 0
Thank you so much @jamesmurphyau and @hsujdik !

My sincere apologies for responding so..so late. I been pulled into a different project.

The "backup_server_dbid" filter along with the setBackupServerDbid() method did it for us.

Thanks again!

cheers,