Troubleshooting your namespace applications

When using shared namespaces, we must ensure that you share all namespaces (IPC, PID and UTS/hostname) and mounted volumes, otherwise the applications will not work.

See Running local binding applications in separate containers for a list of restrictions we must follow.

If the application does not meet all the restrictions listed, you could encounter problems where the container starts, but the functionality you expect does not work.

The following list outlines some common causes, and the behavior we are likely see if you have forgotten to meet one of the restrictions.

  • If you forget to share either the namespace (UTS/PID/IPC), or the hostname of the containers, and you mount the volume, then your container will be able to see the queue manager but not interact with the queue manager.

    • For dspmq commands, you see the following:
      docker exec container dspmq
      
      QMNAME(QM1)                       STATUS(Status not available)
    • For runmqsc commands, or other commands that try to connect to the queue manager, we are likely to receive an AMQ8146 error message:
      docker exec -it container runmqsc QM1
      5724-H72 (C) Copyright IBM Corp. 1994, 2020.
      Starting MQSC for queue manager QM1.
      AMQ8146: IBM MQ queue manager not available

  • If you share all the required namespaces but we do not mount a shared volume to the /var/mqm directory, and you have a valid IBM MQ data path, then your commands also receive AMQ8146 error messages. However, dspmq is not able to see your queue manager at all, and instead returns a blank response:
    docker exec container dspmq
  • If you share all the required namespaces but we do not mount a shared volume to the /var/mqm directory, and we do not have a valid IBM MQ data path (or no IBM MQ data path), then you see various errors as the data path is a key component of an IBM MQ installation. Without the data path, IBM MQ cannot operate. If you run any of the following commands, and you see responses similar to those shown in these examples, you should verify that we have mounted the directory or created an IBM MQ data directory:
    docker exec container dspmq
    'No such file or directory' from /var/mqm/mqs.ini
    AMQ6090: IBM MQ was unable to display an error message FFFFFFFF.
    AMQffff
    
    docker exec container dspmqver
    AMQ7047: An unexpected error was encountered by a command. Reason code is 0.
    
    docker exec container mqrc
    <file path>/mqrc.c[1152]
    lpiObtainQMDetails --> 545261715
    
    docker exec container crtmqm QM1
    AMQ8101: IBM MQ error (893) has occurred.
    
    docker exec container strmqm QM1
    AMQ6239: Permission denied attempting to access filesystem location '/var/mqm'.
    AMQ7002: An error occurred manipulating a file.
    
    docker exec container endmqm QM1
    AMQ8101: IBM MQ error (893) has occurred.
    
    docker exec container dltmqm QM1
    AMQ7002: An error occurred manipulating a file.
    
    docker exec container strmqweb
    <file path>/mqrc.c[1152]
    lpiObtainQMDetails --> 545261715

Parent topic: Running local binding applications in separate containers