IBM Support

IC65055: Unmanaged .NET client specifying MQGMO_CONVERT on a get fails with AccessViolationException at IBM.WMQ.Nmqi.Native.zstMQGET

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Unmanaged .NET client application attempting to get a message
    from a queue with the MQGMO_CONVERT option specified fails
    with:
    Unhandled Exception: System.AccessViolationException: Attempted
    to read or write protected memory. This is often an indication
    that other memory is corrupt.
    at IBM.WMQ.Nmqi.Native.zstMQGET(Int32 hConn, Int32 hObj,
    MQMD& md, MQGMO& gmo, Int32 bufferLength, Byte[] buffer, Int32&
    dataLength, lpiGETOPT lpiGetOpts, Int32& compCode, Int32&
    reason)
    at IBM.WMQ.Nmqi.UnmanagedNmqiMQ.zstMQGET(Hconn hConn, Hobj
    hObj, MQMessageDescriptor& md, MQGetMessageOptions& gmo, Int32
    bufferLength, Byte[] buffer, Int32& dataLength, MQLPIGetOpts
    lpiGetOpts, Int32& compCode, Int32& reason)
    at IBM.WMQ.MQDestination.Get(MQMessage message,
    MQGetMessageOptions gmo, Int32 maxMsgSize)
    at IBM.WMQ.MQDestination.Get(MQMessage message,
    MQGetMessageOptions gmo)
    at nmqsget.nmqsget.Main(String[] args)
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Any users of WebSphere MQ using the unmanaged .NET client to
    perform get requests with MQGMO_CONVERT specified.
    
    Platforms affected:
    Windows
    
    ****************************************************************
    PROBLEM SUMMARY:
    The problem was caused by a mismatch in the declarations of a
    function in the .NET layer as compared with the function in the
    native c layer. The .NET layer was passing an option by value
    whilst the c layer was expecting a pointer to the field. As a
    result, this led to the misinterpretation of the parameters on
    the stack in the c layer, leading to the invalid memory access
    operation.
    

Problem conclusion

  • WebSphere MQ was modified to ensure that the parameters passed
    from the .NET layer to the C layer were passed by reference and
    not by value.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
                       v7.0
    Platform           Fix Pack 7.0.1.2
    --------           --------------------
    Windows            U200316
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available, information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC65055

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    701

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-12-09

  • Closed date

    2010-01-11

  • Last modified date

    2010-01-11

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WMQ WINDOWS V7

  • Fixed component ID

    5724H7220

Applicable component levels

  • R701 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCPQ63","label":"APAR \/ Maintenance"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
11 January 2010