On Thu, 22 May 2014 10:26:21 +0000 Rob Scott <[email protected]>
wrote:

:>Maybe part of the reason that there is not a lot of example source is that a 
responsible PC routine provider must establish quite a bit of plumbing to 
ensure system and application integrity that goes beyond just using the ETDEF 
and LXRES macro services.

:>This is especially true for PC space-switch routines (PC-ss) rather than 
simple current primary (PC-cp).

:>I suppose a PC-cp could be written to replace a SVC routine more easily than 
composing a PC-ss to perform some sort of client/server application request 
(which is the interesting stuff!)

:>IMHO a person embarking on writing a PC routine  should be armed with at 
least the following :

:>(o) Knowledge of how to safely move data between client and server without 
breaking system integrity. There are so many bad examples of supervisor/key0 
code out there in the public domain that just copy data without any due care 
and attention. Just because your code is in key0 and it is easy to use MVC to 
return data to your caller not matter the key does not mean that you should. A 
decent PC routine is always transferring data to and from the caller in the 
execution key of the caller.

Similar to SVC logic

:>In fact, I recommend a PPT entry in SCHEDxx to declare your server jobstep 
program to execute in a non-zero system key - key 2 and 4 are currently seen to 
be available in so much as there is no major z/OS system component famously 
using them. (1 = JES, 3 =AVM,5=DFP,6=VTAM, 7=DB2, IMS and MQ)

What is the advantage? What is wrong with the standard key8? The (E)CSA
resident blocks do not gain from the PPT entry and the server blocks are not
available to the client code.

:>(o) A method to issue messages, diagnostics and trace events in H<>P<>S 
environments and other exotic environments

:>(o) The habit of checking the "Environment" section of any service that they 
call - now that your code could be running H<>P<>S or locked, some of your 
favourite services may no longer be available to you.

In general, unless you are front ending a system service, you know your
environment.

But if XMEM, certain locks will block other locks,

:>(o) A method to add request blocks onto a queue in server private - for 
example something using PLO (there have been discussions about this on IBM-Main)

:>(o) Familiarity with SUSPEND/RESUME services so that you caller's request can 
be handled asynchronously

WAIT is also available. And latches.

:>(o) Task and ASID level resource manager routines to handle both "client gone 
while SUSPENDed" and "server gone unexpectedly" situations

As well as checking that the server is up before issuing the PC.

:>(o) Decent recovery routine(s) for ESTAE, FRR and ARR environments

:>I do not believe that it is very common these days for anyone working outside 
of IBM or an ISV to have the sort of skills or experience of all of the above.
:>It is probably even rarer to find someone in a sysprog team who you can go to 
for local help if you are writing this stuff - things were different back in 
the 1980s when sysprog teams were larger and assembler knowledge widespread.

:>If you do have a test system to play on and blessing from your employer, I 
would recommend that you give it a go.

:>There are people on this list (or maybe even better on IBM-Main) who can help 
when you hit problems.

--
Binyamin Dissen <[email protected]>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

Reply via email to