My Oracle Support Banner

RP/MSQ 5.0 (VMS)/MSQ 5.01 (VMS) - CLS generates PAMS__INTERNAL with pams_get_msgw (Doc ID 776109.1)

Last updated on OCTOBER 19, 2023

Applies to:

Oracle MessageQ - Version 4.0 and later
Information in this document applies to any platform.
Information in this document applies to any platform

Goal

Product:  MessageQ for OpenVMS, V5.0-RP21
Component:  CLS server

PROBLEM DESCRIPTION
This appears to be a regression, introduced by RP20 for CR198706.

When RP20 and RP21 were released, customer tested pams_get_msg for large messages, and all seemed well.

However, with pams_get_msgw (any timeout reading a multireader queue), the CLS (server) returns PAMS__INTERNAL in the CLS header. Normally, the client side (eg, DMQCL32.DLL), checks only the client task ID, and since that is not filled
in, it reports: OpenVMS error code 139759722
%PAMS-E-NETERROR, Network error resulted in a communications link abort. 
However, when doing full dmqcltrace, the header is actually:
CL 03572.03360:Msg_type      = 14640
CL 03572.03360:Endpoint      = 12594
CL 03572.03360:Msg_length    = 40
CL 03572.03360:Pams_status   = 139761996
which means PAMS__INTERNAL

This error was introduced with RP20. I have tested with RP19, and it does not occur. RP19 works fine, but had the error that with V4.0 Clients, large messages were preceded by 32 nulls. That is fixed for pams_get_msg with RP20, but
this new error has been introduced for all clients (Both V4.0 and V5.0) with pams_get_msgw.

It is interesting to note that the CLS processes the get message correctly - it dequeues the message the message and writes a trace into its log as if everything is OK. However, the data transmitted back to the client is garbled,
except for the PAMS__INTERNAL status in the header. The last 20 bytes of the CL header are overwritten by the first 20 bytes of the message that should have been received.

To reproduce:
Bus 26, group 26 on <hostname>

Start MessageQ for OpenVMS, V5.0-RP21 on <hostname>.
Run sndmsg11 in $10$DKA100:[xxx.CASES.534656] to prime QUEUE_11 with messages

From Windows Client (I used V5.0-RP29), run x_getlw_vms (in zip file attached to this CR) which has tracing turned on.

Solution

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Goal
Solution


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.