ibm-messaging / mq-metric-samples

IBM® MQ metric gathering client samples
Apache License 2.0
57 stars 70 forks source link

runtime/cgo: pthread_create failed: Resource temporarily unavailable #297

Open Aeryes opened 2 months ago

Aeryes commented 2 months ago

MQ Go Version : v5.5.4 mq-metric-samples-5.5.4.1 go version go1.22.2 linux/amd64

I am trying to install the mq_prometheus in an air gapped env.

File locations (All moved from /home/myuser/gowork/mq-metrics-samples-5.5.4.1/ after building with go): /usr/local/bin/mqgo/mq_prometheus/mq_prometheus.sh /usr/local/bin/mqgo/mq_prometheus/mq_prometheus.mqsc /usr/local/bin/mqgo/mqprometheus/ - Contains all the files from the mqprometheus folder in the repo. /usr/local/bin/mqgo/compiled/mqprometheus - File built with go build.

I built from /home/myuser/gowork/mq-metric-samples-5.5.4.1/mq-metrics-samples-5.5.4.1 using

  cd ./src/github.com/ibm-messaging/mq-metric-samples
  export CGO_LDFLAGS_ALLOW='-Wl,-rpath.*'
  mkdir -p /tmp/go/bin
  go build -mod=vendor -o /tmp/go/bin/mq_prometheus ./cmd/mq_prometheus/*.go

MQSC File Contents:

STOP SERVICE(MQPROMETHEUS)
DELETE SERVICE(MQPROMETHEUS)

* Reset the definition
DEFINE SERVICE(MQPROMETHEUS)         +
       CONTROL(QMGR)               +
       SERVTYPE(SERVER)            +
       STARTCMD('/usr/local/bin/mqgo/mq_prometheus/mq_prometheus.sh') +
       STARTARG(+QMNAME+)          +
       STOPCMD('/usr/bin/kill ' )  +
       STOPARG(+MQ_SERVER_PID+)    +
       STDOUT('/var/mqm/errors/mq_prometheus.out')  +
       STDERR('/var/mqm/errors/mq_prometheus.err')  +
       DESCR('MQ exporter for Prometheus')

* Start it manually now; will be automatically started on future qmgr startup
START SERVICE(MQPROMETHEUS)

SH File Contents:

#!/bin/bash

# This is used to start the IBM MQ monitoring service for Prometheus

# The queue manager name comes in from the service definition as the
# only command line parameter
qMgr=$1

# Set the environment to ensure we pick up libmqm.so etc
# Try to run it for a local qmgr; if that fails fallback to a
# default
# If this is a client connection, then deal with no known qmgr of the given name.
. /opt/mqm/bin/setmqenv -m $qMgr -k >/dev/null 2>&1
if [ $? -ne 0 ]
then
  . /opt/mqm/bin/setmqenv -s -k
fi

# A list of queues to be monitored is given here.
# It is a set of names or patterns ('*' only at the end, to match how MQ works),
# separated by commas. When no queues match a pattern, it is reported but
# is not fatal.
# The set can also include negative patterns such as "!SYSTEM.*".
queues="APP.*"

# An alternative is to have a file containing the patterns, and named
# via the ibmmq.monitoredQueuesFile option.

# Do similar for channels
channels="TO.*,SYSTEM.DEF.SVRCONN"

# See config.go for all recognised flags
ARGS="-ibmmq.queueManager=$qMgr"
ARGS="$ARGS -ibmmq.monitoredQueues=$queues"
ARGS="$ARGS -ibmmq.monitoredChannels=$channels"
ARGS="$ARGS -ibmmq.monitoredTopics=#"
ARGS="$ARGS -ibmmq.monitoredSubscriptions=*"
ARGS="$ARGS -rediscoverInterval=1h"

ARGS="$ARGS -ibmmq.useStatus=true"
ARGS="$ARGS -log.level=error"

# This may help with some issues if the program has a SEGV. It
# allows Go to do a better stack trace.
export MQS_NO_SYNC_SIGNAL_HANDLING=true

# Start via "exec" so the pid remains the same. The queue manager can
# then check the existence of the service and use the MQ_SERVER_PID value
# to kill it on shutdown.
exec /usr/local/bin/compiled/mq_prometheus $ARGS

I have a queue manager that I want to monitor so I run: runmqsc QM_PROMETHEUS<"/usr/local/bin/mqgo/mq_prometheus/mq_prometheus.mqsc"

After running this and checking the error log located at /var/mqm/errors/mq_prometheus.err I get the following:

runtime/cgo: pthread_create failed: Resource temporarily unavailable
SIGABRT: abort
PC=0x7f26b22a154c m=0 sigcode=18446744073709551610

goroutine 0 gp=0xc7d0a0 m=0 mp=0xc7dc20 [idle]:
runtime: g 0 gp=0xc7d0a0: unknown pc 0x7f26b22a154c
stack: frame={sp:0x7ffc4ceee330, fp:0x0} stack=[0x7ffc4bef1000,0x7ffc4ceee890)
0x00007ffc4ceee230:  0x0000000000000001  0x0000000000000000
0x00007ffc4ceee240:  0x00007f26b2213e90  0x00007f26b22b1dc0
0x00007ffc4ceee250:  0x000000000041a974 <runtime.sysMap+0x0000000000000034>  0x00007ffc4ceee610
0x00007ffc4ceee260:  0x2525252525252525  0x2525252525252525
0x00007ffc4ceee270:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee280:  0x00000000000000ff  0x0000000000000000
0x00007ffc4ceee290:  0x00000000000000ff  0x0000000000000000
0x00007ffc4ceee2a0:  0x2203a61ef44e0100  0x000000000000003c
0x00007ffc4ceee2b0:  0x00000000007f1802  0x00007f26b2868128
0x00007ffc4ceee2c0:  0x0000000000000040  0x0000000000472c80 <runtime.cgoSigtramp+0x0000000000000000>
0x00007ffc4ceee2d0:  0xfffffffe7fffffff  0x0000000000000000
0x00007ffc4ceee2e0:  0xed7d38c3eb2e6f17  0x2e2424ac5c07189e
0x00007ffc4ceee2f0:  0x927f1675cc167f50  0xaed613a1258f14dc
0x00007ffc4ceee300:  0x76294e82451f40e7  0xcde5c688a198f51e
0x00007ffc4ceee310:  0x90b535b04eceb0ea  0x031961ad5e32e1b4
0x00007ffc4ceee320:  0x7193ecf87193ecf8  0x00007f26b22a153e
0x00007ffc4ceee330: <0xf1ac5ed2f1ac5ed2  0xf1ac5ed2f1ac5ed2
0x00007ffc4ceee340:  0x54fb927454fb9274  0x54fb927454fb9274
0x00007ffc4ceee350:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee360:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee370:  0x0000000000000000  0x0000000000414c00 <runtime.growWork_fast32+0x0000000000000020>
0x00007ffc4ceee380:  0x00007ffc4ceee4f8  0x0000000000000002
0x00007ffc4ceee390:  0x00007ffc4ceee568  0x0000000000000001
0x00007ffc4ceee3a0:  0x2203a61ef44e0100  0x000000000000003c
0x00007ffc4ceee3b0:  0x00000000007f1802  0x2203a61ef44e0100
0x00007ffc4ceee3c0:  0x00007f26b289c740  0x0000000000000006
0x00007ffc4ceee3d0:  0x000000000000000b  0x00007ffc4ceee700
0x00007ffc4ceee3e0:  0x0000000000c7d0a0  0x00007f26b2254d06
0x00007ffc4ceee3f0:  0x00007f26b23fbe90  0x00007f26b22287f3
0x00007ffc4ceee400:  0x0000000000000020  0xcde5c688a198f51e
0x00007ffc4ceee410:  0x90b535b04eceb0ea  0x031961ad5e32e1b4
0x00007ffc4ceee420:  0x7193ecf87193ecf8  0x7193ecf87193ecf8
runtime: g 0 gp=0xc7d0a0: unknown pc 0x7f26b22a154c
stack: frame={sp:0x7ffc4ceee330, fp:0x0} stack=[0x7ffc4bef1000,0x7ffc4ceee890)
0x00007ffc4ceee230:  0x0000000000000001  0x0000000000000000
0x00007ffc4ceee240:  0x00007f26b2213e90  0x00007f26b22b1dc0
0x00007ffc4ceee250:  0x000000000041a974 <runtime.sysMap+0x0000000000000034>  0x00007ffc4ceee610
0x00007ffc4ceee260:  0x2525252525252525  0x2525252525252525
0x00007ffc4ceee270:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee280:  0x00000000000000ff  0x0000000000000000
0x00007ffc4ceee290:  0x00000000000000ff  0x0000000000000000
0x00007ffc4ceee2a0:  0x2203a61ef44e0100  0x000000000000003c
0x00007ffc4ceee2e0:  0xed7d38c3eb2e6f17  0x2e2424ac5c07189e
0x00007ffc4ceee2f0:  0x927f1675cc167f50  0xaed613a1258f14dc
0x00007ffc4ceee300:  0x76294e82451f40e7  0xcde5c688a198f51e
0x00007ffc4ceee310:  0x90b535b04eceb0ea  0x031961ad5e32e1b4
0x00007ffc4ceee320:  0x7193ecf87193ecf8  0x00007f26b22a153e
0x00007ffc4ceee330: <0xf1ac5ed2f1ac5ed2  0xf1ac5ed2f1ac5ed2
0x00007ffc4ceee340:  0x54fb927454fb9274  0x54fb927454fb9274
0x00007ffc4ceee350:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee360:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee370:  0x0000000000000000  0x0000000000414c00 <runtime.growWork_fast32+0x0000000000000020>
0x00007ffc4ceee380:  0x00007ffc4ceee4f8  0x0000000000000002
0x00007ffc4ceee390:  0x00007ffc4ceee568  0x0000000000000001
0x00007ffc4ceee3a0:  0x2203a61ef44e0100  0x000000000000003c
0x00007ffc4ceee3b0:  0x00000000007f1802  0x2203a61ef44e0100
0x00007ffc4ceee3c0:  0x00007f26b289c740  0x0000000000000006
0x00007ffc4ceee3d0:  0x000000000000000b  0x00007ffc4ceee700
0x00007ffc4ceee3e0:  0x0000000000c7d0a0  0x00007f26b2254d06
0x00007ffc4ceee3f0:  0x00007f26b23fbe90  0x00007f26b22287f3
0x00007ffc4ceee400:  0x0000000000000020  0xcde5c688a198f51e
0x00007ffc4ceee410:  0x90b535b04eceb0ea  0x031961ad5e32e1b4
0x00007ffc4ceee420:  0x7193ecf87193ecf8  0x7193ecf87193ecf8
runtime: g 0 gp=0xc7d0a0: unknown pc 0x7f26b22a154c
stack: frame={sp:0x7ffc4ceee330, fp:0x0} stack=[0x7ffc4bef1000,0x7ffc4ceee890)
0x00007ffc4ceee230:  0x0000000000000001  0x0000000000000000
0x00007ffc4ceee240:  0x00007f26b2213e90  0x00007f26b22b1dc0
0x00007ffc4ceee250:  0x000000000041a974 <runtime.sysMap+0x0000000000000034>  0x00007ffc4ceee610
0x00007ffc4ceee260:  0x2525252525252525  0x2525252525252525
0x00007ffc4ceee270:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee280:  0x00000000000000ff  0x0000000000000000
0x00007ffc4ceee290:  0x00000000000000ff  0x0000000000000000
0x00007ffc4ceee2a0:  0x2203a61ef44e0100  0x000000000000003c
0x00007ffc4ceee2b0:  0x00000000007f1802  0x00007f26b2868128
0x00007ffc4ceee2b0:  0x00000000007f1802  0x00007f26b2868128
0x00007ffc4ceee2c0:  0x0000000000000040  0x0000000000472c80 <runtime.cgoSigtramp+0x0000000000000000>
0x00007ffc4ceee2d0:  0xfffffffe7fffffff  0x0000000000000000
0x00007ffc4ceee2e0:  0xed7d38c3eb2e6f17  0x2e2424ac5c07189e
0x00007ffc4ceee2f0:  0x927f1675cc167f50  0xaed613a1258f14dc
0x00007ffc4ceee300:  0x76294e82451f40e7  0xcde5c688a198f51e
0x00007ffc4ceee310:  0x90b535b04eceb0ea  0x031961ad5e32e1b4
0x00007ffc4ceee320:  0x7193ecf87193ecf8  0x00007f26b22a153e
0x00007ffc4ceee330: <0xf1ac5ed2f1ac5ed2  0xf1ac5ed2f1ac5ed2
0x00007ffc4ceee340:  0x54fb927454fb9274  0x54fb927454fb9274
0x00007ffc4ceee350:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee360:  0x0000000000000000  0x0000000000000000
0x00007ffc4ceee370:  0x0000000000000000  0x0000000000414c00 <runtime.growWork_fast32+0x0000000000000020>
0x00007ffc4ceee380:  0x00007ffc4ceee4f8  0x0000000000000002
0x00007ffc4ceee390:  0x00007ffc4ceee568  0x0000000000000001
0x00007ffc4ceee3a0:  0x2203a61ef44e0100  0x000000000000003c
0x00007ffc4ceee3b0:  0x00000000007f1802  0x2203a61ef44e0100
0x00007ffc4ceee3c0:  0x00007f26b289c740  0x0000000000000006
0x00007ffc4ceee3d0:  0x000000000000000b  0x00007ffc4ceee700
0x00007ffc4ceee3e0:  0x0000000000c7d0a0  0x00007f26b2254d06
0x00007ffc4ceee3f0:  0x00007f26b23fbe90  0x00007f26b22287f3
0x00007ffc4ceee400:  0x0000000000000020  0xcde5c688a198f51e
0x00007ffc4ceee410:  0x90b535b04eceb0ea  0x031961ad5e32e1b4
0x00007ffc4ceee420:  0x7193ecf87193ecf8  0x7193ecf87193ecf8

goroutine 1 gp=0xc0000061c0 m=0 mp=0xc7dc20 [running]:
runtime.systemstack_switch()
        /usr/local/go/src/runtime/asm_amd64.s:474 +0x8 fp=0xc000052750 sp=0xc000052740 pc=0x46f0e8
runtime.main()
        /usr/local/go/src/runtime/proc.go:171 +0x67 fp=0xc0000527e0 sp=0xc000052750 pc=0x43ea27
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000527e8 sp=0xc0000527e0 pc=0x471101

rax    0x0
rbx    0x7f26b289c740
rcx    0x7f26b22a154c
rdx    0x6
rdi    0x7c0b7
rsi    0x7c0b7
rbp    0x7c0b7
rsp    0x7ffc4ceee330
r8     0x7ffc4ceee400
r9     0x7f26b23b14e0
r10    0x8
r11    0x246
r12    0x6
r13    0x7ffc4ceee700
r14    0xc7d0a0
r15    0x1ffffffffffffff
rip    0x7f26b22a154c
rflags 0x246
cs     0x33
fs     0x0
gs     0x0

and sometimes I see this instead:

IBM MQ metrics exporter for Prometheus monitoring
MQ Go Version : v5.5.4

terminate called after throwing an instance of 'std::system_error'
  what():  Resource temporarily unavailable
SIGABRT: abort
PC=0x7fd1d40a154c m=0 sigcode=18446744073709551610
signal arrived during cgo execution

goroutine 1 gp=0xc0000061c0 m=0 mp=0xc7dc20 [syscall]:
runtime.cgocall(0x7e27a0, 0xc0000cdae8)
        /usr/local/go/src/runtime/cgocall.go:157 +0x4b fp=0xc0000cdac0 sp=0xc0000cda88 pc=0x40758b
github.com/ibm-messaging/mq-golang/v5/ibmmq._Cfunc_MQCONNX(0xd1dc00, 0xc000216200, 0xc0002064c8, 0xc000236014, 0xc000236010)
        _cgo_gotypes.go:1118 +0x45 fp=0xc0000cdae8 sp=0xc0000cdac0 pc=0x50d385
github.com/ibm-messaging/mq-golang/v5/ibmmq.Connx.func2(0xd1dc00, 0xc000216200, 0xc0002064c8, 0xc000236014, 0xc000236010)
        /home/myuser/gowork/mq-metric-samples-5.5.4.1/mq-metric-samples-5.5.4.1/vendor/github.com/ibm-messaging/mq-golang/v5/ibmmq/mqi.go:248 +0x7b fp=0xc0000cdb20 sp=0xc0000cdae8 pc=0x50f6fb
github.com/ibm-messaging/mq-golang/v5/ibmmq.Connx({0x7fffe581c7b6, 0xf}, 0xc0000cdd20)
        /home/myuser/gowork/mq-metric-samples-5.5.4.1/mq-metric-samples-5.5.4.1/vendor/github.com/ibm-messaging/mq-golang/v5/ibmmq/mqi.go:248 +0x272 fp=0xc0000cdc48 sp=0xc0000cdb20 pc=0x50f4b2
github.com/ibm-messaging/mq-golang/v5/mqmetric.initConnectionKey({0x0, 0x0}, {0x7fffe581c7b6, 0xf}, {0x8c5394, 0x1a}, {0x0, 0x0}, 0xc7d810)
        /home/myuser/gowork/mq-metric-samples-5.5.4.1/mq-metric-samples-5.5.4.1/vendor/github.com/ibm-messaging/mq-golang/v5/mqmetric/mqif.go:171 +0x60b fp=0xc0000cddf0 sp=0xc0000cdc48 pc=0x53ffcb
github.com/ibm-messaging/mq-golang/v5/mqmetric.InitConnection(...)
        /home/myuser/gowork/mq-metric-samples-5.5.4.1/mq-metric-samples-5.5.4.1/vendor/github.com/ibm-messaging/mq-golang/v5/mqmetric/mqif.go:98
main.main()
        /home/myuser/gowork/mq-metric-samples-5.5.4.1/mq-metric-samples-5.5.4.1/cmd/mq_prometheus/main.go:94 +0x2dd fp=0xc0000cdf50 sp=0xc0000cddf0 pc=0x7e159d
runtime.main()
        /usr/local/go/src/runtime/proc.go:271 +0x29d fp=0xc0000cdfe0 sp=0xc0000cdf50 pc=0x43ec5d
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000cdfe8 sp=0xc0000cdfe0 pc=0x471101

goroutine 2 gp=0xc000006c40 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000052fa8 sp=0xc000052f88 pc=0x43f08e
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:408
runtime.forcegchelper()
        /usr/local/go/src/runtime/proc.go:326 +0xb3 fp=0xc000052fe0 sp=0xc000052fa8 pc=0x43ef13
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000052fe8 sp=0xc000052fe0 pc=0x471101
created by runtime.init.6 in goroutine 1
        /usr/local/go/src/runtime/proc.go:314 +0x1a

goroutine 3 gp=0xc000007180 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000053780 sp=0xc000053760 pc=0x43f08e
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:408
runtime.bgsweep(0xc00007a000)
        /usr/local/go/src/runtime/mgcsweep.go:278 +0x94 fp=0xc0000537c8 sp=0xc000053780 pc=0x429774
runtime.gcenable.gowrap1()
        /usr/local/go/src/runtime/mgc.go:203 +0x25 fp=0xc0000537e0 sp=0xc0000537c8 pc=0x41e0c5
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000537e8 sp=0xc0000537e0 pc=0x471101
created by runtime.gcenable in goroutine 1
        /usr/local/go/src/runtime/mgc.go:203 +0x66

goroutine 4 gp=0xc000007340 m=nil [GC scavenge wait]:
runtime.gopark(0xc00007a000?, 0x96c400?, 0x1?, 0x0?, 0xc000007340?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000053f78 sp=0xc000053f58 pc=0x43f08e
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:408
runtime.(*scavengerState).park(0xc7cca0)
        /usr/local/go/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000053fa8 sp=0xc000053f78 pc=0x427169
runtime.bgscavenge(0xc00007a000)
        /usr/local/go/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc000053fc8 sp=0xc000053fa8 pc=0x4276fc
runtime.gcenable.gowrap2()
        /usr/local/go/src/runtime/mgc.go:204 +0x25 fp=0xc000053fe0 sp=0xc000053fc8 pc=0x41e065
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000053fe8 sp=0xc000053fe0 pc=0x471101
created by runtime.gcenable in goroutine 1
        /usr/local/go/src/runtime/mgc.go:204 +0xa5

goroutine 5 gp=0xc000007c00 m=nil [finalizer wait]:
runtime.gopark(0xc000052648?, 0x411265?, 0xa8?, 0x1?, 0xc0000061c0?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000052620 sp=0xc000052600 pc=0x43f08e
runtime.runfinq()
        /usr/local/go/src/runtime/mfinal.go:194 +0x107 fp=0xc0000527e0 sp=0xc000052620 pc=0x41d107
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000527e8 sp=0xc0000527e0 pc=0x471101
created by runtime.createfing in goroutine 1
        /usr/local/go/src/runtime/mfinal.go:164 +0x3d

goroutine 18 gp=0xc0000c48c0 m=nil [chan receive]:
runtime.gopark(0x10?, 0x10?, 0x38?, 0x45?, 0x419265?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000062cf0 sp=0xc000062cd0 pc=0x43f08e
runtime.chanrecv(0xc00021a000, 0x0, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x3bf fp=0xc000062d68 sp=0xc000062cf0 pc=0x409b9f
        /usr/local/go/src/runtime/chan.go:442 +0x12 fp=0xc000062d90 sp=0xc000062d68 pc=0x4097b2
main.startServer()
        /home/myuser/gowork/mq-metric-samples-5.5.4.1/mq-metric-samples-5.5.4.1/cmd/mq_prometheus/main.go:204 +0x73 fp=0xc000062fe0 sp=0xc000062d90 pc=0x7e1d73
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000062fe8 sp=0xc000062fe0 pc=0x471101
created by main.main in goroutine 1
        /home/myuser/gowork/mq-metric-samples-5.5.4.1/mq-metric-samples-5.5.4.1/cmd/mq_prometheus/main.go:73 +0x12b

rax    0x0
rbx    0x7fd1d4627740
rcx    0x7fd1d40a154c
rdx    0x6
rdi    0x88b63
rsi    0x88b63
rbp    0x88b63
rsp    0x7fffe5812640
r8     0x7fffe5812710
r9     0x7fffe5812250
r10    0x8
r11    0x246
r12    0x6
r13    0x7fd1d2cdb610
r14    0x7800
r15    0xd518f0
rip    0x7fd1d40a154c
rflags 0x246

How can I resolve these issues?

Aeryes commented 2 months ago

Another question I would like to ask is should the script be ran in its own queue manager or should it be run inside my other queue managers that I wish to monitor. Its not very clear in the docs where I should run this when not using docker.

ibmmqmet commented 2 months ago

I've no real idea about the pthread issue. Google searches suggest it's often to do with a ulimit problem in your environment.

ibmmqmet commented 2 months ago

Each instance of the monitor will check on one queue manager. Sop it's usually best, where possible, to run it as a service alongside the queue manager you are monitoring. Each queue manager would have its own service and configuration,

If running the queue manager in a container, I'd prefer to add the monitor into that container. If that's not possible, then you can run it in its own container, connecting as a client. But then you probably have to coordinate the lifecycles of both the qmgr and the monitor containers.