@@ -191,6 +191,7 @@ func DiscoverAndSubscribe(queueList string, checkQueueList bool, metaPrefix stri
191
191
func discoverClasses (metaPrefix string ) error {
192
192
var data []byte
193
193
var sub ibmmq.MQObject
194
+ var metaReplyQObj ibmmq.MQObject
194
195
var err error
195
196
var rootTopic string
196
197
@@ -200,10 +201,10 @@ func discoverClasses(metaPrefix string) error {
200
201
} else {
201
202
rootTopic = metaPrefix + "/INFO/QMGR/" + resolvedQMgrName + "/Monitor/METADATA/CLASSES"
202
203
}
203
- sub , err = subscribe (rootTopic )
204
+ sub , err = subscribeManaged (rootTopic , & metaReplyQObj )
204
205
if err == nil {
205
- data , err = getMessage (true )
206
- sub .Close (0 )
206
+ data , err = getMessageWithHObj (true , metaReplyQObj )
207
+ defer sub .Close (0 )
207
208
208
209
elemList , _ := parsePCFResponse (data )
209
210
@@ -245,12 +246,13 @@ func discoverClasses(metaPrefix string) error {
245
246
func discoverTypes (cl * MonClass ) error {
246
247
var data []byte
247
248
var sub ibmmq.MQObject
249
+ var metaReplyQObj ibmmq.MQObject
248
250
var err error
249
251
250
- sub , err = subscribe (cl .typesTopic )
252
+ sub , err = subscribeManaged (cl .typesTopic , & metaReplyQObj )
251
253
if err == nil {
252
- data , err = getMessage (true )
253
- sub .Close (0 )
254
+ data , err = getMessageWithHObj (true , metaReplyQObj )
255
+ defer sub .Close (0 )
254
256
255
257
elemList , _ := parsePCFResponse (data )
256
258
@@ -293,12 +295,13 @@ func discoverElements(ty *MonType) error {
293
295
var err error
294
296
var data []byte
295
297
var sub ibmmq.MQObject
298
+ var metaReplyQObj ibmmq.MQObject
296
299
var elem * MonElement
297
300
298
- sub , err = subscribe (ty .elementTopic )
301
+ sub , err = subscribeManaged (ty .elementTopic , & metaReplyQObj )
299
302
if err == nil {
300
- data , err = getMessage (true )
301
- sub .Close (0 )
303
+ data , err = getMessageWithHObj (true , metaReplyQObj )
304
+ defer sub .Close (0 )
302
305
303
306
elemList , _ := parsePCFResponse (data )
304
307
@@ -350,15 +353,16 @@ func discoverElementsNLS(ty *MonType, locale string) error {
350
353
var err error
351
354
var data []byte
352
355
var sub ibmmq.MQObject
356
+ var metaReplyQObj ibmmq.MQObject
353
357
354
358
if locale == "" {
355
359
return nil
356
360
}
357
361
358
- sub , err = subscribe (ty .elementTopic + "/" + locale )
362
+ sub , err = subscribe (ty .elementTopic + "/" + locale , & metaReplyQObj )
359
363
if err == nil {
360
364
// 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 )
362
366
sub .Close (0 )
363
367
364
368
if err != nil {
@@ -668,11 +672,11 @@ func createSubscriptions() error {
668
672
continue
669
673
}
670
674
topic := fmt .Sprintf (ty .ObjectTopic , qList [i ])
671
- sub , err = subscribe (topic )
675
+ sub , err = subscribe (topic , & replyQObj )
672
676
ty.subHobj [qList [i ]] = sub
673
677
}
674
678
} else {
675
- sub , err = subscribe (ty .ObjectTopic )
679
+ sub , err = subscribe (ty .ObjectTopic , & replyQObj )
676
680
ty .subHobj [QMgrMapKey ] = sub
677
681
}
678
682
0 commit comments