From 68fe4a1dc1f0ef029fe61de07be18b2f664d37df Mon Sep 17 00:00:00 2001 From: Stephen Marshall Date: Mon, 7 Dec 2020 20:04:59 +0000 Subject: [PATCH] Update ready check for native-HA --- cmd/chkmqready/main.go | 9 +++++++-- internal/ready/ready.go | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cmd/chkmqready/main.go b/cmd/chkmqready/main.go index 9bc5487..8f102df 100644 --- a/cmd/chkmqready/main.go +++ b/cmd/chkmqready/main.go @@ -39,7 +39,7 @@ func main() { } // Check if the queue manager has a running listener - if standby, _ := ready.IsRunningAsStandbyQM(name); !standby { + if active, _ := ready.IsRunningAsActiveQM(name); active { conn, err := net.Dial("tcp", "127.0.0.1:1414") if err != nil { fmt.Println(err) @@ -49,8 +49,13 @@ func main() { if err != nil { fmt.Println(err) } - } else { + } else if standby, _ := ready.IsRunningAsStandbyQM(name); standby { fmt.Printf("Detected queue manager running in standby mode") os.Exit(10) + } else if replica, _ := ready.IsRunningAsReplicaQM(name); replica { + fmt.Printf("Detected queue manager running in replica mode") + os.Exit(20) + } else { + os.Exit(1) } } diff --git a/internal/ready/ready.go b/internal/ready/ready.go index d866878..22df1a2 100644 --- a/internal/ready/ready.go +++ b/internal/ready/ready.go @@ -76,6 +76,11 @@ func IsRunningAsStandbyQM(name string) (bool, error) { return isRunningQM(name, "(RUNNING AS STANDBY)") } +// IsRunningAsReplicaQM returns true if the queue manager is running in replica mode +func IsRunningAsReplicaQM(name string) (bool, error) { + return isRunningQM(name, "(REPLICA)") +} + func isRunningQM(name string, status string) (bool, error) { out, _, err := command.Run("dspmq", "-n", "-m", name) if err != nil {