[Info-vax] Calling $CREPRC in COBOL

Richard Maher maher_rjSPAMLESS at hotmail.com
Wed Jun 22 20:31:23 EDT 2022


On 22/06/2022 11:59 pm, Stephen Hoffman wrote:
> On 2022-06-22 15:12:48 +0000, Dave Froble said:
> 
>> On 6/22/2022 10:18 AM, Richard Maher wrote:
>>> On 21/06/2022 12:07 pm, Dave Froble wrote:
>>>> On 6/20/2022 8:44 PM, Richard Maher wrote:
>>>>> On 20/06/2022 10:28 pm, Dave Froble wrote:
>>>>>> On 6/20/2022 7:37 AM, VAXman- at SendSpamHere.ORG wrote:
>>>>>>> In article <t8olit$71c$1 at dont-email.me>, Dave Froble 
>>>>>>> <davef at tsoft-inc.com> writes:
>>>>>>
>>>>>>> PQL$_ENQLM is provided by a simple Macro:
>>>>>>>
>>>>>>> .TITLE PQLDEF $PQLDEF    GLOBAL .END
>>>>>>>
>>>>>>> This is assembled/complied to create global symbols available at 
>>>>>>> link time.  Any VMS programmer (sh/w)ould be aware of this.
>>>>>>
>>>>>> Guess I am now.  Never did this particular thing.
>>>>>>
>>>>>>>> From my occasional playing with CREPRC what I remember is that 
>>>>>>>> the PQL parameters are used when a specific parameter is not 
>>>>>>>> provided.  Thus, just don't provide that parameter to CREPRC.  I 
>>>>>>>> never did.
>>>>>>>
>>>>>>> $PQLDEF definitions are used to create a quota list for the 
>>>>>>> $CREPRC system service that define process quotes for the created 
>>>>>>> process. Typically, the SYSGEN minimum and or default quota 
>>>>>>> parameters will suffice for the created process quota for the 
>>>>>>> crux of most processing.
>>>>>>
>>>>>> Most/all of my usage of CREPRC has been for creating detached 
>>>>>> processes.  Now that you made me think (I hate when that happens) 
>>>>>> I seem to recall that for detached processes the PQL parameters 
>>>>>> are used for defaults when a particular parameter is not in the 
>>>>>> item list.  I also seem to recall that that may not happen for 
>>>>>> other than detached processes.  Didn't do much of that.
>>>>>>
>>>>>> Regardless, if using a PQL parameter, unless they have been 
>>>>>> customized, (which I did on systems running our software), the 
>>>>>> value may not be of much use, if it is too low, and I also seem to 
>>>>>> recall that the supplied values were usually too low.  Thus my 
>>>>>> initial puzzlement as to why you wanted to use any PQL parameters.
>>>>>>
>>>>>> My solution was to have some application data, one set for each 
>>>>>> detached processes application, which specified needed parameters 
>>>>>> and such.  Thru time, more and more of our applications used 
>>>>>> detached processes, and the design turned out to be quite 
>>>>>> helpful.  Not so many people working with "terminals" these days, 
>>>>>> and more services serving trading partner inquiries, orders, and 
>>>>>> such.
>>>>>>
>>>>>
>>>>> So Dave's solution is "Application Data". Sounds good; what's 
>>>>> stored there?
>>>>>
>>>>> 1) We already know you have quotas
>>>>> 2) How about privileges and maybe a UIC?
>>>>> 3) Default working directory and base priority perhaps?
>>>>> 4) Maybe an account for charge back accounting
>>>>>
>>>>> What did you call it? DAVES_AF.DAT :-(
>>>>
>>>> Oh, you want the long version, huh?
>>>>
>>>> Way, way, back, it was determined that due to the lack of adequate 
>>>> channels in Basic+, 12 to be precise, it would be advisable to have 
>>>> a single file that could be used for different types of data.  
>>>> Things with just a few records, such as maybe 20 terms codes, 50 
>>>> state codes, and others.  We even called it a "codes file".  The 
>>>> design was for having the capability of re-defining the data fields 
>>>> in the I/O buffer for each "code type".  Even implemented a data 
>>>> file editor to use the multiple record definitions.
>>>>
>>>> Over time, many different record definitions were added to the 
>>>> utility.  Ended up with hundreds.  Was really useful.
>>>>
>>>> When we started setting up detached processes, later on on VMS, the 
>>>> CODES file seemed the logical place to set up the data, assuming 
>>>> that the number of detached processes we'd be running was in that 
>>>> 1-100 range, for which the CODES file worked so well.  That 
>>>> particular record definition contained all the things we wanted a 
>>>> detached process to know.
>>>>
>>>> The concept worked well, to the point all applications used it.  
>>>> Every program got it's filenames from the codes file using 
>>>> keys/tokens/whatever you want to call them for one example.  The 
>>>> entire TOLAS and other ERP type applications were built around the 
>>>> concept.
>>>>
>>>> From an old customer site, no longer in use:
>>>>
>>>> ---Code type---------Code description------
>>>>
>>>> CODES             Codes Descriptors
>>>> BANK_CODE         Bank code records
>>>> CHARGES           Charge code records
>>>> COLLECTOR         Credit analyst codes
>>>> ...
>>>> WAREHOUSE         Warehouse code records
>>>> WHSE_CTL          Warehouse control records
>>>>
>>>> Many more in current systems ...
>>>>
>>>
>>>
>>> There ain't no fixin' stupid :-(
>>>
>>> https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/service-accounts 
>>>
>>>
>>>
>>
>> Not sure what we're discussing now Richard ???
> 
> Richard is discussing Microsoft Windows features.
> 
> Else-platform, your approach is akin to a home-grown version of the 
> preferences files that are now commonly in use on other platforms, 
> though those typically have different formats and structures and 
> settings can be nested.  OpenVMS unfortunately has big gaps in its 
> available APIs here.
> 
> Here's the Apple equivalent: 
> https://developer.apple.com/documentation/foundation/nsuserdefaults
> 
> In a newer app design, LDAP would probably be used to store the 
> settings, as that can allow these settings on the computer, the user, 
> groups, or environment-wide. Outside of the lack of local commands and 
> lexicals, LDAP is logical names, thirty years on. And the existing 
> features could probably be re-hosted over onto LDAP without 
> significantly altering the existing OpenVMS APIs, if at all.  For 
> strictly-local settings-related text-format stuff where I don't have an 
> API for preferences and defaults, I might look at using JSON or YAML as 
> the format, not that BASIC or most OpenVMS apps have a good path into 
> any of that.
> 
> Within OpenVMS, these access settings can be enforced using identifiers, 
> where the access control is associated with an OpenVMS object. LDAP and 
> local services would need access to RIGHTSLIST or an analog to map from 
> the text name to the binary value that then gets attached all over the 
> place within OpenVMS, were LDAP involved here.
> 
> LDAP itself running locally could replace the entirety of the OpenVMS 
> authentication system, not that I would expect to see that happen in 
> this decade.
> 
> I'd expect LDAP is underneath what Richard mentions, though have no 
> interest in wading further into the Microsoft documentation.
> 
> As for your process creation... The PQL stuff is one of those areas 
> where the argument is optional, where the defaults are fickle, and where 
> the PQL list really shouldn't be optional. The mailbox settings are 
> another area where the defaults are way, way, way too hazardous for use 
> by production apps. The IOSB argument is another area, and that argument 
> should never be considered optional.  And as an added wrinkle here in 
> some application environments and particularly given the PQL list 
> contents aren't naturally aligned, which means there's yet another 
> surprise awaiting the unwary.
> 
> 

Don't get me going on LDAP and JWTs :-(

Authentication *IS NOT* authorization people!



More information about the Info-vax mailing list