Skip to Main Content
Integration


This is an IBM Automation portal for Integration products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.


Status Not under consideration
Created by Guest
Created on Sep 25, 2024

MQ must be resilient to System Request 2 on IBM i

In i5/OS there is an option called SYSREQ 2 - end previous request.  Using this function within MQ on IBM i has damaging and sometimes unrecoverable effects.  When a user unknowingly uses SYSREQ 2 for a slow responding MQ function, it may go unnoticed causing MQ performance issues that many are probably not aware of.  Fixing MQ to be able to use this option fixes what really is a defect in the MQ code compatibility and solidifies its functionality.

Idea priority High
  • Admin
    Mark Taylor
    Reply
    |
    Nov 12, 2024

    SysReq can be restricted https://www.ibm.com/support/pages/securing-options-sys-req-menu.

    Issuing a SysReq-2 ENDRQS can cause issues as the callstack is unwound but the job remains 'valid'. This poses a problem that any type of locks or mutexes held by the still-valid job will not be released. Re-entering MQ code in the same job is also very likely to cause resource deadlocks. There is little that MQ can do to 'support' ENDRQS. The CL commands provided by MQ (e.g. WRKMQMMSG) are not currently setup to be request processors (see https://www.ibm.com/docs/en/i/7.4?topic=program-receiving-request-messages#rqmsg) so there is no way for MQ code to currently receive the CPF1907 message sent by ENDRQS (SysReq-2). However you could add a wrapper like this;

    PGM 
    SNDPGMMSG MSG('Request Message') TOPGMQ(*EXT) MSGTYPE(*RQS)
    RCVMSG PGMQ(*EXT) MSGTYPE(*RQS) RMV(*NO)
    WRKMQM
    MONMSG MSGID(CPF1907)
    RMVMSG CLEAR(*ALL)
    ENDPGM

    and monitor for the CPF1907 message. The only safe thing for MQ to do on receipt of that CPF1907 would be to ENDJOB JOB(*) OPTION(*IMMED) to guarantee that the unwind of the callstack has released its locks. For user-written MQ applications, the application would also need to be written as a request processor and handle the CPF1907 itself.

    There would be little value in MQ changing its CL commands to catch an ENDRQS and for MQ to ENDJOB. Once a SysReq-2 has been issued whilst in MQ code, a user must end their job to allow 'owner died' lock recovery.

    Therefore this request is being declined.