[Info-vax] VSI roadmap

Jan-Erik Söderholm jan-erik.soderholm at telia.com
Fri Aug 18 13:58:07 EDT 2023


Den 2023-08-18 kl. 18:42, skrev Dave Froble:
> On 8/18/2023 10:12 AM, dthi... at gmail.com wrote:
>> On Thursday, August 17, 2023 at 7:10:15 PM UTC-4, Arne Vajhøj wrote:
>>> On 8/17/2023 11:21 AM, Marc Van Dyck wrote:
>>>> Arne Vajhøj explained :
>>>>> * the CDD replacement
>>>>
>>>> Any details about this ?
>>> The roadmap just says:
>>>
>>> <quote>
>>> * VDD (replacement for CDD)
>>> </quote>
>>>
>>> I don't know anything about VDD.
>>>
>>> Maybe some VSI people can enlighten us.
>>>
>>> It could be important for sites still using CDD today.
>>>
>>> I have not used CDD since late 80's/early 90's and
>>> I hated it.
>>>
>>> Arne
>>
>> While CDD made multi-language synchronization of record layouts easier ON 
>> VMS, it made it difficult when you wanted to move/port code to other 
>> platforms, which did not have language compiler constructs for accessing 
>> CDD. We moved part of our application suite to Linux to take advantage of 
>> some OS features, and needed to extract the record layouts into include 
>> files for the Linux compilers. From that point on, we found it easier to 
>> instruct our programmers to keep extracted include file directories in 
>> synch rather than maintain the VMS-only CDD layouts in combination with 
>> the include layouts.
>>
>> I certainly understand that from VSI's compatibility perspective that 
>> they would want it to prevent a lot of customer code rework by having a 
>> CDD construct available on x86_64. If VSI is internally creating a new 
>> version (VDD) it makes me think that Oracle has already said that they 
>> aren't planning to port CDD to x86_64.
>>
> 
> Ok, water over the dam, under the bridge, and out to sea.
> 
> The real problem is that a really bad design was adopted by DEC to make 
> record definitions part of the program (code) rather than part of the 
> database.  When the record definitions are part of the database, it really 
> doesn't matter what language or OS is in use, as long as the database 
> capabilities include extraction of the record definitions and access to the 
> data.
> 
> So, either there is a central repository of record definitions, such as 
> CDD, or a single copy of include files, or, each program might have it's 
> own definitions.

We create the (Rdb) database tables as we need them.
Then extract include files (done with the built-in DBA tool RMU).
The record definitions are loaded into a text library (TLB).
Finally COPY'ed from the TLB into the Cobol source files.

The RMU tool support extracting records in these languages:
SQL, ANSI_SQL, RDO, C, Cobol and Pascal.

This replaced the use of CDD that was a hazle to maintain
just for the record definitions.

A live example of extracting a Cobol record definition:

$ rmu /extract -
       /item=table -
       /language=cobol -
       /opt=(match="MK078T", nohead) -
       mk000db

** Table: MK078T

01 MK078T.
     05 MK078T_ARTIKELNR                picture X(10).
     05 MK078T_SERIENR                  picture S9(18) comp.
     05 MK078T_PROCESS                  picture X(10).
     05 MK078T_STATUS                   picture X(1).
     05 MK078T_STORED_TIME              SQL_TIMESTAMP.
     05 MK078T_ID                       picture S9(18) comp.

$

Only change in the Cobol sources was to replace the "include from
dictionary" with a "include module".

* EXEC SQL
*   INCLUDE FROM DICTIONARY 'ME_DIC:MK.MKRDB.RDB$RELATIONS.MK078T'
* END_EXEC.

EXEC SQL
   INCLUDE MODULE MK078T_SCO FROM LIBRARY 'MAHVLIB'
END_EXEC.

So, from an application point of view, it is still a single
place for record definitions, just in a other way.


> 
> With CDD, at least there is a single place for record definitions, and many 
> are stuck with the basic design.  So it is good that VSI is providing such 
> a utility.
> 
> Opinion, the whole design still sucks ...
> 




More information about the Info-vax mailing list