Skip to Main Content
IBM Z Software


This portal is to open public enhancement requests against IBM Z Software 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
Workspace z/OS Connect
Created by Guest
Created on May 25, 2020

Implement support for Enterprise PL/I data structures that pad data items aligned on byte, fullword or double word boundaries

Issue is well documented in the support case ID TS003305508.

Here is an example from it:

Kopio: Varjus Petteri T <petteri.t.varjus@kela.fi>; Huhtala Ahti <ahti.huhtala@kela.fi>; Laakso Tero <tero.laakso@kela.fi>; Jousmäki Timo <timo.jousmaki@kela.fi>
Aihe: VS: Kela: zosConnect: data type SHORT problem with 0 value (TS003305508)

Hii,
Attached the material that wee went through in our meeting and below the main points from it:

OAYRUUH program fails with a COMM-abend, because zOsConnectilta creates a COMM area with length 4857, even though the COMM area length should be 4855.
See CITE_CEEMSG.txt

/AABAYRS 20200415132626 STORAGE- AYRUHCO PITUUS =
/AABAYRS 20200415132626 APUPITUUS=0004855; ß COMM area length from PL/I compiler
/AABAYRS 20200415132626 EIBCALEN, PITUUS =
/AABAYRS 20200415132626 APUPITUUS=0004857; ß zConnectilta COMM area length
/AABAYRS 20200415132626 OAYRUUH-MODUULIN SUORITUS PÄÄTTYI ON ERROR-VIRHELOHKOON
/AABAYRS 20200415132626 AYRUHCO.IN.ASIAID= 1101131728;
/AABAYRS 20200415132626 APUHENRO= 0;
/AABAYRS 20200415132626 APURATJNO= 0;
/AABAYRS 20200415132626 CEE3250C The system or user abend COMM was issued. ß The abend caused by wrong length COMM area

The received COMM area length during program execution can also be seen in dump file OAYRUUH.DUMP.txt
Communication Area Length : 4857 (EIBCALEN) ß zConnectilta COMM area length

The PL/I compilers COMM area length and the padding it has created can be seen in file AYRUHCO.compile.txt:
5655-PL5 IBM(R) Enterprise PL/I for z/OS /*** OAYRUUH: YLEISEN ASUMISTUEN
Line.File Dims Offset Total Size Base Size Identifier
278.0 0 4855 4855 AYRUHCO ß COMM area length from PL/I compiler
0 205 205 IN
0 4 ASIAID
4 1 TARKOITUS
5 200 VARA1
205 1 /* padding */ ß padding from PL/I compiler
206 4649 4649 OUT
206 2 RUOKAKUNTALKM
1 208 3647 75 RUOKAKUNTA
1 208 4 RKJNO
1 212 3 SUHLJ
1 215 11 HETU
1 226 35 NIMI
1 261 10 SUHALPV
1 271 10 SUHLOPV
1 281 1 RKLITILA
1 282 1 OPISKELIJA
283 1 /* padding */ ß padding from PL/I compiler
3855 1 YHTEISO
3856 1 UUSI
3857 101 101 VIRHEET
3857 7 VILKO
3864 20 VKENTTA
3884 2 VIND
3886 72 TEKSTI
3958 2 TILKM
1 3960 395 79
HUOMAUTUKSET
1 3960 7 TILKO
1 3967 72 TEKSTI
4355 500 VARA2
5655-PL5 IBM(R) Enterprise PL/I for z/OS /*** OAYRUUH: YLEISEN ASUMISTUEN

In addition the zip file includes other material from zOsConnect, for example data structure zConnect_AYRUHCO.si and PL/I compiler output including the used compiler options.

Idea priority Urgent
  • Guest
    Reply
    |
    Aug 27, 2020

    This requirement has been evaluated and on the basis of current plans and market interest, it is not likely that this would be implemented in future zOS Connect EE releases, so correspondingly this requirement is being rejected. You have an opportunity to resubmit in twelve months time if you wish it to be considered then.

    While z/OS Connect does support alignment of data structure fields on half, full, and double-word boundaries, it does not support PL/I techniques that save space within an ALIGNED structure by omitting padding (e.g., last record is shorter than first).

    To expose PL/I programs with ALIGNED structures as services, a wrapper program with UNALIGNED versions of the structures could be exposed instead. For the request, the wrapper program would assign an UNALIGNED version of the request structure to an ALIGNED version and link to the original program. For the response, the wrapper program would assign the ALIGNED version of the response structure to the UNALIGNED version. The following example shows how a wrapper program can efficiently map between ALIGNED and UNALIGNED versions of structures:

    PGM1WRAP: PROC;

    DCL 01 PGM1_REQUEST ALIGNED,
    02 ...;
    DCL 01 PGM1_RESPONSE ALIGNED,
    02 ...;

    DCL 1 ZCEE_REQUEST LIKE PGM1_REQUEST UNALIGNED;
    DCL 1 ZCEE_RESPONSE LIKE PGM1_RESPONSE UNALIGNED;

    /* Get ZCEE_REQUEST from IMS message queue or CICS container */

    PGM1_REQUEST = ZCEE_REQUEST; /* unaligned to aligned */

    CALL PGM1(PGM1_REQUEST, PGM1_RESPONSE); /* pass aligned */

    ZCEE_RESPONSE = PGM1_RESPONSE; /* aligned to unaligned */

    /* Put ZCEE_RESPONSE to IMS message queue or CICS container */

    RETURN;

    END PGM1WRAP;