1
votes

we have facing error, application unable to connect to queue manager,with reason code mqrc 2538,

  1. webspher MQ version v7.0.1.2.

  2. operating system "Solaris".

  3. I have started the listener manually through

    runmqlsr -m qmname -t tcp -p port
    
  4. after i have checked status of listener through command,

    display lsstatus(listener name)
    
  5. "listener is available but when I try to display the status of this listener it is showing MQ object not found."

  6. we have checked error logs but there is no information for related client fails we have started listener manually, listener information only available in error logs.

  7. Also we have checked "/var/mqm/error" we found the FDC files "probe ID: XY132002" we have contact with sysadmin they mount the disk space. After mounting /var/mqm/ disc space still we are facing the same issue.

i have already given "start lstr(lstr name)" in script mode, but i its accepting the request, while I try to display the status of this listener it is showing MQ object not found."

i have checked qmgr error logs and fdc error logs"

can you please find the below errors written in /var/mqm/errors/AMQERR01.LOG

Explanation: 1. An attempt hasbeen made to run the brker(SFMSICREQMGR) but the brker has ended for reason '6119:xecF_E_UNEXPECTED_SYSTEM_RC'.

error: AMQ6119:An internal WebSphere MQ error has occured(failed to get memory segment:shmget(0x00000000, 16384) [rc =1 errno=28] no space left on device. ++below error written in queue manger level error:++

AMQ5008: An essential websphere MQ process 10063 (amqfgpub) cannot be found is assumed to be terminated.

these are errors written in queue manager level error logs and system level error logs:

  1. we have added below values

    process.max-file-descriptor=(basic,10000,deny)
    project.max-sem-ids=(priv,1024,deny)
    project.max-shm-ids=(priv,1024,deny)
    project.max-shm-memory=(priv,4294967296,deny)
    
  2. after adding this parameters we restarted the queue manager's,

  3. we have four queue managers in server, three queue managers and listeners are in running state, fourth queue manager facing same error.

  4. we have stopped one queue manager and we have run the fourth queue manager,the fourth queue manager is running and listener also in running state.

  5. one queue manager is not allowing to start. we are facing same error for this queue manager.

  6. All queue managers and listeners running fine.

we have created local queue, queue name(error_local_queue).but while application tried get msg from this queue his getting error Mqrc 2033.

Kindly help for this issue

thank you so much to all issue got resolved.

2
That 2033 is not related to the original problem. Please post a new question.JoshMc

2 Answers

0
votes

MQ v7.0 has been out of support since September 30th 2015.

The errors you found indicate the queue manager is short on shared memory, this could cause the entire queue manager to have issues including your listener. The current values along with IBM's recommendations can by found using the mqconfig script.

MQ v7.0 did not come with the mqconfig script. Download the script and verify which kernel settings are not correct, the download site is "How to configure UNIX and Linux systems for IBM MQ".

You can find more information on setting these in the IBM MQ v7 Knowledge Center page "Resource limit configuration".

The values in the Knowledge center are recommended values for a average server with a couple of queue managers and should be treated as a minimum value. If you can't run 4 queue managers then I would suggest going to higher values. I would start with setting max-sem-ids and max-shm-ids to 10240 and see if that solves it, if not then attempt to add 50% to the max-shm-memory value.

1
votes

If you start a listener using the following command (as per your question):-

runmqlsr -m qmname -t tcp -p port

Then you have not specified a name for the listener anywhere (because this command does not have that capability).

It will however still show up in a DISPLAY LSSTATUS command with a system generated name. If you use the following command:-

DISPLAY LSSTATUS(*)

that will show all running listeners, and you will see that there is one with a name something like SYSTEM.LISTENER.TCP.1 which is your runmqlsr one.

Alternatively, if you want to give your listener a specific name, then you must define a listener as follows (replacing nnnn with your port number):-

DEFINE LISTENER(TCP.LSTR) TRPTYPE(TCP) CONTROL(QMGR) PORT(nnnn)

Then you are able to start it as follows:-

START LISTENER(TCP.LSTR)

and show it's status as follows:-

DISPLAY LSSTATUS(TCP.LSTR) ALL

N.B. I used the name TCP.LSTR but you may choose any name you wish.

The errors you mention at the end of your question are unrelated to listeners. Please open a separate question for those.