IDMS: Excessive DC504700 logging data in Web Services

book

Article ID: 209447

calendar_today

Updated On:

Products

CA IDMS

Issue/Introduction

When using the logging feature of IDMS Web Services, the data logged in the DC504700 messages can be excessive.

Even if the majority of the data is white space (e.g. x'40'), it still all gets logged.

Cause

This happens because it logs the content of the WSDEMO-REQUEST-MSG-DATA (as shown here in the sample IDMSWSDM-EN process code).

MOVE 16 TO WS-FUNCTION-CODE.        ! WSREQUEST()
LINK TO PROGRAM 'IDMSWSI' USING                  
   (WS-FUNCTION-CODE-RECORD,                     
    WS-RETURN-CODE-RECORD,                       
    WS-ERROR-INFO,                               
    WS-REQUEST-HANDLE-RECORD,                    
    WS-REQUEST-INFO,                             
    WSDEMO-REQUEST-MSG-DATA,                     
    WS-REQUEST-MSG-DESCRIPTOR,                   
    WSDEMO-RESPONSE-MSG-DATA,                    
    WS-RESPONSE-MSG-DESCRIPTOR).                 

Conceivably, WSDEMO-REQUEST-MSG-DATA may be very large in order to cater for any large web service data requirement.

Environment

Release : All supported releases
Component : IDMS/Web Services

Resolution

When ADS passes data to a user-program (cobol or assembler), the length of that data is not passed in any way. It is assumed that the programs are aware of how long the data is. Only an address is passed.

Regardless of how large the WSDEMO-REQUEST-MSG-DATA record is defined to be, it is the value of WS-REQ-MSG-BUFF-LEN passed in WS-REQUEST-MSG-DESCRIPTOR which dictates how much data is logged.

If you have an arbitrarily large WSDEMO-REQUEST-MSG-DATA, but you know that in a particular case the actual amount of relevant data is much less, assign WS-REQ-MSG-BUFF-LEN appropriately, and only that much of the record will be logged.