+

Search Tips | Advanced Search

Making initial checks on IBM i

Before you start problem determination in detail on IBM® i, consider whether there is an obvious cause of the problem, or an area of investigation that is likely to give useful results. This approach to diagnosis can often save a lot of work by highlighting a simple error, or by narrowing down the range of possibilities.


About this task

The cause of your problem could be in any of the following:

Some preliminary questions for you to consider are listed in the following procedure. If you are able to find the cause of the problem by working through these preliminary checks, we can then, if needed, use the information in other sections of the IBM MQ product documentation, and in the libraries of other licensed programs, to help you resolve the problem.

If you are not able to identify the cause of the probllem by carrying out the preliminary checks, and so need to carry out a more detailed investigation there are further questions for you to consider in the subtopics. As you work through the lists of questions, make a note of anything that might be relevant to the problem. Even if your observations do not suggest a cause straight away, they might be useful later if we have to carry out a systematic problem determination exercise.


Procedure

Consider the following questions. The following steps are intended to help you isolate the problem and are taken from the viewpoint of an IBM MQ application. Check all the suggestions at each stage.
  1. Has IBM MQ for IBM i run successfully before?

      Yes
      Proceed to Step 2.

      No
      It is likely that we have not installed or set up IBM MQ correctly.

  2. Has the IBM MQ application run successfully before?

      Yes
      Proceed to Step 3.

      No
      Consider the following:
      1. The application might have failed to compile or link, and fails if you attempt to invoke it. Check the output from the compiler or linker.

        Refer to the appropriate programming language reference information, or see Developing applications, for information about how to build our application.

      2. Consider the logic of the application. For example, do the symptoms of the problem indicate that a function is failing and, therefore, that a piece of code is in error. Check the following common programming errors:

        • Assuming that queues can be shared, when they are in fact exclusive.
        • Trying to access queues and data without the correct security authorization.
        • Passing incorrect parameters in an MQI call; if the wrong number of parameters is passed, no attempt can be made to complete the completion code and reason code fields, and the task is ended abnormally.
        • Failing to check return codes from MQI requests.
        • Use incorrect addresses.
        • Passing variables with incorrect lengths specified.
        • Passing parameters in the wrong order.
        • Failing to initialize MsgId and CorrelId correctly.

  3. Has the IBM MQ application changed since the last successful run?

      Yes
      It is likely that the error lies in the new or modified part of the application. Check all the changes and see if we can find an obvious reason for the problem.
      1. Have all the functions of the application been fully exercised before?

        Could it be that the problem occurred when part of the application that had never been invoked before was used for the first time? If so, it is likely that the error lies in that part of the application. Try to find out what the application was doing when it failed, and check the source code in that part of the program for errors.

      2. If the program has run successfully before, check the current queue status and files that were being processed when the error occurred. It is possible that they contain some unusual data value that causes a rarely used path in the program to be invoked.
      3. The application received an unexpected MQI return code. For example:

        • Does our application assume that the queues it accesses are shareable? If a queue has been redefined as exclusive, can our application deal with return codes indicating that it can no longer access that queue?
        • Have any queue definition or security profiles been changed? An MQOPEN call could fail because of a security violation; can our application recover from the resulting return code?

        See MQI Applications reference for your programming language for a description of each return code.

      4. If we have applied any PTF to IBM MQ for IBM i, check that you received no error messages when you installed the PTF.

      No
      Ensure that we have eliminated all the preceding suggestions and proceed to Step 4.

  4. Has the server system remained unchanged since the last successful run?

      Yes
      Proceed to Identifying characteristics of the problem on IBM i.

      No
      Consider all aspects of the system and review the appropriate documentation on how the change might have affected the IBM MQ application. For example :

      • Interfaces with other applications
      • Installation of new operating system or hardware
      • Application of PTFs
      • Changes in operating procedures


What to do next