@@ -191,6 +191,7 @@ func DiscoverAndSubscribe(queueList string, checkQueueList bool, metaPrefix stri
191191func discoverClasses (metaPrefix string ) error {
192192 var data []byte
193193 var sub ibmmq.MQObject
194+ var metaReplyQObj ibmmq.MQObject
194195 var err error
195196 var rootTopic string
196197
@@ -200,10 +201,10 @@ func discoverClasses(metaPrefix string) error {
200201 } else {
201202 rootTopic = metaPrefix + "/INFO/QMGR/" + resolvedQMgrName + "/Monitor/METADATA/CLASSES"
202203 }
203- sub , err = subscribe (rootTopic )
204+ sub , err = subscribeManaged (rootTopic , & metaReplyQObj )
204205 if err == nil {
205- data , err = getMessage (true )
206- sub .Close (0 )
206+ data , err = getMessageWithHObj (true , metaReplyQObj )
207+ defer sub .Close (0 )
207208
208209 elemList , _ := parsePCFResponse (data )
209210
@@ -245,12 +246,13 @@ func discoverClasses(metaPrefix string) error {
245246func discoverTypes (cl * MonClass ) error {
246247 var data []byte
247248 var sub ibmmq.MQObject
249+ var metaReplyQObj ibmmq.MQObject
248250 var err error
249251
250- sub , err = subscribe (cl .typesTopic )
252+ sub , err = subscribeManaged (cl .typesTopic , & metaReplyQObj )
251253 if err == nil {
252- data , err = getMessage (true )
253- sub .Close (0 )
254+ data , err = getMessageWithHObj (true , metaReplyQObj )
255+ defer sub .Close (0 )
254256
255257 elemList , _ := parsePCFResponse (data )
256258
@@ -293,12 +295,13 @@ func discoverElements(ty *MonType) error {
293295 var err error
294296 var data []byte
295297 var sub ibmmq.MQObject
298+ var metaReplyQObj ibmmq.MQObject
296299 var elem * MonElement
297300
298- sub , err = subscribe (ty .elementTopic )
301+ sub , err = subscribeManaged (ty .elementTopic , & metaReplyQObj )
299302 if err == nil {
300- data , err = getMessage (true )
301- sub .Close (0 )
303+ data , err = getMessageWithHObj (true , metaReplyQObj )
304+ defer sub .Close (0 )
302305
303306 elemList , _ := parsePCFResponse (data )
304307
@@ -350,15 +353,16 @@ func discoverElementsNLS(ty *MonType, locale string) error {
350353 var err error
351354 var data []byte
352355 var sub ibmmq.MQObject
356+ var metaReplyQObj ibmmq.MQObject
353357
354358 if locale == "" {
355359 return nil
356360 }
357361
358- sub , err = subscribe (ty .elementTopic + "/" + locale )
362+ sub , err = subscribe (ty .elementTopic + "/" + locale , & metaReplyQObj )
359363 if err == nil {
360364 // Don't wait - if there's nothing on that topic, then get out fast
361- data , err = getMessage (false )
365+ data , err = getMessageWithHObj (false , metaReplyQObj )
362366 sub .Close (0 )
363367
364368 if err != nil {
@@ -668,11 +672,11 @@ func createSubscriptions() error {
668672 continue
669673 }
670674 topic := fmt .Sprintf (ty .ObjectTopic , qList [i ])
671- sub , err = subscribe (topic )
675+ sub , err = subscribe (topic , & replyQObj )
672676 ty.subHobj [qList [i ]] = sub
673677 }
674678 } else {
675- sub , err = subscribe (ty .ObjectTopic )
679+ sub , err = subscribe (ty .ObjectTopic , & replyQObj )
676680 ty .subHobj [QMgrMapKey ] = sub
677681 }
678682
0 commit comments