Re: WLM : multiple periods not recommended for batch - why?

2012-05-01 Thread Chris Craddock
On May 1, 2012, at 6:39 AM, Andrew Rowley and...@blackhillsoftware.com wrote:
 I have read a few articles that say that multiple periods are not recommended 
 for batch service classes. Multiple periods seems to be considered a bit old 
 fashioned.
 
 I haven't been able to find anything clearly explaining why. I have always 
 felt that they worked well. My best guess is that it is something to do with 
 the behaviour of WLM managed initiators but I'm not sure.
 
 Can anyone shed any light, or point me to some 

Basically it is to do with the fact that WLM works best with a limited number 
of total service class periods and it is better not to waste them on 
multi-period classes. That total number seems to vary according to which 
direction the wind is blowing, but given the sysplex-first nature of the 
algorithms it makes good sense to keep it small. 

The second reason is that the algorithms only work well when you have 
sufficient completions for a statistically valid sample. It is very likely that 
multi-period classes (other than perhaps TSO) would not have enough and so they 
might/would not be treated appropriately.  The take-away from that is that WLM 
is a statistical tool and trying to get very fine-grained with it will likely 
end in tears. 

CC

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: 0C4 pic 4

2012-04-16 Thread Chris Craddock
On Sun, Apr 15, 2012 at 12:29 PM, Micheal Butz michealb...@optonline.netwrote:

  I am getting S0C4 04 within a wait which leads me to believe that the
 storage key of the ECB storage key is not the same as the PSW STORAGE KEY
 8- 11. Does the following code make sense to resolve this address


TESTAUTH FCTN=1  TEST APF AUTORIZATION
  LTR   R15,R5 CHECK R15
  BNZ   NAPFSYSNDXNOT APF
  MODESET MODE=SUP,KEY=NZERO  TURN ON BIT 15 IN PSW
  LAR0,REPLY_ECB  GET ECB ADDRESS
  IVSK  R1,R0 GET STORAGE KEY
  MODESET KEYREG=R1,SAVEKEY=OLDKEY SET STORAGE KEY IN PSW
WAIT=REPLY_ECB
 MODESET MODE=PROB,KEY=NZERO   back to current TCB key



I'm sorry if I seem to be picking on you but there are so many ways that
this is wrong. You don't need to be in supervisor state to issue the IVSK
instruction, but that's the least of your worries. Overtly changing to key
zero just guarantees that the OS is going to vaporize 4 bytes at what ever
location you specify - even if it isn't really an ECB at all. In other
words, it is another (data) integrity hole.  You should never be using an
ECB that is in another key than your current PSW key. The system gives you
a way to do it, but it assumes you know what you're doing.  The only real
exception to this is the stop/modify communications ECB for your your
address space. The OS has a special case code path that lets you wait on
that. There might be other exceptions when you know what you're doing, but
this isn't one of them.

So to reiterate my earlier advice, you're going in the wrong direction. If
you're going to write privileged code that runs entirely within a single
APF authorized address space you can do more or less whatever you want.
However, if your code might ever get control in a non-APF environment, or
you try to share code/data between address spaces, you have a steep hill to
climb to avoid compromising integrity. Sorry, them's just the facts.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: System completion code 201

2012-04-11 Thread Chris Craddock
On Wed, Apr 11, 2012 at 1:07 PM, Micheal Butz michealb...@optonline.netwrote:

 There is a reason I have CSA in KEY 8

 Was just wondering If I have to do an explicit modeset to key=8



What you're doing is just stupendously wrong. As a privileged program, you
don't NEED to use key 8 storage and it is an integrity exposure to use key
8 CSA. The gymnastics you would have to go through to get what you're doing
to appear to work would further increase your exposures. Add to that the
fact that an ordinary prob state/key 8 task in another address space cannot
do a cross-memory post anyway (sounds like the likely reason for your
predicament) and you're just digging yourself a hole.

Don't do it. Don't even start doing it.

It is a whole lot easier to do it right from the start.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Malicious Software Protection

2012-04-02 Thread Chris Craddock
On Apr 2, 2012, at 10:46 AM, R.S. r.skoru...@bremultibank.com.pl wrote:

 
 The same with unauthorized code - maybe the system is not bulletproof, but we 
 have no documented case of such flaw.


Sorry, but you are totally wrong there. Absence of publicized cases does not 
imply absence of cases. These matters are generally NOT publicized in order to 
avoid encouraging copycats - particularly in the financial sector. 

As for evidence; long ago in a previous life, I was *personally* involved in 
detecting/collecting evidence for prosecution in three separate cases where 
insiders (one sysprog and two operators) exploited integrity holes. One was 
proven to be an attempt at theft on a significant scale. One was an attempt at 
destructive behavior by a soon to be ex employee and the third was just some 
fool poking around to see what he could do - or that was his story anyway. In 
all three cases the employees were terminated and one was prosecuted. 

This is THE reason why I make so much fuss about integrity issues. The 
community mythology that z/OS and it's ancestors are immune to these things is 
just a myth. I have seen it happen up close and personal and I don't believe 
there is anything special about my experience. If I encountered these things in 
the real world, I am fairly certain it must have been happening in a lot more 
places around the world. 

CC

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Is there a way to cause SRB to TCB percolation if an XCF exit fails?

2012-04-02 Thread Chris Craddock
On Mon, Apr 2, 2012 at 4:32 PM, Binyamin Dissen
bdis...@dissensoftware.comwrote:

 The various exits run in SRB mode. As a pants and suspenders guy, I would
 like
 to have the task receive a notification from the system if the SRB and its
 FRR
 fail.



SRB to TCB percolation is a feature that the issuer of the SCHEDULE (or
equivalent) gets by specifying the purge TCB address. If you don't do the
scheduling (as in this case) I don't believe there's any (officially
supported) way to get what you want. It shouldn't be any big problem to
schedule an IRB out of the SRB's recovery code to do whatever you want
though. (I'm leaving out a lot of details that will be obvious to you)


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Malicious Software Protection

2012-04-01 Thread Chris Craddock
 While z/OS is probably immune to executables being introduced from
 outside, how vulnerable is

This really isn't a safe assumption, so all of the subsequent questions are 
kind of irrelevant. Yes, it is possible to configure a z/OS system so that it 
is extremely difficult to break into, but when you present a harder target, the 
universe just coughs up a better class of hacker in return. Sort of a yin and 
yang thing I guess. Anyway,  I recommend taking the time to read this wiki post 
on Stuxnet and then play a few what if? scenarios in your head. Very 
sobering.  

Enjoy http://en.wikipedia.org/wiki/Stuxnet 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Malicious Software Protection

2012-03-29 Thread Chris Craddock
On Mar 28, 2012, at 4:13 PM, R.S. r.skoru...@bremultibank.com.pl wrote:

 The problem is we don't believe. :-)
 
 W dniu 2012-03-28 22:45, Ray Overby pisze:
 Yes, I believe I have a way to attack a mainframe system where I don't
 have access.

Then would you believe me?

In the days before ubiquitous networking you would have been safe not do 
believe. Today I think you would be foolish not to believe. The proof is a 
thought experiment that I could walk you through, but I won't because I don't 
think it is wise to shout out the location of my neighbor's front door keys, 
even if he is foolish enough to leave them under the mat. It is the reason why 
I keep harping on about integrity violations.

Suffice to say that more sophisticated malware attacks in the real world like 
Stuxnet have proven conclusively that patience and a broad based approach can 
pay dividends even  in some of the most supposedly secure sites in the world. 
And if through that slow patient attack, you manage to get some code running on 
a z/OS system, THEN... even if that code is utterly non-privileged, it is quite 
easy to find and exploit integrity violations locally. And the world is your 
oyster. 

So it really isn't like on TV where the brainiac agents are always cracking 
firewall encryption in five minutes. But with the right kind of approach, they 
don't need to. And if they can do some human insider trading, then it is even 
easier. 

Bottom line: if you think your systems are really secure, you're probably nuts. 
Far more likely it's just that nobody has (yet) paid attention. Sorry. 

CC

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Program FLIH backdoor - This is a criminal breach of security!

2012-03-12 Thread Chris Craddock
On Sun, Mar 11, 2012 at 8:07 AM, John Gilmore johnwgilmore0...@gmail.comwrote:

 Since this sort of thing is expected of me, I will note that we find
 ourselves between Scylla and Charybdis here.

 Chris Craddock's formulation was open to the exception that Peter
 Relson took: there is fetch-protected storage the contents of which
 its owner is entirely free to make available to others.

 Peter's exception is logically impeccable.  It did, however, seem to
 me to be a very special one; and I observed that it was.  I still
 prefer the ROT that the contents of protected storage should not be
 made available to the unauthorized (in any but very special
 circumstances, when they are known procedurally to be innocuous.).

 To repeat myself now, Peter is nonetheless correct in the abstract.
 There is a long intellectual tradition which has it that the
 production of just one black swan is an unanswerable refutation of the
 proposition that all swans are white.


I can't quibble with Peter's exception. I was evidently not sufficiently
clear. I had assumed it was self-evident to everyone that a privileged
program is free to do what ever it wants with the contents of its own
storage - including both disclosing and/or modifying that data - regardless
of fetch protection. I was merely pointing out to a prior poster that a
privileged program is required to honor key controlled protection in
general and meeting that requirement is more rigorous than just not
mindlessly storing in areas provided by a caller (regardless of the
caller's key).

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Program FLIH backdoor - This is a criminal breach of security!

2012-03-09 Thread Chris Craddock
On Mar 8, 2012, at 1:15 PM, Ray Overby ray.ove...@kr-inc.com wrote:

 Rob - How about: If your authorized program while executing in PSW Key 0-7 
 stores into an address provided by an unauthorized caller (as long as the 
 store operation uses the execution PSW KEY) then this is a violation of the 
 IBM statement of integrity.


Not necessarily. The integrity statement would only be violated if the 
privileged program allowed the non-privileged program to circumvent key 
controlled access. To prevent this, the privileged program must use the 
non-privileged program's PSW key when passing any results back in areas 
provider by the caller (e.g. By using MVCDK and the caller's key) - however, 
the privileged program must also ensure that it does not inadvertently disclose 
the contents of fetch protected storage, regardless of how it moves the results 
back to the caller. 

In the latter case a black hat might cleverly cause a malformed privileged 
program to copy (say) contents of key zero fetch protected storage into plain 
old user key storage where the black hat could inspect it to his heart's 
content. 

So bottom line: using the caller's key to return results is a necessary, but 
not sufficient condition to maintain integrity. 

CC

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Interfacing with the MainFrame

2012-03-07 Thread Chris Craddock
So basically, you're planning to create a product and you want us to describe 
how to do it? 

Sent from my iPad

On Mar 7, 2012, at 3:51 PM, Ed Mackmahon dropip...@gmail.com wrote:

 Many thanks for your answers.
 
 Let me provide some more information
 
 I intend that the interface will logon to the mainframe and issue some 
 operator commands, read some members etc... gather information and 
 send it to the open systems server for further analysis.
 
 The user which will be used for logon to the mainframe will have specific 
 RACF/TSS/CA1
 display only authorities and the server is on the organization intranet not 
 an out side server.
 
 Having that, I am still looking for the preferred way for interfacing in a 
 way 
 that most organization will have no problem to authorize and using most 
 common services 
 available on most organizations (don't want to impose implementing other 
 services as a preq)
 - that was the reason I was thinking on FTP and Rexx server...
 
 Any other comments / Ideas ?
 
 Thanks 
 
 Ed.
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: ACCESS=PUBLIC on ALESERV macro

2012-02-21 Thread Chris Craddock
On Tue, Feb 21, 2012 at 2:15 PM, Micheal Butz michealb...@optonline.netwrote:

 If I adding the STOKEN of another address to either my DU-AL PASN-AL can I
 specify PUBLIC on the ALESERV macro and bypass the authorization)

 Typically when I get the alet of another address I do a AXSET to give
 myself
 authorization to go there

Would adding PUBLIC entry for the ALET of another address space via
 ALESERV bypass the need to do a AXSET



No and no. Just don't do it. Adding addressability to another address space
this way is not really supported outside of BCP components - even though
the macro documentation might seem to suggest otherwise. Consider it a wild
hare that escaped. The supported approaches are documented in the extended
addressability guide.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Do what to get C strftime %z to work?

2012-02-21 Thread Chris Craddock
On Tue, Feb 21, 2012 at 7:01 PM, Charles Mills charl...@mcn.org wrote:

 Also remember when perusing the LE publications that the inventors of LE in
 their wisdom thought it would be too clear to the uninitiated to call the
 languages dependent on Language Environment languages, choosing instead
 to
 further overload the word member.



And let's not get started on enclaves and all that...


  it is made easy, for one C function to call another C function

 What does that have to do with LE? No other platform that I know of has LE,
 but on every platform cannot a C function trivially call another C
 function?
 Otherwise wouldn't every C program have to consist simply of one humongous
 main()?



All high level languages on all platforms have a runtime that provides the
magic behind the curtain. Ours happens to be called LE. However, most
others are vastly more transparent and obvious than LE - the main point of
which was *NOT* so that C functions could call other C functions, but so
that multiple varieties of PL/1 and COBOL programs could call each other.
Yes folks, that baby really is ugly. LE is old and crufty for lots of
reasons and the doc you need to make sense of it is smeared across multiple
publications and as myth and legends in the tribal mind. To quote a former
president of ours;

I feel your pain.

Please count this as the 2012 edition of my now long-standing semi-annual
rant about LE. I will now retire from the discussion before mortally
offending my IBM friends.
-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Difference between DREF storage and Page fixed storage

2012-02-21 Thread Chris Craddock
On Tue, Feb 21, 2012 at 3:45 PM, Micheal Butz michealb...@optonline.netwrote:

 Would any know the difference between (disabled reference storage) DREF
 e.g.
 subpool 215 and Page fixed storage e.g. subpool 223

 From what I understand DREF means the program is running disable for
 interrupts and thus no pagIing should occur so the doc say use DREF storage

 While fixed storage means storage is fixed and the same thing applies no
 paging should occur



the differences are subtle. With FIXED storage allocations, each (virtual)
page is allocated to a (real) frame at the time of allocation and will
remain so-paired until they are freed. If the storage is actually used then
that's a good deal, however if it is one of those cases where let's say
maybe something happens and maybe it doesn't.' In that case, the fixed
(real) storage would be wasted in the case where it was never
referenced. That kind of thing happens often enough in real life to have
warranted the creation of DREF. So DREF and FIXED are essentially the same
thing (technically a form of xSQA) except for a few important differences.

 (1) None of the DREF pages is backed by a real frame until the page is
referenced. Upon reference the page fault interrupt handler jumps in and
tries to obtain a free frame from the AFQ. If it works the instruction is
redriven and everyone does the happy dance. However at that point there is
always the opportunity to be out of frames so there's even a special abend
code to tell you that it happened. And it's transient, so you could try
again and find it worked just fine. Overall this strategy means a decent
probability of tying up less real storage than you would have done
otherwise by using fixed storage. Win!

(2) All DREF storage is above the 16MiB line just to coerce a little more
modern sanity on the punters who should never be using below the line
storage anyway.

(3) and this is where it gets tricky... with fixed storage you can could
count on the address translation staying fixed forever. However, with DREF
it is only true most of the time. It is always true for DREF common storage
(technically that is ESQA) however (and this bit is perhaps not widely
know) it is NOT necessarily true for private area DREF (technically known
as ELSQA). When an address space is logically swapped the system knows
nobody is going to be touching the LSQA frames while the address space it
toes up, so the system may play a little fast and loose. A backed LSQA page
(DREF or not) will always come back in with a fixed frame backing it, but
it might not be the one it logically went out with.

Still following?

Good.
-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Authorized functions

2012-02-16 Thread Chris Craddock
On Thu, Feb 16, 2012 at 3:33 PM, Scott Ford scott_j_f...@yahoo.com wrote:

 Tony,

 I dont want to knock IBM but for us developers this is UGLY ...
 Maybe the problem is they never intended for it to be called that way ...



Yes, exactly right  on both counts. Don't forget that TSO is older than
dirt and all subsequent efforts to graft on functionality are limited by
its original design assumptions. Modern it ain't.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Authorized functions

2012-02-15 Thread Chris Craddock
On Wed, Feb 15, 2012 at 2:55 PM, McKown, John john.mck...@healthmarkets.com
 wrote:

 If you really want do this this: run an APF authorized TSO command from a
 COBOL program, even one which is linked AC=1. Well, you'll need to cheat
 horribly. One way to cheat is to run your COBOL program under TSO.



Do I even need to point out what a bad idea this is?



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: IBM Doing Some Restructuring?

2012-02-13 Thread Chris Craddock
On Mon, Feb 13, 2012 at 7:00 AM, Veilleux, Jon L veilleu...@aetna.comwrote:

 I think that this paragraph is interesting:

 We were previously using configuration management version control, which
 required a lengthy code check-in process, said Clark Dudek, software
 developer, IBM Systems and Technology Group. Rational Team Concert has
 encouraged greater code collaboration and better work item tracking within
 my team.

 I guess IBM doesn't think they need version control anymore. Might that be
 why we are seeing more problems lately?



It isn't that they are no longer using configuration management - just
different tools with a different world view. In the non-MF world the
process involves developers creating their own individual branch from a
base in a code repository, then working independently on the branches
(coding/unit testing etc.) Then, somewhere down the road, they merge their
changes into a new base. This offers greater parallelism than in other
(let's say traditional) source management approaches where individual
elements are locked while changes are made.

It looks terrifying to mainframe folks, but I'm here to tell you it works
and there are tools to make it relatively easy. It isn't completely
automated - a carbon unit still has to resolve any differences that don't
fit, but in most respects there is more freedom and less effort overall.
However, as you might imagine, this approach requires great discipline and
skill when bringing the pieces back together and that brings us back to the
original skills issue that Ed raised. You don't want the B team doing this.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Archaic allocation in JCL (Was: Physical record size query)

2012-02-13 Thread Chris Craddock
On Mon, Feb 13, 2012 at 8:56 AM, Paul Gilmartin paulgboul...@aim.comwrote:

 On Mon, 13 Feb 2012 07:21:11 -0600, McKown, John wrote:

 Or, as the programmers at our shop would do:
 

 SPACE=EAT-EVERYTHING-IN-SIGHT-AND-CAUSE-OTHER-JOBS-TO-ABEND-BECAUSE-MY-STUFF-IS-IMPORTANT-AND-YOUR-STUFF-ISNT.
 
 In many other systems, such as Winblows, everybody gets their own
 personal space. And if it is used up, it doesn't impact others. z/OS
 shares DASD space.  ...
 
 The z/OS cultural norm for HFS and zFS is to give each user a
 dedicated filesystem for HOME.  This is similar to the behavior
 of personal instances of those other systems.



I think it is fair to say that JCL and space management are areas where
z/OS truly is archaic. The other world manages to get by just fine
without having to figure out how much resource to give. There's no reason
z/OS couldn't do the same other than slavish adherence to legacy. IMHO it
is about time the system itself took care answering its own incessant how
big?, how many?, how often? questions. It's 2012 ferpetesakes. I'm all
in favor of making sure that existing applications continue to work. I am
far less impressed with continuing to impose 1960s thinking on new ones.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: IBM Doing Some Restructuring?

2012-02-12 Thread Chris Craddock
On Feb 12, 2012, at 1:22 AM, Edward Jaffe edja...@phoenixsoftware.com wrote:

 On 2/11/2012 8:31 AM, Dave Day wrote:
 The idea of hiring temporary workers, the 'liquid' people referred to in the 
 article, seems to me to be at odds with long term,  successful growth.
 
 It's hard for me to understand how any serious development projects can be 
 done by temps. Software development is not a math problem. You can't just 
 throw bodies at it to get things done more quickly. You need a smallish 
 group of highly skilled people--the kind that usually have permanent 
 gigs--and time for them to learn the infrastructure and architecture before 
 they can be truly useful. Also, as with any complex subject, the learning 
 curves can be fairly steep.
 
 OTOH, perhaps the projects they're envisioning don't involve actual 
 development. Maybe they involve customization of OTS packages. 


No Ed, customization of OTS packages (generally a bad idea btw) has exactly the 
same talent requirements you're referring to; a smallish group of highly 
skilled people. The specific skills may be slightly different, but I know you 
would not have any trouble relating to them. The (evidently popular) idea that 
you can pick a random group of (cheap) gunslingers and solve big system or 
application development problems is as bankrupt today as it ever was. It only 
ever works on a spreadsheet. 

Lord spare us from MBAs. 

CC

Sent from my iPad

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Lots of *MASTER* CPU during a big sort

2012-01-25 Thread Chris Craddock
On Jan 25, 2012, at 9:08 AM, David Andrews d...@lists.duda.com wrote:
 But what also caught my eye was unusually large CPU consumption by the
 *MASTER* address space: 60-75% continuously while his sort was
 executing.  He cancelled it, and *MASTER* went back to its usual docile
 self.
 
 What is a large DFSort with 2M+ real storage doing to consume that much
 time in *MASTER*?  Is this a characteristic 


I/O interrupt processing in an otherwise lightly loaded system. No biggie.  

Sent from my iPad

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: New code? use ENQ/DEQ or ISGENQ?

2012-01-18 Thread Chris Craddock
On Wed, Jan 18, 2012 at 11:25 AM, Leonard D Woren ibm-ma...@ldworen.netwrote:

 snip
 Which reminds me.  ENQ/DEQ LINKAGE=SVC cannot be issued by AR mode
 callers.  Guess how I discovered that...



That has always been true for all SVCs unless specifically documented
otherwise.
The exception that springs to mind is SVC 13 and that really doesn't count
as an SVC :-)


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: 21st Century Migrates Mainframe with Clerity

2012-01-05 Thread Chris Craddock
On Jan 5, 2012, at 5:48 PM, Graham Harris harris...@gmail.com wrote:

 Intel Core i7 at 177,730 MIPs/sec
 http://en.wikipedia.org/wiki/Instructions_per_second
 
 or almost 180BIPs/sec ... which makes i7 equivalent of more than three
 z196??
 
 
 Interesting to read the cited reference against the claimed 180BIPS/sec
 (/sec ??!!)
 
 Synthetic Benchmarks
 
 Synthetic benchmarks.are wellsynthetic and do not get your work
 done for you. These don't necessarily mean anything when it comes to
 desktop performance in real life, but certainly there is value to be
 gleaned from these by enthusiasts. These are also the easiest benchmarks to
 run when it comes to seeing if your system at home is measuring 

True enough. Nevertheless it would be unwise to conclude that said processors 
are not actually capable of delivering work in the Real World(tm). There's no 
telling what the absolute performance will be in any given situation, but those 
i7 CPUs have more than enough horsepower for most things you would ever want to 
do - even in a server configuration. We aren't talking about old fashioned PC 
weenies here. These things rock. 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN


Re: Semiprivileged instructions, part 1 (3)

2011-12-30 Thread Chris Craddock
Steve, Peter is (of course) right. You're struggling with cases where most
people generally miss the distinction between the hardware architecture and
the software architecture implemented by any given control program.  The
hardware knows nothing at all about what you would think of as
authorization from a z/OS point of view, or any of the internal
mechanisms that z/OS uses to make those semi-privileged instructions do
something useful.

The hardware architecture has three states that control whether or not an
instruction can be executed; non-privileged, semi-privileged and
privileged. You can assume for all practical purposes that as far as the
hardware is concerned, supervisor state and privileged mean the same
thing and that you can execute any machine instruction you want any time
you want. Whether or not it does something sensible or desirable is
irrelevant at this point.

In the problem state you can execute any non-privileged machine instruction
any time you want *AND* any semi-privileged instruction the control
program (in this case z/OS) has enabled. As Peter mentioned earlier, z/OS
always allows problem state programs to issue semi-privileged
instructions. Additional *SOFTWARE* architectural conditions may have to be
satisfied in order for the instruction to complete, or to do something
useful. Some of those are done all the time (for all units of work) and
others need to go through some software mediation first.

For example; From the software point of view the linkage stack is just
always there. Under the covers z/OS is manipulating the stack to balance
its storage resource utilization, so if you were to look at the stack in a
dump it would not necessarily look the way you might expect from reading
PoPs. For the most part, the instructions just appear to work and they are
useful, or not, depending on what you're trying to accomplish.

Other semiprivileged instructions can have more of an in your face
nature. For example, SPKA can be issued in problem state any time, but will
give a privileged operation exception if there isn't a 1 bit in the PKM for
the target key. The PKM (a hardware construct) is setup by z/OS when the
unit of work is dispatched but the mechanisms z/OS uses to decide which
keys are available at any given time are part of the software architecture.

In other cases a given hardware feature might be made available to
software in a different way than implied in PoPs, or perhaps not made
available to software at all. The often cited example is that the TRAP
instructions are not supported by z/OS at all. So in theory, you could
write a supervisor state program that would set up the required linkage
mechanisms for the TRAP instructions to work, but various z/OS internal
components would likely be surprised and disappointed. And that's never a
good thing.


On Fri, Dec 30, 2011 at 8:01 AM, Steve Comstock st...@trainersfriend.comwrote:

 On 12/30/2011 5:52 AM, Peter Relson wrote:

 I have noted a couple of omissions in the PoPs that I will submit
 a Readers Comment for

 snip



 The wording in the PoOp tends to be extremely precise (not 100% correct,
 but pretty darn close). I caution against assuming that terms mean what
 they do not say they mean.


 I understand, and I believe you. But, there are times (perhaps when
 separate chapters are written or updated by different people) when
 the consistency is not what I, personally, would like.

 Consider

 the Preface description of Chapter 10 says that chapter:

  contains detailed descriptions of all of the semiprivileged
   and privileged instructions except for the I/O instructions.


that's just a long winded way of saying the I/O instructions aren't
described here.



 Chapter 3 mentions a semiprivileged program - what is that?
 (Chapter 5 also uses this term without
  defining it)


A literal interpretation of a semiprivileged program is one in which the
control program has established the conditions necessary for the program to
issue those instructions.



 Chapter 4 says Another group of instructions, called semiprivileged
instructions, are executed by a CPU in the problem
state only if specific authority tests are met;
otherwise, a privileged-operation exception or a
special-operation exception is recognized.


Yep. Should all be clear now right? With one or two exceptions, it isn't
terribly interesting (at least in z/OS) to be drawing distinctions between
non-privileged and semi-privileged. The only meaningful distinction is that
you need some assistance from the control program in order to be able to
use (some of) the semi-privileged instructions.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: 

Re: Testing g RTM routine

2011-10-27 Thread Chris Craddock
On Oct 27, 2011, at 8:19 PM, Micheal Butz michealb...@optonline.net wrote:
 Would anyone know how to test the RTM routine of a SRB when I issue a
 schedule even though SRB activity is asynchronous it takes off automatically

Michael, you're really playing with fire. Before you try any of that, please 
read the topics on SRB's and providing recovery in the authorized assembly 
language guide. Then read them again about a dozen times. If you don't have a 
very thorough understanding of system internals you're never going to get this 
stuff working safely. 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: SYSTEM ABEND CODE 0F8 REASON CODE 00000014 under TESTAUTH

2011-10-18 Thread Chris Craddock
On Tue, Oct 18, 2011 at 10:20 AM, Micheal Butz michealb...@optonline.netwrote:

 Is all that's required for setting a recovery routine for the SRB is
 setting
 a address in SRBFRRA ?
 http://bama.ua.edu/archives/ibm-main.html



At the risk of sending you off on another tangent, yes.

But, what would you *DO* with an FRR if you managed to set one? They serve
two purposes;
1. Diagnosis: Collect error diagnostic data for subsequent analysis
2. Recovery: Choose to percolate or set up the registers for a retry

both of those things are complex and delicate (think of walking on
eggshells). If you don't have a very detailed understanding of the recovery
environment, you're likely to do more harm than good. If you're going to
play with fire, it is best to let your SRB crash and burn, rather than risk
doing more harm.

Oh and BTW I assume you are aware that (for normal human beings) you CANNOT
debug any SRB or FRR under TSO right?


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: SRB routine

2011-10-17 Thread Chris Craddock
ok, ok, I admit it! I know. 

(sheesh, you guys)

Sent from my iPad

On Oct 16, 2011, at 11:37 PM, Shane ibm-m...@tpg.com.au wrote:

 On Sun, 16 Oct 2011 13:07:26 -0700Edward Jaffe wrote:
 
 Would anyone know if the SRB routine SRBEPA has to reside in common
 
 No.
 
 Lol - c'mon Ed, *some-one* must know 
 
 Shane ...

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: SRBEPA

2011-10-17 Thread Chris Craddock
On Sun, Oct 16, 2011 at 4:53 PM, Micheal Butz michealb...@optonline.netwrote:

 The normal sequence then is common when scheduling to a different address
 space



just think about it for a minute. There is no magic. Put yourself in the
SRB's place. In order for it to run, the code has to be addressable in the
primary address space where it is initially dispatched. Nothing else
matters. From the scheduling application's point of view you just have to
make sure the SRB code is in the right place and will remain there until
after the SRB completes.

If you are going to schedule an SRB into your current primary address space,
then it doesn't matter whether the SRB code is in common or in private, it
just has to be there when the SRB is dispatched. That is actually an
extremely common scenario, e.g. an SRB being scheduled out of disabled code
(typically an interrupt handler) to complete processing for whatever was
going on.

On the other hand; If you are trying to schedule an SRB into -any-other-
address space, then (somehow) you have to make sure the code will be
addressable when the SRB is dispatched. In general that means loading it
into common storage (technically it should be in SQA rather than CSA, but
that's a minor nit)



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: SRBEPA

2011-10-17 Thread Chris Craddock
On Mon, Oct 17, 2011 at 11:31 AM, Sam Siegel s...@pscsi.net wrote:

 On Mon, Oct 17, 2011 at 9:27 AM, Chris Craddock crashlu...@gmail.com
 wrote:
  On Sun, Oct 16, 2011 at 4:53 PM, Micheal Butz michealb...@optonline.net
 wrote:
 snip On the other hand; If you are trying to schedule an SRB into
 -any-other-
  address space, then (somehow) you have to make sure the code will be
  addressable when the SRB is dispatched. In general that means loading it
  into common storage (technically it should be in SQA rather than CSA, but
  that's a minor nit)

 I'm curious on the technical distinction between putting the SRB code
 in SQA versus CSA.

 Can you elaborate?



(E)SQA has the correct storage attributes. (E)SQA is key zero and page
fixed. You should never load SRB code into anything but key zero and the
code should never be paged out, hence my use of the term SQA as a technical
nit. You -can- make appropriate choices of subpool and macro options to get
equivalent attributes from (E)CSA and if (as usual) there's no SQA available
VSM will give you CSA equivalent anyway - known as SQA overflowing to
CSA.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: SRBEPA

2011-10-17 Thread Chris Craddock
On Mon, Oct 17, 2011 at 5:31 PM, Shmuel Metz (Seymour J.) 
shmuel+ibm-m...@patriot.net wrote:

 In
 cakxahqwwofk2cmeed1akporkeytzvz-_iq5pk1kmi3bb8fx...@mail.gmail.com,
 on 10/17/2011
at 11:27 AM, Chris Craddock crashlu...@gmail.com said:

 On the other hand; If you are trying to schedule an SRB into
 -any-other- address space, then (somehow) you have to make sure
 the code will be addressable when the SRB is dispatched. In
 general that means loading it into common storage (technically it
 should be in SQA rather than CSA, but that's a minor nit)

 Why? As long as the address is accessible and the code will be
 addressable, why can't it be private and pagable? MVS can handle a
 page fault in an SRB routine.

 Now, if you're going to schedule SRB's into multiple address spaces
 for the same routine, then you would want the code in common so that
 you only need a single copy.



If you can arrange ahead of time for the code to be loaded in the foreign
address space then of course it can be in private. I said as much. It is
also true that SRB's can take page faults, so the SRB code *can* be in
pageable storage... However, it is very desirable for the SRB to be able to
run through its processing without taking any unnecessary page faults. An
ordinary SRB dispatch is an extremely efficient mechanism, but if the SRB
subsequently interrupted and has to be suspended (e.g. for a page fault) the
system has quite a lot of work to do to save its state (SSRB, FRR stack,
linkage stack etc). It is still fast, but why take the hit? Kind of like the
old joke about Ferraris. She's a made a to go, not a to stop.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: SYSTEM ABEND CODE 0F8 REASON CODE 00000014 under TESTAUTH

2011-10-17 Thread Chris Craddock
No, you werent where you thought you were in the code. The system doesn't lie 
about what happened.  You can't issue any SVC instructions while you have an 
FRR on the stack, regardless of what kind of FRR you have. And don't forget you 
may be calling other system services whether you're aware of it or not. 

Leaving aside the general undesirability of testing SRB code  by trial and 
error, If you did manage to get the SRB scheduled then two interesting things 
are happening to you. First you have another independent unit of work running 
(the SRB) which will muddy the waters because any error that befalls the SRB 
will be reflected back on the TCB you're running under so your debugging 
information is going to be quite confusing. 

Frankly you're kind of stumbling around in a coal mine with a flashlight even 
trying this. I would usually give a little sermon about all the things that can 
go horribly wrong. I will spare you that but here's the rub -- there's not a 
lot of chance you're going to suddenly converge on a solution that works. Tell 
us what problem you're trying to solve and maybe we can help you without 
trashing your system. 

Sent from my iPad

On Oct 17, 2011, at 10:07 PM, Micheal Butz michealb...@optonline.net wrote:

 I didn't issue any SVC 
 
 The code blew up under TESTAUTH at the fifth instruction after the
 expansion of the SETFRR macro
 
 I normally get 0F8 when I am in XMEM mode and issue a SVC I didn't abended
 on a SVC I abended whitin STM of the SETFRR inst
 
 -Original Message-
 From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
 Of Lizette Koehler
 Sent: Monday, October 17, 2011 10:54 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Re: SYSTEM ABEND CODE 0F8 REASON CODE 0014 under TESTAUTH
 
 Hi,
 
 
 
 I am trying to establish a FRR in a TSO command processor program that is
 not re-
 entrant this is because
 
 
 Later I schedule a SRB and I want to use the routine I established as a
 FRR, as  input
 to the SRBFRRA parameter
 
 
 Did you review the abend and code?
 S0F8 - 14 - THE SVC ISSUER HAD AN ENABLED UNLOCKED TASK MODE FRR.   
IE. EUT=YES WAS SPECIFIED ON THE SETFRR MACRO.
 
 Did it help?
 
 Are you a member of the assembler language newsgroup?  You might have better
 response there or better assistance.   assembler-l...@listserv.uga.edu

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Rename of DDname ?

2011-10-07 Thread Chris Craddock
Changing an allocated DDNAME is a recipe for a train wreck. Just don't. 

The Allocation component is older than dirt. If you were meant to be able to do 
such a thing there would be an interface for it. 

Chris Craddock
Sent from my cell phone
281-770-1950

On Oct 7, 2011, at 12:29 PM, John McKown joa...@swbell.net wrote:

 I don't think you can do a rename of an existing DD name. However, if
 you have a driver program doing the allocations, perhaps you can change
 it. Instead of allocating, say, SYSUT1. You allocate some unusual name,
 perhaps #SYSUT1$ (just to pick one). Then, when you want to refer to
 that allocation, do a dynamic allocation DYNALLOC using keys
 
 DALDDNAM - use the called program's DD name, eg SYSUT1
 DALSTATS - use DISP=OLD (or maybe SHR) since you already have it
 allocated
 DALDCBDD - with #SYSUT1$ to pick up any DCB=
 DALREFD - with #SYSUT1$ to refer back for any attributes
 DALVLSER - with the volumes allocated to SYSUT1, other code will be
 needed to get this information after the original allocation is done.
 
 I have never done anything like this, so I could be totally off-base on
 the idea. Perhaps others can say more definitively. 
 
 
 
 On Fri, 2011-10-07 at 17:11 +0200, Thomas Berg wrote:
 -Ursprungligt meddelande-
 Från: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] För Walt
 Farrell
 Skickat: den 7 oktober 2011 17:00
 Till: IBM-MAIN@bama.ua.edu
 Ämne: Re: Rename of DDname ?
 
 On Fri, 7 Oct 2011 15:45:50 +0200, Thomas Berg thomas.b...@swedbank.se
 wrote:
 
 Are there any way to rename a ddname ?  By that I mean leaving the
 allocation as such untouched but the name of the allocation/DDname is
 changed.
 An example of usage is when You have an allocation for application 1 with
 DDname 'ABC' for dataset AAA.BBB and want to keep that and then want to
 run application 2 which requires the same DDname (for dataset CCC.DDD).
 This is just *one* example.
 
 Is it a matter of editing the TIOT, or ?
 
 No, you can't edit the TIOT. How/where are you running these applications?
 
 For the moment the need is in the ISPF/TSO environment.  There is programs 
 that requires specific DDnames which is common to other programs, both 
 homegrown and system types, and some of our dialogs need to run several of 
 these at the same time (in sequence) but I want to preserve some allocations 
 because of performance issues (e g big temporary datasets that takes a 
 long time to create or that I need to keep the enques for, etc.). 
 Common system names are such as SYSUT1, SYSUT2 etc. 
 
 
 
 Regards, 
 Thomas Berg 
 _ 
 Thomas Berg   Specialist   A M   SWEDBANK 
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
 Search the archives at http://bama.ua.edu/archives/ibm-main.html
 -- 
 John McKown
 Maranatha! 
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
 Search the archives at http://bama.ua.edu/archives/ibm-main.html

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: CA MSM v4 on z/os 1.9

2011-10-06 Thread Chris Craddock
 with MSM there was a conscious decision to follow IBM support policies, which 
makes sense if you think about it. I have no idea whether anyone is running it 
in an unsupported config. I would point out that if a vendor says release X is 
required, it usually means just that. You can go off and do your own thing (of 
course) but you should not expect too much sympathy from the vendor if your way 
doesn't work.  

CC

Sent from my iPad

On Oct 6, 2011, at 11:10 AM, Silvio Camplani sysp...@silvio.fastmail.fm wrote:

 The release notes for MSM v4 say z/OS 1.10 is required. This seems to be 
 because IBM supports current-2...
 
 Is anyone running MSM v4 on a pre z/OS 1.10 lpar?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: SETLOCK in IEFU85

2011-08-08 Thread Chris Craddock
It is highly unlikely that you would need a CMS lock. If you are in a properly 
established cross memory environment then PASN is going to stay put. There are 
multiple ways of serializing storage modifications w/o resorting to a lock. 

FWIW to get a CMS lock (there's more than one) you must first hold, or obtain a 
Local lock. The address space whose Local lock you would need to hold depends 
on the location of the resources you're trying to serialize. 


a CML is just the local lock of either PASN or SASN when that is different than 
HASN - assuming you're in a valid (legally established) cross memory 
environment. Beware that the hardware will let you do LOTS of things that z/OS 
doesn't formally support. 

Chris Craddock
Sent from my iphone

On Aug 8, 2011, at 7:06 AM, Donald Likens dlik...@infosecinc.com wrote:

 I need to update common storage from my IEFU85 SMF exit. I am currently using 
 a compare and swap loop to serialize on this update but I think there is a 
 problem with this approach and looking at using SETLOCK. My question is... 
 
 IEFU85 is in cross memory mode. I need the CMS lock. To get the CMS lock you 
 must have the CML or LOCAL lock first. Since IEFU85 is in cross memory mode 
 must I get the CML lock or can I get the LOCAL lock?
 
 Part 2: If I must get the CML lock which address space should I place in R11?
 
 Note: I never used locking before so if I have stated anything incorrectly, 
 please correct me. I also have not delted with cross memory before.
 
 Part 3: To issue the SETLOCK command, do I have to worry about AR mode before 
 issuing in an SMF exit?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: ESTAE testing question

2011-07-20 Thread Chris Craddock
On Wed, Jul 20, 2011 at 10:18 AM, Paul Schuster pgs4ibmm...@pacbell.netwrote:

 Hello:

 The manual 'z/OS V1R12.0 MVS Assembler Services Guide' has this statement:
 The case where an SDWA is not provided
 is rare.

 Is there a way to force this kind of condition in order to actually test an
 ESTAE that is tripped with this condition?



That's not a good plan. The only time you won't get an SDWA is in cases of
storage exhaustion and a likely cause of that is error recursion due to
creative recovery efforts.  The safest thing to do in that case is to
immediately percolate.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Explination of EUT/FRR

2011-07-17 Thread Chris Craddock
On Sun, Jul 17, 2011 at 2:45 PM, michealbutz michealb...@optonline.netwrote:

 Hi,


  I have seen these terms EUT Enabled Unlocked Task /FRR and this my
 understanding
I ASSUME Enabled means Enabled for I/O interrupts BIT 6 of Psw the only
 way I know how
 to set this is with the LPSW inst


No, there's also the external interrupt. Both I/O and external interrupts
are masked by the last two bits in the first byte of the PSW. The actual
interrupt enablement for the underlying CPU is governed by bits in a control
register which get AND-ed with the PSW bits to decide whether the
corresponding interrupt will be allowed to occur. There are multiple ways
the bits can be turned on or off. You should not try any of them.




  Unlocked means not holding a Lock  Holding a Lock means using   some
 Flavor of the
 SetLock



Yup. Also includes certain special cases such as when running under control
of a disabled interrupt exit (e.g timer DIE). There are no locks actually
held, but the system acts as if you're holding the CPU lock.



  Task means running in Task Mode as opposed to a SRB


Yep.



  When the Term FRR is appended it means this unit of work is protected by a
 FRR



Yes. But what makes an EUT FRR an EUT FRR is that you specified EUT=YES on
the SETFRR macro. If you had set an FRR in a condition where you would not
normally need one, the system will unceremoniously remove it during the next
interrupt. EUT=YES tells RTM that you know what you're doing and that the
FRR should be left alone. Typical use case is where you're about to get into
one of the conditions that would require an FRR and you want to provide the
FRR ahead of time, e.g. to perform some post recovery cleanup, release locks
etc. All of which is pretty advanced stuff. Not a safe area for tourists.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Obtaining System Information from a COBOL program

2011-06-23 Thread Chris Craddock
On Thu, 23 Jun 2011 11:01:56 -0400, Andy Coburn a...@andycoburn.com wrote:


 I question Walt's statement above in one case and one case only. The quote
 below is from the z/OS V1R11 manual Using Data Sets SC26-74410-09:
 
 quote
 ...snipped (by Walt)...
 
 Note: VSAM OPEN routines bypass RACF security checking if the program
 issuing OPEN is in supervisor state or protection key 0.
 
 /quote
 
 I call your attention to the last paragraph. I have been hoping that IBM
 will find a way to eliminate this restriction so I won't have to do my own
 RACROUTE REQUEST=AUTH for every VSAM data set I open when I'm in
 supervisor
 state or key zero.
 
 I would imagine that not very many COBOL programs run in supervisor state
 or
 key zero, but Walt Farrell put on his security hat (his words) so I
 thought
 it might be proper to continue his line of thought.
 http://bama.ua.edu/archives/ibm-main.html



You can be fairly certain that *no* COBOL programs run in sup state and/or
key zero because LE does not officially support it and not at all without
performing unnatural acts. That's not to say you can't conspire to get that
to happen, but it would be most unwise to try.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Chacteristics of HOME ASC mode

2011-06-15 Thread Chris Craddock
On Wed, Jun 15, 2011 at 6:50 AM, Micheal Butz michealb...@optonline.netwrote:

 What if you Have a ss pc rtn and want to access data and inst from the
 program that issued the ss pc rtn



That only takes a little bit of design forethought. Home-space ASC mode is
probably the last thing you should be thinking about.




 On Jun 15, 2011, at 6:07 AM, Binyamin Dissen bdis...@dissensoftware.com
 wrote:

  Why do you think that you need HOME mode?

 There may be a better way to do what you want to do.

 Out of curiosity, are there any supervisor services that work in HOME?



No there are not, at least not any publicly documented ones. The major use
case is down in the guts of RTM.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: RESMGR for terminating Address Space

2011-04-15 Thread Chris Craddock
On Fri, Apr 15, 2011 at 4:17 PM, michealbutz michealb...@optonline.netwrote:

 Hi,

 Would anyone know if installing a Address Space Terminating routine via
 RESMGR works Under
 all circumstances

 Meaning normal Termination



Yes, Memory Termination resource managers always get control (in *master*
btw) at some point after the tasks in the address space have ended. OTOH
task level resource managers may or may not get control depending on
circumstances. Realistically all resource managers are going to get control
in all but the most dire of situations.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Best way to multiply doublewords

2011-04-05 Thread Chris Craddock
On Tue, Apr 5, 2011 at 10:50 AM, Tom Marchant m42tom-ibmm...@yahoo.comwrote:

 It is worth noting that the system provides a 144-byte save area when
 a program is ATTACHed, as for example when a job step program is given
 control.



true, and somewhat ironic given that it is one of the few interfaces where
there truly is no need whatsoever to preserve the caller's state. A mere SVC
3 (or a branch to CVTEXIT, which is itself just an SVC 3) is all that is
required.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: PSAAOLD question - when is it updated?

2011-03-14 Thread Chris Craddock
On Mon, Mar 14, 2011 at 5:38 PM, Stan Weyman stan.wey...@emc.com wrote:

  having been down this road on numerous occasions I think Rob has it pretty
 much nailed IMHO.   Please send check payable to Rocket Software, etc,
 etc... G



yeah bright lad is our Rob. The key takeway is if you fetch PSAAOLD and
discover it is for ASID 1 then you are running in the*master* address space.
But gasp... how could that be gentle readers?!? Well basically a whole load
of junk in the way of system exits runs in master simply on the logical
basis of where the hell else would it run?.

Foremost among those are the EOM RESMGR exits. The ended address space gets
put on a queue and its memory termination routines get processed by
subsystem router tasks and when they have the temerity to screw up (such as
mindlessly and incorrectly referencing private area resources from the dear
departed address space) you will see a bunch of wailing and gnashing of
teeth from IEFJSRASP.

Help?


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Am I running in an IMS MPR?

2011-02-22 Thread Chris Craddock
On Tue, Feb 22, 2011 at 11:19 AM, Tony Lubrano tony.lubr...@neon.comwrote:

 Yes...

 LRx,PSAAOLD-PSA(,R0)
 LRx,ASCBASXB-ASCB(,Rx)
 LRx,ASXBITCB-ASXB(,Rx)
 LRx,TCBFSA-TCB(,Rx)
 LRx,SA_R1(,Rx)
 CLC  =CL4'ECP',0(Rx)
 JEIMS BMP
 CLC  =CL6'DFSRRC',20(Rx)
 JEIMS MPP

 If you want, you can do a BLDL on DFSPRPX0.  If it is found in the JPA, you
 are likely to be running in an IMS dependent region. Or, you can follow the
 CDE chain(s) to locate the module.



Just to nitpick slightly;

CSVQUERY would be a better choice than BLDL or chasing CDEs. Also,
 regardless of which path you take to find the job step TCB, it isn't wise
to assume either that there is a first save area, or that the contents of
the R1 slot point to anything at all. If it is a real job step then there
will always be an FSA but below that all bets are off. You need to apply a
sniff test before referencing those data areas, or wrap a little recovery
around the instruction path above.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: What is address spec terminates in context of LOAD EOM=YES?

2011-02-08 Thread Chris Craddock
On Tue, Feb 8, 2011 at 2:43 PM, Charles Mills charl...@mcn.org wrote:

 Ah Binyamin, you are a man of few, but cogent, words. Thanks! Looks like
 the
 answer to my second question: how do permanent load?

 Anyone have an answer to my first question (which is mooted if CSVDYLPA
 lives up to its promise): what is until address space terminates in
 context of LOAD EOM=YES?

 Also my apologies for the typo in the subject line. How did I mean to type
 space and have it come out spec? Not even close.



For a garden variety address space (let's face it, that's basically TSO or a
STC these days) EOM literally means when the address space termination
routines run in the master address space and AFTER all of the tasks in the
original address space have ended.

Now as you know, a batch address space is different in that many jobs use
the same address space one after another. EOM for the batch job's address
space typically happens eons after the end of any job that ran there. If you
take the definition above it should be fairly obvious that you have to
mentally treat the real job step task of each job as the owner for resources
that are typically scoped as EOM in other address spaces.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TIMEUSED versus TCBTTIME

2011-02-04 Thread Chris Craddock
On Fri, Feb 4, 2011 at 9:38 AM, Rob Scott rsc...@rocketsoftware.com wrote:

 TCBTTIME is *not* updated when task is actually dispatched and executing on
 a CPU, only when it gets interrupted by something like WAIT.

 TCBTTIME will not include any fancy CPU stats either (Enclave SRB, zIIP
 and zAAP).

 Also, I do not believe that TCBTTIME is a GUPI field.

 However, for a quick and dirty sniff at how a normal program is
 executing, I see little risk for an in-house utility if the limitations are
 known.
 http://bama.ua.edu/archives/ibm-main.html




All true and good sensible stuff too. For a quick and dirty (and fairly
light weight) way to coerce the system into updating it there's always this
old trick...

 WAIT ECB=PHONY

 (do stuff)

 DS 0F
PHONY DC  X'4000'

the system sees PHONY as a posted ECB and gets the flock out of there PDQ,
updating all of its relevant dispatch counters and accounting fields on the
way.

:-)

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TIMEUSED versus TCBTTIME

2011-02-04 Thread Chris Craddock
On Fri, Feb 4, 2011 at 10:38 AM, Charles Mills charl...@mcn.org wrote:

 @Chris: Interesting. Do you suppose the technique you describe is cheaper
 than TIMEUSED with ECT?



Hard to tell without benchmarking it and I wouldn't offer a
prediction. *HOWEVER* if you are of a mind to sample relevant fields from
various control blocks yourself, then this dirty trick gives you a point in
time consistency and the cost is essentially a type 1 SVC entry and exit
linkage plus a tiny amount of processing in the wait logic until it notices
the ecb has already been posted.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Home 1= PRIMARY != SECONDARY

2011-01-28 Thread Chris Craddock
On Thu, Jan 27, 2011 at 12:19 PM, michealbutz michealb...@optonline.netwrote:

  Would anyone know in what scenario


  HOME id not = PRIMARY is not = SECONDARY



For any given unit of work HASN *never* changes. Initially PASN=SASN=HASN. A
space switch PC branches into another address space, so PASNHASN.
Depending on how the PC is defined, SASN=new PASN, or old PASN so there's
still only two address spaces involved. If the space-switch PC routine calls
another space-switch PC then there is now a third address space involved and
(again, depending on how the PC is defined and what it does) you can end up
with PASNSASNHASN.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Home 1= PRIMARY != SECONDARY

2011-01-27 Thread Chris Craddock
On Thu, Jan 27, 2011 at 3:31 PM, Edward Jaffe
edja...@phoenixsoftware.comwrote:

 On 1/27/2011 2:51 PM, Edward Jaffe wrote:

 Instructions are always fetched from primary (see PoO).


 Sorry. It is possible to fetch instructions from home if you switch to
 home-space ASC mode.
 http://bama.ua.edu/archives/ibm-main.html



True... but nobody outside of Poughkeepsie should ever be running in
home-space ASC mode. No doubt some folks will pile on about this but
really just don't. Mr Relson is qualified to do it. The list gets very
short very quickly after that.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: search for usage

2011-01-10 Thread Chris Craddock

 Does anyone have any analysis (which can be shared) related to SuperC's
 Search-For CPU usage?



Its not exactly a gauzy sheer chiffon dress, but who cares? You're only
going to use it now and then (when you need it) on moderate sized datasets
right?



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: X-memory POST question

2010-12-23 Thread Chris Craddock
On Thu, Dec 23, 2010 at 1:06 PM, Robert A. Rosenberg hal9...@panix.comwrote:

 At 12:31 -0500 on 12/23/2010, Tony Harminc wrote about Re: X-memory POST
 question:

  On 23 December 2010 09:43, Binyamin Dissen bdis...@dissensoftware.com
 wrote:

  On Thu, 23 Dec 2010 08:30:25 -0500 Peter Relson rel...@us.ibm.com
 wrote:

 [...]

  :This goes to why, in many cases, XM Post is not safe,

 [...]

   Are you implying that one should open an APAR against XM POST as an
 integrity
  exposure?


 It's hard to see how a service that is offered only to authorized
 programs could constitute a violation of the MVS system integrity
 statement.

 Tony H.


 I think the point was that the service has no provision for checking that
 its use is not going to raise a system integrity exposure. As explained in
 the checking before issuance procedure, it can mess up the wrong Address
 Space (or the contents of the correct address space which no longer
 correspond to the intended location of the ECB). This means that the XM Post
 caller needs to do their own integrity check as opposed to having the XM
 Post call doing it and returning a It Failed Return Code.




There are several fundamental problems with POST and cross-memory POST just
amplifies those. Even for OS/360, an interface consisting of a single word
of storage with no eye catcher and no management protocol whatsoever was
probably a bit too minimal. Unfortunately WAIT/POST not only survived, but
became central to the programming model and operation of the entire system,
so any new and improved alternative such as PAUSE/RELEASE (which is very
good btw) stands almost no chance of being widely adopted.

The biggest flaw is that there is literally no way for the system to know
whether the thing you're pointing at is actually an ECB. If you're running
in the right key (or worse, in key zero) and the address is valid, the
system will blow a nice 4-byte hole at that location, no questions asked.
Even when the location actually WAS an ECB at some time, it may not be any
more and an asynchronous unit of work that knew about it at some point when
it was an ECB may eventually get around to posting it. If you're lucky that
will fail, but most of the time it works perfectly and silently corrupts who
knows what.

Fortunately the cross-memory version is only available to privileged callers
so the risk is somewhat reduced.  However, if you're doing something brand
new, I would very strongly suggest you consider using  PAUSE/RELEASE and not
bother with WAIT/POST at all - except in the cases where some existing
service requires it of course.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Authorized Rexx Assembler Function

2010-12-23 Thread Chris Craddock
My question was that if you have an SVC that does stuff, can it use RACF to
 check if a user has permissions?  Based on your kind replies to my query,
 the answer is yes.



Yes, it isn't just for dataset security. You can ask security questions
about any logical resource, even ones you make up yourself. RACF and ACF2
and TopSecret are all called via the same macro (RACROUTE) and they all
allow you to ask varieties of essentially the same question: Can user X, do
action Y, to resource Z?. So as long as you can correctly formulate the
question you want answered in your SVC or PC routine, it doesn't matter
which underlying security manager is present. The answer that comes back is
one of yes, no, or maybe. How you interpret the answer is up to you.

And yes, if you're doing anything non-trivial, using the security manager is
a very good idea. As a sidebar comment, if you're tossing up between a PC
and an SVC, you're better off with a PC. Either way you have a non-trivial
amount of work to get it set up and manage it. You will have lots of
questions...



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Sp of load

2010-12-22 Thread Chris Craddock
On Wednesday, December 22, 2010, Micheal Butz michealb...@optonline.net wrote:
 Would anyone know what subpool load loads into


Yes.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Paging Jay Maynard

2010-12-22 Thread Chris Craddock
On Wednesday, December 22, 2010, Mike Schwab mike.a.sch...@gmail.com wrote:
 Speak of the Devil, and he makes time magazine.

 http://newsfeed.time.com/2010/12/22/internet-legend-tron-guy-banned-from-seeing-tron-legacy-in-famous-suit/

My wife pointed that out to me and she was utterly shocked when I
casually replied oh yeah, I know Jay
Somehow she didn't really see it as a brush with celebrity. (sorry Jay)

CC

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Frr pramter address question

2010-12-20 Thread Chris Craddock
On Mon, Dec 20, 2010 at 8:36 AM, Micheal Butz michealb...@optonline.netwrote:

 Hi,

 The paramd paramter on the SETFRR
 Macro when adding a FRR you give FRR a address where to return a pointer to
 a 24 byte area

 Where would set what info you want passed to your recovery routine in the
 24 byte area



At the risk of handing you a loaded gun... when you issue SETFRR, the
parameter address that is returned to you points to FRRSPARM which is a 24
byte area at the end of the current FRR stack entry. You can store whatever
you want in that area (up to 24 bytes, of course) so a typical use case
would be to store anchor information so that your FRR recovery routine can
find its butt in the dark without a flashlight.What your FRR routine *does*
is the hard part.

You're in pretty dangerous territory to be stumbling about in the dark. *IF*
you do this, I strongly recommend that you do *NOT* attempt to retry out of
your recovery routine. Just gather some diagnostics (carefully!) write a
message (carefully!) and issue SETRP to percolate with a LOGREC. If you want
better diagnostics than that you can request an SVC dump by issuing SDUMP
from within your recovery routine, but be careful with that too. You can
easily bring a system to its knees by taking excessive dumps.


Good luck

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: determine runtime privilege level (prob/supr state, key) without TESTAUTH

2010-12-17 Thread Chris Craddock
On Fri, Dec 17, 2010 at 8:20 AM, Dr. Stephen Fedtke 
max_mainframe_...@fedtke.com wrote:

 hi all,

 if a programcode does not know anything about its environment, and needs to
 determine its privilege level/status (i.e. problem or supervisor state,
 key), it could use TESTAUTH. fact is that TESTAUTH has some environmental
 restrictions, such as TCB mode. on the other hand, most of these
 PSW-related
 instructions are privileged, and just using them implies the risk of a 0C2
 in case the code runs non-privileged.

 my questions:

 * is there any non-privileged instruction to determine the status?
 * is there any control block field the psw is almost mirrored in (in
 real-time)? so that this pseudo psw could be checked.

 OR is the only way: 1) check for being an SRB. 2) use TESTAUTH?



if you're only concerned with answering the question am I currently in a
privileged condition? then yes, there is a fairly trivial sequence of
instructions that you can use that is functionally equivalent to  TESTAUTH
but about a zillion times faster. If you wanted to determine whether your
caller was privileged then there's a slightly different mechanism depending
on whether you're running in an SVC or PC routine.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Batch program to update CVTUSER

2010-12-15 Thread Chris Craddock
On Wed, Dec 15, 2010 at 1:22 PM, Lorne Dudley dudl...@queensu.ca wrote:

 I'm having problems getting the following batch program to run correctly.
  It's running from an authorized library and abends with 0C4, reason code 4.

 The book says the key of the storage area that the running program tries
 to access is different from that of the running program.

 Data Areas for CVT says
 Storage Attributes: Subpool: Nucleus
 Key: 0
 Residency: Below 16M line

 Any ideas appreciated.



Ok. Don't do it. It is basically a bad idea. While that field was
originally intended for user (i.e. customer) use, in practice it is
unusable. If you want to be able to anchor something globally then you
should probably use some common storage and create a global name/token pair
to point to it.




 LRR9,R15  .SET UP ADDRESSABILITY
 USING Y,R9.SET UP ADDRESSABILITY
 USING CVT,R2  .CVT DSECT
 *
 MODESET KEY=ZERO,MODE=SUP
 *
 L R2,CVTPTR   LOAD UP CVT ADDRESS
 L R3,CVTUSER  LOAD CVTUSER ADDRESS



If you wanted to alter the contents of CVTUSER (a bad idea remember) then
you should use LA R3,CVTUSER



 * move 4 characters to CVTUSER
 MVC   R3(4),=C'TEST'
 RETURN (14,12),RC=0   .RETURN TO CALLER



Not to be harsh, but you obviously don't know what you're doing.
Unfortunately what you're doing is potentially harmful.  As it is you would
get the contents of CVTUSER (i.e. zero) in R3 and your subsequent move would
fail with a S0C4-4, but only because the hardware provides low address
protection. Almost anywhere else you'd clobber whatever happened to be
there.

What problem (other than just playing around) are you really trying to
solve?


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Batch program to update CVTUSER

2010-12-15 Thread Chris Craddock
On Wed, Dec 15, 2010 at 4:06 PM, Richard L Peurifoy r-peuri...@neo.tamu.edu
 wrote:

 On 12/15/2010 3:23 PM, Chris Craddock wrote:


 Ok. Don't do it. It is basically a bad idea. While that field was
 originally intended for user (i.e. customer) use, in practice it is
 unusable. If you want to be able to anchor something globally then you
 should probably use some common storage and create a global name/token
 pair
 to point to it.


 I am curious about this. Do some vendors try to use this field?
 If so, I guess we have been lucky in our choice of vendors.
 We have used this field to anchor a local CVT for over 40 years
 and have had no problems. If I were doing it now, I would probably
 use name/token, but it wasn't available then.



back in the day... adventurous folks like Lorne looked at the data areas
manuals or fiche and saw USER area and thought of interesting things to do
with that anchor (there are several scattered around the place). As a result
of that, there are probably dozens of examples of naive old-timey vendor
products that attempted to use those data areas over the years and as long a
nobody else was trying to use the same user words the products worked.

But there isn't any protocol or interface for sharing a single word with
others who would also like to use it. Heck back then we didn't even really
have the concept of an interface. So it rapidly became obvious to most folks
that the user words were in fact useless and their exploiters found another
way to do what they wanted.

Hence my question to Lorne... what are you actually trying to accomplish?


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: VSMLOC documents as using the current address space

2010-12-10 Thread Chris Craddock
On Fri, Dec 10, 2010 at 6:50 AM, Peter Relson rel...@us.ibm.com wrote:

 IOW, a PC-SS cannot examine the callers addresses via VSMLOC?

 Correct, at least using documented interfaces (since secondary and home
 ASC modes are not part of the documented programming interface, and as
 such might or might not work).



VSMLOC does work in cross-memory mode (PASN  HASN), *BUT* it is defined to
require a primary ASC mode caller, so there's no way to clue the service
about the address space you mean. It is going to assume you mean the current
primary (PASN). The macro will return the address of the owning TCB for PVT.

BTW For services that do accept ALET qualified parameters, most of them
don't accept parameters in the secondary address space (ALET=1) That is
because those services are implemented via PC instructions. Depending on how
the PC is defined, executing the PC instruction will alter the current SASN,
even if the PC is not space switching. So after the PC instruction is
issued, the SASN that is seen by the service is (typically) the caller's
PASN and the caller's SASN is no longer addressable.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Field that contains timestamp of when current jobstep started?

2010-12-02 Thread Chris Craddock
On Thu, Dec 2, 2010 at 3:18 AM, Binyamin Dissen
bdis...@dissensoftware.comwrote:

 On Thu, 2 Dec 2010 13:26:15 +0930 Anthony Thompson
 anthony.thomp...@nt.gov.au wrote:

 :ASCBINTS would be job start time, not current step.

 True.



Oops. My bad. I didn't notice you wanted the step time. I don't know off the
top of my head which step-level control block would have that (although
there must be one somewhere)


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: 64 bit mode disabled

2010-12-01 Thread Chris Craddock
On Wed, Dec 1, 2010 at 10:25 AM, Tony Harminc t...@harminc.net wrote:

 On 1 December 2010 10:46, Edward Jaffe edja...@phoenixsoftware.com
 wrote:

  You can use an ordinary branch instruction (e.g., BASSM 14,15) to branch
 to
  code above the bar. If you're running enabled, you won't execute for
 long... :-D

 Just how does it fail? Is the PSW instruction address silently
 truncated upon return from an interrupt as a result of its having been
 saved in a legacy control block, leading to continued execution at a
 presumably incorrect address, or is there some active detection and
 abend? Something else? What if I install the same code at, say
 _00123000 and 0070_00123000, and branch to the
 above-the-bar code?



The first level interrupt handlers are responsible for saving the status of
the interrupted work. If they detect execution above the bar they call RTM
and ruin your day.




 It is, though, curious that there must be, as Paul Gilmartin points
 out, quite a bit of infrastructure already there in support of 64-bit
 addresses. The real PSW is at all times beyond the early stage of IPL
 a zArch one of 128 bits, and it must be saved and restored properly,
 as must things like PER addresses in control registers. What remains
 to be done?
 http://bama.ua.edu/archives/ibm-main.html



there is a technique called PSW scrunching that allows saving an extended
PSW in a normal 8 byte PSW field when the instruction address is only 4
bytes. As you can probably imagine, there is literally no way to preserve
compatibility with the near infinite number of programs that currently
understand and inspect the task management control blocks, so while
execution above the bar is a goal, it is a long way off yet.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: I would love to know what went wrong at NAB

2010-12-01 Thread Chris Craddock
On Wed, Dec 1, 2010 at 2:11 AM, Ron Hawkins
ron.hawkins1...@sbcglobal.netwrote:

 If I remember rightly it was a bug in IMS 2.2 or 2.3. If I remember
 correctly NAB (where I worked at the time) had found the bug in stress and
 regression testing (TPNS for those that remember it) and were waiting for
 the fix that hit Westpac. Funny how times have changed.



Yes it was IMS 2.2 and it did not actually fail in testing. It was in test
for quite a while and there was a lot of pressure to put it into production.
It crashed mid-morning as the national branch network came online on the
monday after it went live. It came up again, went down again, yo-yo'd a few
times and then stayed down. The real problem was in the restart and recovery
processing which changed in 2.2.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Field that contains timestamp of when current jobstep started?

2010-12-01 Thread Chris Craddock
IIRC there is a field which has the timestamp of when the current step
 started, but I cannot seem to find it.



ASCBINTS


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: I would love to know what went wrong at NAB

2010-11-30 Thread Chris Craddock
On Tue, Nov 30, 2010 at 10:39 PM, Chase, John jch...@ussco.com wrote:

  -Original Message-
  From: IBM Mainframe Discussion List On Behalf Of Shane
 
  As if.
  Can't you just imagine a major Aussie Bank doing that. You were at
 Bank
  of NSW when they had the IMS fiasco Steve - how much info on that got
  out ? (via Bank press releases I mean :-)

 Yeh  It's probably a near-universal trait that dirty laundry is
 washed discreetly  :-)




This would be one of those rare cases where the story was big enough that
there wasn't a lot of room for discrete laundering. It was actually Westpac
by then (btw) and I was there too. That event wasn't a single outage, but
rather a series of them wound around failed restart/recovery processing that
eventually took several days to fully recover from. There wasn't any news
coverage at first, but the scale of the problem had made the press by the
second day. Once it had there was plenty of blame storming to go around. I
don't recall whether the bank actually issued press releases but their point
of view certainly did make it into the press coverage.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: 64 bit mode disabled

2010-11-30 Thread Chris Craddock
On Tue, Nov 30, 2010 at 9:43 PM, Gerhard Adam gada...@charter.net wrote:

 How would you branch to code above the 2GB bar, since none is allowed
 there?
 The obvious problem being how you would even get it loaded up there.  If I
 recall, the fundamental problem is that the PSW cannot be saved with an
 address greater than 31-bit for the next instruction since neither the
 TCB's
 or RB's have a large enough area to store it.


 I have a vague memory of reading, here or on the assembler mailing list,
 that you would need to run disabled if you wanted to branch to code
 located above the bar.  I also have a vague memory that the Wrath of
 God would probably fall on you anyway if you tried it, disabled or not.



Clearing the air: No, the SAM instructions don't cause you to become
disabled. They just switch addressing mode. It is perfectly ok (normal even)
for ordinary garden variety programs to switch in and out of 64 bit
addressing mode. All z/OS code is loaded below 2GiB, so nothing fancy needs
to be done to branch into 64 bit code.

However, if you were imagining you would be executing code that was above
4GiB, then forget it. z/OS doesn't support it at all. Even if you
could somehow conspire to get some code into storage above the bar, you
would not (in general) be able to execute it successfully because none of
the major control blocks that manage dispatching work can support saving a
full extended PSW, so while you might get away with it for a few
instructions, the moment you took an interrupt you'd be toast. Hence the
putative requirement to run disabled. For the purposes of this discussion
you may assume that's just a bonehead idea.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Potential heresy regarding E and L macros etc. (Was: WTO ABEND D23 help)

2010-11-19 Thread Chris Craddock
On Fri, Nov 19, 2010 at 10:40 AM, Chris Mason chrisma...@belgacom.netwrote:

 Charles

 snipIt was because of your earlier posts on automation topics that I
 bothered to
 poke my nose in here and it was only when I saw what might be a bit of
 irritation with the static nature of macro coding, even the E and L -
 or
 perhaps especially because of the E and L form - that I feel prompted
 to
 suggest a step further than the course proposed by Chris Craddock.

 This step is, having studied the E and L forms of the macro, ditch the
 pesky things and just code what is necessary in raw - but superbly
 documented as always, of course - instructions - with perhaps a comment box
 surrounding something like the macro text that you would have coded had it
 been dynamic enough.[1]



I think you have missed the point I was making about the WTO interface. I do
NOT advocate ditching formal interfaces in general. In fact, the exact
opposite is true. I generally advocate for using the official macro
interfaces for calling system services. Doing it by hand is error prone
and certainly not worth the effort if you have to do it more than
once. However there are a few egregious cases where the official interface
is (a) so old and crufty that it is unreasonably difficult to use for the
general case - the WTO interface we were discussing is a classic example, or
(b) is so complicated that it is essentially unusable by mere mortals - many
of the XES and LOGR interfaces would fall into that category. I would
probably concede your point about the xxxCB macros too, although I've seen
the VSAM versions used extensively in products I've been associated with and
once you get the gist of them they aren't that onerous.

In those too hard for mere mortals cases I provide additional macro
infrastructure or kinder-gentler callable service interfaces so that other
developers don't have to wrestle with the ugly use cases. But even in those
cases I generally use the official macro interface under the covers unless
there is a compelling reason not to.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Performance questions

2010-11-14 Thread Chris Craddock
On Sun, Nov 14, 2010 at 4:02 PM, Sam Siegel s...@pscsi.net wrote:

 Hello,

 What is the most efficient way to coordinate work in a synchronous fashion
 between a problem state TCB and an enclave SRB?  Pause, release?  Wait,
 Post, Latch services?  Other?

 The enclave SRB will be scheduled into the problem state TCB's address
 space.

 The enclave SRB will be parsing a buffer and searching for certain tokens.
  The processing is simple and does not have many lines of code, but could
 be
 executed 10s of millions of times per day.  The buffer is processed in a
 read only manner.




If both are operating synchronously in the same address space, why bother to
introduce the SRB (and communication/synchronization overhead) at all?



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Performance questions

2010-11-14 Thread Chris Craddock
On Sun, Nov 14, 2010 at 4:30 PM, Sam Siegel s...@pscsi.net wrote:

 On Sun, Nov 14, 2010 at 2:22 PM, Chris Craddock crashlu...@gmail.com
 wrote:

  If both are operating synchronously in the same address space, why
 bother
  to introduce the SRB (and communication/synchronization overhead) at
 all?

  Eventually, the SRB will be used to offload work to a zIIP.   Otherwise I
 would not consider this route.




Beware of the head long rush to leverage zIIP engines. Using a zIIP is
definitely NOT worth the effort unless the work you're offloading to the
zIIP is a significant percentage of the total.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Recursive abends on FRR's

2010-11-05 Thread Chris Craddock
On Fri, Nov 5, 2010 at 6:58 AM, Micheal Butz michealb...@optonline.netwrote:

  I know the field SDWASTAE tests for recursive entry for Esate(s) is there
 to test for recursive entry for FRR's



there's no such thing as a recursive entry to a recovery routine. When an
error occurs the FRR stack is processed in LIFO order and then the SCB chain
is processed in LIFO order and with ARRs (if any) being interleaved in the
right places. Once an individual recovery routine has been entered it is
logically disabled and cannot be reentered unless/until a retry occurs. Any
(non-FRR) recovery routines that were logically taken out of scope at the
retry point will be removed by the system and the linkage stack and RB chain
cut back to the point they were at when the recovery routine was set. In
effect, the system is trying to put things back the way they were so that it
is appropriate to continue.

If another error occurs after a retry then the entire process takes place
again - which is what many people interpret as recursive abends. That is
why in my last post on this topic, I recommended that you issue a diagnostic
message and percolate. If you do that you can never get into this situation,
regardless of the recovery type.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: WTO ABEND D23 help

2010-11-02 Thread Chris Craddock
On Tue, Nov 2, 2010 at 11:24 AM, Robert A. Rosenberg hal9...@panix.comwrote:

 At 09:32 -0400 on 11/02/2010, Charles Mills wrote about WTO ABEND D23 help:

  There is a field in the WTO MF=L commented as WPX length. It assembles
 as
 104=x'68' and it's still x'68' in the dump. I don't find WQEBLK or WPL
 in the listing.

 I've looked at the MF=E macro expansion and it seems to be storing the
 CART
 address and the CONSID in the right place in the MF=L. The text pointer is
 correct (16 bit length + text).

 What else should I be looking for?


 I see that after tweaking you got it working. One tip for the future. If
 you are going to use parms like CART and CONSID in the MF=E, they should
 also be used in the MF=L. Some parm lists have flags set in the MF=L
 indicating what parms are being supplied. If you fill them in via MF=E,
 there can be problems if those parms (and thus the flags) are not also in
 the MF=L. I am not saying that that this was your problem but it does not
 hurt to make sure by having the parm in both macros (if not needed, it will
 not cause any problems for macros where the MF=L just provides the parm area
 but no content and the MF=E does ALL the work of building the parms).



that's true. It is best to use as close to identical MF=E and MF=L
expansions as possible. That can be a bit tricky if you don't know ahead of
time how many message lines you're going to need. The limit for a
non-privileged caller is 10 btw. I also feel honor bound to point out that
the IEZWPL mapping is (to be charitable) extremely misleading. If you're
going to build your own expansion you will need to study the actual WTO
macro expansion rather than relying on IEZWPL. Try WTO TEXT=(...) with one,
then two and then three message lines and you will fairly quickly get the
gist of it.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Task Creation and Termination

2010-10-31 Thread Chris Craddock
On Sat, Oct 30, 2010 at 9:07 PM, Micheal Butz michealb...@optonline.netwrote:

 Sorry by 2 I meant 1 parameter and 1 MVS Service DETACH



yes there ARE actually two parameters that you can specify that will result
in you having to issue DETACH for yourself.

ECB (as already noted) specifies the ECB that will be posted when the task
terminates.
ETXR specifies the address of an exit routine that will get control as an
IRB under the mother task

the latter is extremely useful for doing any application-specific cleanup
and perhaps providing more forgiving/useful termination notification to your
application than you would get from the plain old ECB, which only contains
the completion code.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Abending TCB

2010-10-24 Thread Chris Craddock
Mike Butz writes:

 If a main program uses a Estae rtn then does Multiple Attaches specifying
 the same ESTAE rtn on the ESTAI parm of the attach can the recovery routine
 determine the abending TCB




If you are getting control in any non-FRR recovery routine (ESTAI, ESTAE(x)
or ARR) then the current TCB is always the abending TCB and, except in one
interesting case, the error occurred in the current task. The interesting
case is where CALLRTM TYPE=ABTERM is issued against your task by another
unit of work, e.g. in the case of SRB to task percolation. The SDWA contains
information about what was actually going on when the abend occurred and so
if you're going to write robust error recovery code, you *REALLY* need to
pay attention to that information.


With that said, writing good general purpose recovery code is extremely
hard. It is better and much easier to tailor your recovery as narrowly as
you can to limit the recovery to the section of logic that you're trying to
protect/deal with. For that reason alone the idea of using a single ESTAE
routine as both an ESTAI and an ESTAE across multiple tasks and RBs within
those tasks is just a bad idea unless you go to the trouble of building some
underlying recovery infrastructure and leave plenty of footprint information
so the recovery code can quickly determine where and why it is being
entered and make sensible decisions about providing diagnostics and retry
(or not). Most of the time the better path of valor is to request
diagnostics, burp up a message about what went wrong and then percolate. You
will seldom get in trouble for bailing out, but a surprising percentage of
major failures come from ill-advised retry efforts.


Another issue that almost always trips people up is the intersection between
ESTAE-class recovery  routines and the RB and linkage stack level. You need
to read the topics on providing recovery very carefully and once you think
you understand them, read them again twenty or thirty times. z/OS recovery
has great power and flexibility, but it also has more ways of confounding
and astonishing you than you can possibly imagine.


So let me throw in some personal opinion. ESTAI recovery routines are
worthless archaic garbage and should be completely avoided for any new code.
They violate the principles outlined above and they build up like dandruff
because they apply to every RB on every subtask. On the other hand ESTAE and
ESTAEX, while they can be used very narrowly as outlined above, their use is
specific to a particular (usually P) RB and linkage stack level so you
need to bracket your code with ESTAE creates and deletes with some frequency
and that hurts performance. So if you're going to provide task-mode recovery
these days, I would strongly recommend using IEAARR to call the code you
want to protect. It is almost zero cost and you can tailor it as narrowly as
you want.


And may the force be with you...

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Mainframe hacking?

2010-10-15 Thread Chris Craddock
On Fri, Oct 15, 2010 at 10:43 AM, Ricc Harding ricc.hard...@gmail.comwrote:

 SPFCopy's magic SVC went thru several iterations to make it secure too.
 It
 was one of those SVC's that was written to be serially secure but in
 a
 multi-tasking environment when two or more tasks could be set up to run
 concurrently, then a serially secure task, doing what it did in a secure
 manner (if it was the only thing running) allowed everyone running in the
 address space to participate in the authorization.  STATUS STOP became very
 much a requirement for those serially secure tasks to remain such.




The truth is that there is no such thing as a secure magic SVC (or PC) no
matter how creative its authors are.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Mainframe hacking?

2010-10-14 Thread Chris Craddock
On Thu, Oct 14, 2010 at 11:13 AM, Bob Shannon
bshan...@rocketsoftware.comwrote:

  I would think it means code that front-ends one of the First Level
 Interrupt Handlers

 That's how Amdahl implemented SE and SP assist years ago. I think IBM did
 it to implement the IEEE floating point instructions so that they would work
 on processors that lacked the hardware. Of course these were not malicious
 implementations.



(as Bob knows) it is impossible to create/install a malicious FLIH or SVC or
PC without already having the keys to the kingdom anyway. That is the
foundation of integrity and the reason why the installation has to
appropriately protect system datasets and APF libraries.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: PAGE FIX

2010-10-14 Thread Chris Craddock
On Thu, Oct 14, 2010 at 4:17 PM, Larry Crilley 
larry.cril...@dino-software.com wrote:

 Sure.  I just want to determine if a page is fixed.  I'm not saying I want
 to free/unfix it.  I just want to know...



so far as I know, there is no way to tell in general. There are some obvious
corner cases where you can tell, e.g. if the virtual storage address is in a
non-pageable subpool, but there is no official interface that will tell you
and as Binyamin pointed out, you couldn't rely on it anyway.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: CANCEL/FORCE ARM (Was: Really dumb IPL question)

2010-10-12 Thread Chris Craddock
On Tue, Oct 12, 2010 at 8:55 AM, Chris Mason chrisma...@belgacom.netwrote:

  The archaic IEFSDPPT module is still valid, but for all practical
 purposes it is
 unusable.

 Unusable for all except IBM would be more accurate - although implied by
 your
 emphasis on vendors. As far as I can tell from scanning the section in
 the
 description of the SCHEDxx member in the Initialization and Tuning
 Reference
 manual, IBM routinely specifies its real or imagined requirements in
 PPT entries in the IEFSDPPT module. That tends to challenge your use of
 the
 adjective archaic.



IBM does continue to use  IEFSDPPT for some things that only take effect
at IPL time. However that isn't terribly flexible or useful for anyone else,
so I stand by the term archaic.



 I hope you took the time to appreciate my description of how the

Communications Server (CS) IP component developers and authors had got
 their undergarments in a twist over NOCANCEL in the case of the TN3270E
 server.



I don't know much about Communications Server in particular, but I do know a
little bit about z/OS internals and systems management products in general.
I can't comment about whether the CS components really need to run with
NOCANCEL. I *can* comment on the technical reasons why a server address
space might need to run that way. I don't know whether the TN3270E server
has those attributes or not. Do you? Or more directly, do you know for sure
that they don't? And does it really matter?



  It is not very common to make address spaces non-cancelable and the
 reasons for doing so are usually technically
 deep.

 ... or maybe the reasons are accidental becausesnip



I can't speak for all software developers but I can tell you that those
big-gun decisions are never made by accident. At least not by the major
software vendors. There are too many folks looking over your shoulder and
second guessing everything you do. Not unlike ibm-main in that respect :-)



 Again we have developer arrogance in not leaving it up to

the user as to whether or not to allow the user to advise his/her
 operators
 over cancelling the address space by allowing CANCEL or NOCANCEL to be
 specified by means of the SCHEDxx member with a proper explanation of the
 advantages and disadvantages, including how they relate to the use of the
 AUTOLOG facility.



We're just going to have to disagree over this. Giving users a choice
between things they don't really understand isn't really being helpful to
them. Even if the choice is elaborately documented you've added something
extra that must be read and understood and actioned and most users don't
read everything we give them as it is. If making that choice is of no
consequence and it only adds a small amount of work for the user then ok I
guess. But if making the wrong choice can lead to a system outage (or
worse) why would you want to have the user make that choice? I would prefer
that the software should do the right thing for me. You may consider it
arrogant and that's fine with me. I have more than enough scars already.




 Note that the main CS IP address is one thing and, who knows? - well I
 don't
 but, of course, the developers do - it may well be that the tricks the
 main
 CS IP address space gets up to are the same or similar to those you
 described
 in your concrete  example.



Perhaps so and as you say, you don't know. Nor do I. BTW The tricks I was
referring too aren't especially tricky. The garden variety things that
server address spaces tend to do are likely to result in dependencies
between the server space and its clients. If you blow away the server you're
very likely to leave the clients in a damaged state. If it is necessary to
allow for restart and recovery for such a server space, then the clean way
is for the server to accept a STOP command. Upon receipt of that command the
server's internal tasks are all still running normally and they can go on
about the business of shutting down gracefully. If you use CANCEL or FORCE
that's no longer possible. All of the server's tasks are summarily abended
and all subsequent resource cleanup has to be co-ordinated through end of
task and/or end of memory routines.

Trust me when I tell you that accomplishing that is enormously more complex
and risky. An impatient operator with an itchy trigger finger can ruin your
whole day. If I'm responsible for providing that functionality then
minimizing the risk of disaster seems to me not to be the arrogant thing to
do, but rather the prudent thing to do. Why are we even debating this?



 I can imagine that there are a number of
 functions the main CS IP address space could perform which imply NOCANCEL
 is a good idea. However the TN3270E server is just a TCP application with
 potentially - not necessarily - a mass of definitions to process on
 starting. It
 was the time which some customer definition sets needed to get up and
 running that prompted the separation of the TN3270 sever application - as
 it
 should have 

Re: CANCEL/FORCE ARM (Was: Really dumb IPL question)

2010-10-10 Thread Chris Craddock
On Sat, Oct 9, 2010 at 12:20 PM, Chris Mason chrisma...@belgacom.netwrote:

 Chris

   [1] Your presentation doesn't actually mention a SCHEDxx entry as an
   alternative to or override for a PPT entry - tut! tut!.

  Erm... tut me no tuts! PPT entries are defined in SCHEDxx.

 Erm. How about actually adding some value to the correction rather than
 merely highlighting an obvious contraction that became inaccurate as a
 consequence?

What I should have said - as, grey beard that I believe you are, you should
 have seen instantly - is the following:

 Your presentation doesn't actually mention a SCHEDxx PPT entry as an
 alternative to or override for a PPT module entry.

 If you had taken a bit more trouble with your post, you might have offered
 something like this as the correction instead of just the sort of
 point-scoring
 beloved by Dr No - who has recently got himself taken of someone else's
 Christmas card list as well as confirming his absence from that of another
 of
 the usual suspects.



I'm sorry. I wasn't trying to score points at all. I was just
(unsuccessfully) attempting some humor in pointing out that (nowadays) PPT
entries are made in SCHEDxx. The archaic IEFSDPPT module is still valid, but
for all practical purposes it is unusable. And as it turns out, software
vendors seldom use either one anyway.



 But you have managed some added value by pointing out that, in addition
 to
 being able *statically* to specify at least the CANCEL/NOCANCEL
 attribute,
 you can specify attribute(s?) *dynamically*. Unfortunately I can't quite
 follow whether this is an usual or an unusual step to take and hence how
 common a problem it might be. I would expect that because of the esoteric
 nature of the programming involved it would be lie on the *unusual* side.



Software vendors in general have an aversion to anything that requires
PARMLIB updates in order to install their products. And since there is a
very simple brute force alternative in this case, that's what they will
typically use. So your idea of having automation examine the PPT would
likely yield no useful information for managing individual address spaces.
The more fundamental question of what it really means to manage those
address spaces is a can of worms I will leave unopened.



 What this means for automation is that, in preparing to support the
 management of any particular program's address space, having found no
 MODIFY,(shutdown) or STOP option, you might well discover the appropriate
 way to manage shutting the program down is CANCEL or FORCE ARM by
 checking the IEFSDPPT module and the planned SCHEDxx member. However at
 the absolutely unavoidable testing stage, you might find that the developer
 has played the tricky card of setting NOCANCEL dynamically - or, there
 being
 no limit to tricky programming or programmers, of resetting to CANCEL!



You're probably missing the point of what I meant when I wrote...



  Note that if an address space is marked non-cancelable, there's usually a
 good reason.



I meant that there is usually a sound technical reason why the address space
needs to be that way and you probably ought not assume otherwise.



 The developer who passed the requirement on to the developers managing the
 IEFSDPPT module for a particular release of these days z/OS may have
 ***imagined*** he - or she, the female of the species is equally likely to
 get
 it wrong - was asking them to set up the NOCANCEL bit for a good reason.
 There is no guarantee whatsoever at all in this world that he or she
 actually
 understood what he or she was doing. It may be a good idea to set the
 requirement in stone in the IEFSDPPT module or it may not. It may
 actually
 have been better to have the possibility documented in the appropriate
 manual as a specification in the SCHEDxx PPT entry and actually - shock,
 horror! - let the user - belonging to the organisation actually *paying*
 for the
 product - decide.[3]



I am kind of offended at the idea that the developer had no idea what he/she
was doing. At least the developer knows what is going on inside the
product. The user's OPINION on whether or not an address space should be
non-cancelable is irrelevant and is another reason why the vendor is likely
to avoid using SCHEDxx or IEFSDPPT.  It is not very common to make address
spaces non-cancelable and the reasons for doing so are usually technically
deep. It is generally done for your own safety, not just because software
developers are lazy or have an inflated idea of the importance of their
product.

For a concrete example, if you have a server address space that owns common
storage and cross memory resources and provides services to other address
spaces, then abruptly terminating that address space (either via CANCEL or
FORCE) could be quite disastrous. You can have an arbitrarily large number
of units of work in various states in other address spaces that are suddenly
left pointing into the ozone. The process of removing 

Re: CANCEL/FORCE ARM (Was: Really dumb IPL question)

2010-10-06 Thread Chris Craddock
On Wed, Oct 6, 2010 at 9:45 PM, Chris Mason chrisma...@belgacom.net wrote:

 Edward

 I detect some failure properly to make an effort to understand the point
 *I*
 was trying to make!

 snip
 [1] Your presentation doesn't actually mention a SCHEDxx entry as an
 alternative to or override for a PPT entry - tut! tut!.



Erm... tut me no tuts! PPT entries are defined in SCHEDxx. In any case I
submit for your amusement and reading pleasure the following brute-force
alternative that doesn't require a PPT entry at all. It assumes certain
things about the environment and current state that I won't bother to
enumerate but suffice to say this, or something close to it is far more
likely to be used by the ISV cognoscente. So the idea of rattling through
the PPT would likely leave non-cancelable ISV products undiscovered.


 L R1,PSATOLD  - Current TCB
 USING TCB,R1  TCB map
 ICM   R1,7,TCBJSCBB   - JSCB
 USING IEZJSCB,R1   JSCB map
 L R1,JSCBCSCB   - Current CSCB
 USING CHAIN,R1  Map CSCB
 NICHACT,255-CHCL  Mark this STC non-cancelable

(there's another bit elsewhere that makes the address space non-forceable
too, but I probably shouldn't elaborate on that) Note that if an address
space is marked non-cancelable, there's usually a good reason. Issuing FORCE
(with or without ARM) against an address space in that condition should
rightly be seen as loading the gun and aiming it at your foot. If you're
lucky you'll miss.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: TESTAUTH in XMEM PASN |= SASN

2010-09-21 Thread Chris Craddock


 Does anyone know if TESTAUTH runs in XMEM mode PASN not equal SASN



No it does not. You have to be in primary asc mode and with PASN=SASN=HASN


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Where is APF documented?

2010-09-16 Thread Chris Craddock
Tom, Chuck and Ed wrote:


   On 9/9/2010 4:35 PM, Chris Craddock wrote:
  yeah I know, I just didn't feel like going off on one of my normal
 rants
  about integrity exposures. It seems like nobody listens anyway.
 
 and on 9/15/2010 Ed Jaffe wrote:
  Some of us do... :-)
 
 Yep.  When Chris speaks I listen.  Usually it is entertaining and
 sometimes even educational.

 Ha!  The posts that Chris makes are usually educational.
 Sometimes they are also entertaining.
 http://bama.ua.edu/archives/ibm-main.html



aw shucks, educational AND occasionally entertaining! Thanks guys. :-)

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Where is APF documented?

2010-09-09 Thread Chris Craddock
On Thu, Sep 9, 2010 at 8:39 AM, Charles Mills charl...@mcn.org wrote:

 Yeah, it's documented bottom-up and in the wrong place. APF is not an
 authorized assembler service. APF authorization is in the realm of
 operations and security, not assembler programming. Sure, it impacts
 assembler programs and programmers, but it also impacts COBOL and Rexx
 programs. Catalog management affects assembler programs, but it's not
 documented with the GET macro.



what little documentation there is is older than Methuselah's tomcat and you
have to be schooled in interpreting the arcane way things are described. Be
thankful for what exists.



 APF is a facility for identifying certain load libraries to z/OS. If an
 executable program is (1) stored in an APF-authorized library and (2)
 link-edited with AC(1) then it is said to be APF-authorized.




Keep in mind that APF authorization is an attribute of a running job step. A
job step becomes APF authorized if and only if the job step program is
linked AC(1) *and* is loaded from a dataset in the APF list. If the job step
is APF authorized then the job step task and all of its subtasks are
considered authorized. Otherwise none of the tasks are authorized.



 As an untrusted programmer can freely link edit or bind a program with
 AC(1), an installation can only protect these privileged facilities by
 using
 RACF or another security subsystem to control the ability to store programs
 into APF-authorized libraries, and also the ability to APF-authorize a load
 library.



True. One point to note is that the AC attribute has no effect whatsoever on
programs that are not job step programs, but I'd like a dollar for every
loadlibrary that has AC(1) sprayed around like confetti.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Where is APF documented?

2010-09-09 Thread Chris Craddock
On Thu, Sep 9, 2010 at 3:39 PM, Tony Harminc t...@harminc.net wrote:

 On 9 September 2010 12:39, Chris Craddock crashlu...@gmail.com wrote:

  ... I'd like a dollar for every loadlibrary that has AC(1) sprayed around
 like confetti...

 snip

 Every one of those wished-for dollars is a potential exposure.
 http://bama.ua.edu/archives/ibm-main.html



yeah I know, I just didn't feel like going off on one of my normal rants
about integrity exposures. It seems like nobody listens anyway.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: NO RESPONSE RECEIVED

2010-09-08 Thread Chris Craddock
In response to Charles, Rob Scott said:

What SDSF is doing here is using the MGCRE service with the CART parameter
 (the CART is the command response token) to send the operator command to
 an EMCS console.

 The expectation in most cases is that the code that eventually executes in
 whatever ASID because of the operator command looks at the CIB and sees
 that
 there is a CART present and then uses the CART=CIBXCART specification on
 the
 WTOs that writes messages containing the operator command response. This
 allows the EMCS that SDSF has established to wake up and get the
 message(s).

 Not all software products use CARTs on their WTOs and there may be
 architectural reasons why some base z/OS components do not use CARTs
 either.
 To cater for this, SDSF must establish a timer so it can give up waiting -
 hence the setting in the SDSF options.



'es a bright lad is our Rob! Spot on. However, whether or not you see the
NO RESPONSE  message depends entirely on whether SDSF sees a response
before that timeout occurs. So if the system is busy and/or your command
takes a while to process, you may get this even when you're doing everything
right with respect to the CART. BTDTGTS.

As an aside, if you have more than one line of data to return in the command
response you'll have to use the multi-line WTO option. Miraculously, it does
work and SDSF faithfully horks up the entire multi-line response which makes
it a lot easier to see which message parts belong with which responses.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Where doc for STORAGE LINKAGE=SYSTEM

2010-09-01 Thread Chris Craddock
On Wed, Sep 1, 2010 at 8:56 AM, Charles Mills charl...@mcn.org wrote:

 Wow, is this all confusing. (And yes, I imagine maintaining the source --
 two sources, assembler and PL/S, right? -- for GETMAIN is even more
 confusing.)

 So STORAGE is just GETMAIN in disguise. I knew it provided the same sort of
 functionality, but with notes here and there seeming to encourage the use
 of
 STORAGE instead, I thought it was somehow fundamentally better.




well kind of better. It is more accurate to say that STORAGE (the PC
version) and GETMAIN (the various SVC and branch-entry versions) end up
going to the same place, albeit with different front-end logic along the
way. STORAGE is (IMO) better than GETMAIN because it is easier to use and
more tolerant of the caller's environmental conditions. But even though the
stacking PC is much faster than the SVC FLISH/SLIH, STORAGE is actually
slightly slower than GETMAIN because the STORAGE PC front-end does a lot
more validation precisely because it IS more tolerant. If you're just
writing plain old problem state code there's no advantage unless you are
also running in AR mode (supported by STORAGE, but not by any of the forms
of GETMAIN) However, if you're writing code that runs in the dark and scary
places then STORAGE is a way better deal.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: memory/address sharing in batch mode

2010-07-29 Thread Chris Craddock
On Thu, Jul 29, 2010 at 1:39 AM, Edward Jaffe
edja...@phoenixsoftware.comwrote:

 Amlan Prasad wrote:

 hi,

 Has anyone come across or heard of or actually worked on technical design
 in mainframe where memory/address/data can be passed or shared in parallel
 by two different jobs?



 Yes. We do this with shared 64-bit virtual storage obtained via IARV64
 REQUEST=GETSHARED and IARV64 REQUEST=SHAREMEMOBJ. You can also share 31-bit
 storage via IARVSERV, but we don't have any code doing that.



There is also the USS implementation of UNIX shared memory (shmget(),
shmat() etc) which might be easier to deal with, depending on the OP's
programming skills



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Split OMVS file

2010-07-29 Thread Chris Craddock
On Thu, Jul 29, 2010 at 11:03 AM, Mark Steely mark.ste...@wnco.com wrote:

 I have a ZFS file which is larger than a 3390 mod 2 volume.  I would like
 to split this file  to  fit on 2 3390 mod 2 volumes.  What would the best
 way to do this.

 We are z/OS V1R11.  Any help would be appreciated.



Just make a bigger volume? Seriously, most USB memory sticks are way bigger
:-)


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Another reason to hate PDSE's

2010-07-27 Thread Chris Craddock


 PDSEs have only one advantage: snip


 Well, they do have at least one other advantage: they can store
 program objects, which allows entry points with long, case-sensitive
 names, which is sometimes handy.
 http://bama.ua.edu/archives/ibm-main.html



No not really. Longer names may be contained within the program object, e.g.
CALL someverylongname and the binder will make sense of it. External
entrypoints (those that could be used by ATTACH, LINK etc.) are still only 8
bytes long.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: IEFU83, IEFU84 and IEFU85

2010-07-16 Thread Chris Craddock
On Fri, Jul 16, 2010 at 12:10 PM, Rick Fochtman rfocht...@ync.net wrote:

 Ben, that's very sound advice, but the exit writeing person MUST be aware
 of any restrictions in the invoking environment. One example: you WILL use
 the branch entry to WTO if you need to write messages to the operator from
 IEFU84. Research and careful planning are mandatory, expecially in this
 particular exit.
 http://bama.ua.edu/archives/ibm-main.html



Actually Rick, that's very sound advice for ALL exits. :-)



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Did a mainframe glitch trigger DBS Bank outage?

2010-07-13 Thread Chris Craddock
On Tue, Jul 13, 2010 at 10:01 AM, Hal Merritt hmerr...@jackhenry.comwrote:

 For the opening shot in this, I'd argue: yes. While no system can ever be
 totally idiot proof, human intervention can be counted on as a failure mode.
  Besides, it should have taken more than one idiot to do the job. :-)



just when you think you've created a fool-proof system, the universe will
deliver you a superior class of fool

human error (both configuration goofs and operational errors) is THE
overwhelming cause of system problems these days. Add in application bugs
and you've pretty much covered the field. Even the squatty boxes rarely if
ever fail these days. People on the other hand...


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Is there any kind of system exit taken when an RB ends?

2010-07-12 Thread Chris Craddock
On Mon, Jul 12, 2010 at 4:52 AM, Binyamin Dissen bdis...@dissensoftware.com
 wrote:

 Say I would like to get control when a specific PRB ends (while the TCB
 remains). Are my choices to either poll or modify the return PSW?




There is no system service or exit that (directly) does what you want. You
can however use a directed SCHEDIRB to plant an IRB between the RB you want
to monitor and the one that it was going to return to. Is it worth going to
that amount of effort?


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: ENQ trap for dynamic allocation

2010-07-07 Thread Chris Craddock

 Perhaps I'm missing something here, but couldn't this be nicely done in
 IEFDB401?

 Some code would be necessary to rattle through the dynamic allocation
 parameter
 list, but on an allocation request, find the DSN (if present) and DISP (if
 present)
 and then, do the actual ENQ on SYSDSN (whatever).  If you get it, DEQ and
 proceed,
 otherwise use the logic you presently have.



Testing can I get the resource by obtaining and then releasing it doesn't
do anything productive, but it DOES drive up resource contention and
overhead. The problem with any such approach is that the state of the
resource is quite likely to be different the moment you release it, so a
subsequent attempt to obtain it would block anyway. There IS a conditional
form of ENQ you can use if you don't want to become trapped in amber while
some paleolithic production job runs all day.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: ECB parameter on attach

2010-07-05 Thread Chris Craddock
On Mon, Jul 5, 2010 at 10:48 AM, Paul Gilmartin paulgboul...@aim.comwrote:

 On Mon, 5 Jul 2010 08:48:38 -0600, Robert Raicer wrote:
 
 You have it just about right.  When the sole remaining RB for the TCB
 issues SVC-3 (EXIT), End of Task processing begins.  This causes RTM
 
 Does an RB issue SVC-3, or is it the task the RB dispatches that issues
 SVC-3?



All programs run under the control of an RB (there are several varieties of
RB, but their differences are irrelevant as far as this discussion goes).
RB's are queued on a TCB so it's a bit of a semantic nit to ask whether it
is the task or the RB doing the thing. To be precise, the program that is
currently running on the TCB (whether it's actually dispatched or not) is
running under the control of the current RB. There may or may not be older
(suspended) RBs chained up behind it. Each of those will in turn regain
control when the RB ahead of it issues SVC 3.

And as a piece of syntactic candy, z/OS and its ancestors always arrange it
so that on entry to a new RB R14 contains the address of CVTEXIT, which in
turn contains X'0A03' which is (drum roll please) SVC 3. So the
program can exit by saving the address in R14 and returning there just
like any other program, or it can simply issue SVC 3.



 Does the RB remain once it has caused the task to be dispatched?
 I would have exepected it would be removed from the queue; deleted.



The RB remains in control until either; it completes its processing and
issues SVC 3, or it is suspended and replaced by another RB, e.g. via a LINK
macro. In the latter case the RB will remain suspended until all of the RBs
ahead of it have terminated via SVC 3. The RB is basically (part of) the
place where the system saves state when it needs to run another program,
e.g. when the current RB issues a LINK macro.



 Would it be clearer to say that When a task issues SCV-3 and no
 undispatched RBs remain on its queue ...?



not really. The task terminates when the last remaining RB issues SVC 3. By
definition there cannot be any undispatched RBs remaining on the queue. RTM
will take care of that behind the scenes for a task that manages to abend
itself into oblivion.



 What happens if a task issues SVC-3 while further RBs remain queued?



What SVC 3 really does is terminate the current RB and returns control to
the previous RB, so basically nothing special happens, the previous RB
resumes execution. It is only when there are NO remaining RBs that the task
gets driven through EOT.



 My uncertainty about the SVC number arose when I was unable to find
 EXIT in z/OS V1R10.0 MVS Assembler Services Reference ABE-HSP.
 Is there no actual service with this name?



Correct, there is no actual service with the name EXIT. Never has been.
Amazing huh?




 When the ATTACHed module is initially entered, GPR 14 contains the
 address to which it is to branch upon its completion, i.e., this is
 the Return Address.  While not part of the documented programming
 interface, this address is generally the address of an SVC 3
 instruction contained in the CVT (field CVTEXIT).
 
 Are you saying that it is unsupported for a module entered by ATTACH
 to exit via R14?  Or merely that it is not guaranteed that a module
 can CLC 0(2,14),=x'0A03' to determine that it was entered by ATTACH?
 http://bama.ua.edu/archives/ibm-main.html



No you cannot determine whether you were entered via ATTACH (at least not in
that way). R14 will point to CVTEXIT on initial dispatch after an ATTACH,
but it will also contain that value on entry for a SYNCH, or a LINK or a
XCTL macro and also, in the case where an IRB is scheduled to the task. The
interface for SVCs that have RBs (type 2, 3 and 4) is more complicated. The
net of it all is, if you needed to know the circumstances in which you were
exiting, you could usually determine it programmatically but not by making
the above mentioned comparison.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Is Commuication ECB valid for subtask

2010-07-02 Thread Chris Craddock


 :In other words Can the communication ECB be posted in the subtasks as
 well

 I wouldn't think so a it is in key0 storage, but as there is bypass code
 for
 wait perhaps there is also bypass code for post.



The communications ECB is indeed in key 0 storage, but the system recognizes
attempts to wait on that specific ECB and treats it as a special case. It
allows any task in the address space to wait on the stop/modify ECB. The
stop/modify function would not be terribly useful otherwise.



 Only one task can wait on it.


True.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Linklst; 6 of 1/half dozen of the other?

2010-06-14 Thread Chris Craddock
On Mon, Jun 14, 2010 at 4:04 PM, McKown, John john.mck...@healthmarkets.com
 wrote:


  I don't like versions in LNKLST datasets.
  I have no problem with them in maintenance or steplibs.
  But, regardless of the HLQ, they should not have versioning
  in the production environment, IMO.

 I agree with you about versions. My manager, OTOH, totally disagrees. So we
 do it his way. And we put the OEM products in the LNKLST so that the version
 numbers are hidden from the users.


It is mostly a religious issue, but for some products there are practical
considerations. If you have (for example) something that starts really early
during IPL processing you have a fairly limited set of choices. Now in
fairness, there aren't too many such products, but it always pays to read
the fine print. Every once in a while when the vendor says they need it to
be a particular way they're right and a one size fits all approach will lead
to tears.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: z/Vendor Watch: zNext or z11? Either Way, It's Coming Soon!

2010-05-25 Thread Chris Craddock
On Tue, May 25, 2010 at 12:31 PM, McKown, John 
john.mck...@healthmarkets.com wrote:

 Depends. What are they running? How do they measure up time? We are still
 stuck in the 1970s for all intents and purposes. We run CICS with VSAM. No
 RDMS. No Websphere. 100% COBOL. We do run some 3270 screen scraping and
 even have a few CICS web like transactions via HTTP. But we have a lot of
 night down-time for running batch reports and updates against the CICS VSAM
 files. This is on CICS/TS 3.2, z/OS 1.10, and a z9BC. Our legacy
 applications are old, old, old.
  http://bama.ua.edu/archives/ibm-main.html



I laughingly refer to this as running in 1985 compatibility mode and
pretty much all but the top tier of customers still run that way.
There's a huge gulf between what the platform is capable of and what people
actually do with it.



-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: LINK Question (SRB Mode?)

2010-05-20 Thread Chris Craddock
On Thu, May 20, 2010 at 2:15 PM, Art Celestini spamb...@celestini.comwrote:

 A colleague has written me about a set of circumstances he is observing:
 Program “A” is authorized, running in Key 7, TCB mode, and issues a LINK
 for
 Program “B”.  When Program “B” gets control, it finds PSATOLD=0 and
 PSASRBM=04.  Program “A’s” state was verified with a S0C1 just before the
 LINK, and Program “B’s” state verified with a S0C1 at entry.

 How could LINK possibly give the target program control in SRB Mode?

 Offhand, I don’t know the z/OS release he is running on but I expect it
 would
 be at least 1.8.


First, let's be clear there is no possible connection whatsoever
between issuing a LINK macro and finding yourself running under an SRB. LINK
is a task-mode-only function and does not result in the transfer of control
to another unit of work. So just abandon that idea altogether. It isn't an
APAR-able IBM bug, or some alien conspiracy. I don't care what z/OS release
it is, I would guarantee sight unseen that it has NOTHING to do with a bug
in the dispatcher. The world as we know it would end if that were ever
true.

One of two things is true. First, assuming the SRB-mode condition is
accurately reported, then the only explanation is that some other unit of
work (directly or indirectly) scheduled Program B as an SRB. Any temporal
relationship to the LINK macro also being issued for Program B is
coincidental. The second (and I believe more likely) case is that the
environmental conditions are just not accurately being reported. Program B
is getting control under a new PRB in the same task that issued the LINK
just like it has since the beginning of time.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: *MASTER* ... again

2010-05-12 Thread Chris Craddock
On Wed, May 12, 2010 at 8:31 AM, Shane Ginnane ibm-m...@tpg.com.au wrote:

 mounts hobbyhorse
 As has been discussed here before, seems every half-baked software
 developer (and more than a
 few fully baked ones) seem to think ASID 1 is the perfect place to drop a
 long lived RB rather than
 make it obvious to the customer what is happening.

 Couldn't possibly cause a problem ... as has been re-iterated here
 incessantly.

 /mounts hobbyhorse

 Shane ...

 On Wed, May 12th, 2010 at 11:16 PM, Mark Zelden wrote:

  Do you have any tso app running under master?  (perhaps an
  automation product or TSSO)?




Ok, while you're dismounted... let's all take a nice deep breath and relax.
For those who don't know; Running UNDER the master subsystem (i.e. START
YOURSTCNAME,SUB=MSTR) has nothing whatsoever to do with running IN the
master address space. There are perfectly sound reasons why a product
(especially an automation or monitoring product) would NEED to run that way
- usually because the product needs to run during the IPL/startup phase
before the JES is up and fully functional, or it needs to run during/after
JES termination during system shutdown. It ought to be pretty obvious that
running under the default (SUB=JES) isn't even viable for things like that.

And while you're pondering that one, consider for a moment that every single
SSI and RESMGR end-of-memory exit actually DOES run in the master address
space. The great grubby and unwashed masses of systems software products use
those capabilities utterly routinely and yet the world does not tilt off its
axis. And there are other things that run there too. I'm not advocating that
people become cavalier about running in master, but seriously that's how the
system has worked, literally forever. So chill already.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Accessing Cross Memory Storage in REXX

2010-05-12 Thread Chris Craddock
On Wed, May 12, 2010 at 12:28 PM, Rick Fochtman rfocht...@ync.net wrote:

 -snip-

 Notice that I said Legal. Nothing else is supported by the z/OS software
 architecture - regardless of whether something else is possible under the
 hardware architecture. Any grinning idiot with an APF library can study
 PoPs
 and contrive ways of gaining addressability to some other address space,
 but
 since z/OS doesn't know (or allow!) what you would be doing, the results
 are
 most kindly described as unpredictable.



 unsnip-
 Chris, I don't think the various z/OS routines invoked by PC are scheduling
 SRB's just to fetch their parameter lists. I'm sure there are other
 mechanisms, perhaps using MVCS/MVCP, that are more efficient than just
 scheduling a Global SRB. Perhaps some of our friends at IBM can provide some
 enlightenment.

 I notice that in some areas, PC is replacing SVC to invoke a service; about
 time!. SVC's are incredibly slow, because of the interrupt processing
 overhead, both software and hardware.

 I've even seen systems that use a BAL to a specific low storage address
 that ran MUCH faster than equivalent SVC functions. While I agree that
 coding technique have MUCH to do with efficiency, in this particular
 instance, hardware functions much also play a significant role.



Space-switching PC routines don't need to invoke SRBs to access parameter
data in their caller's address space because addressability to the primary
(PC-server) address space is established by the PC instruction and
addressability to SASN and HASN are automatically available. The mechanisms
needed to manage that cross-memory environment are formally established and
managed by z/OS cross-memory services, so it is all legal.

What ISN'T legal is any variation of the common techniques for bypassing
formal xmem interfaces and snooping into another address space by doing SSAR
or ALESERV ADD,CHECKEAX=NO. (Aside: the fact that the CHECKEAX option is
documented does not mean you're supposed to use it. It was intended for
internal use and it escaped.) As I said already, the only legal way to
poke around in another address space (without going to cross memory
services) is to schedule an SRB into the desired address space. It is true
that people have exploited the hardware architecture to avoid doing the
right thing, but that isn't supported by z/OS and the results of doing that
are (believe it or not) very likely to be dangerous.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Accessing Cross Memory Storage in REXX

2010-05-11 Thread Chris Craddock
On Tue, May 11, 2010 at 9:52 AM, Ray Overby rayove...@comcast.net wrote:

 My understanding is if the target address space is non-swappable then you
 can safely use non-srb code to obtain access to the other address space's
 private area. I believe the unpredictability comes when the target address
 spaces are swappable. Depending upon your application requirements non-srb
 code may in fact work. For example, address spaces with a system LX that
 support space switch pc routines will always be non-swappable. If your
 application required data from these address spaces you should be ok. There
 are other address spaces that normally run non-swappable. However, you could
 not access all address spaces with this technique. For swappable address
 spaces you should use SRB code. As usual, it depends upon your
 application.



Non-swappability is necessary but not sufficient. For example, the
application running in address space with ASID=26 could terminate while
you're looking at it and be replaced by another application running in the
same ASID because z/OS likes to reuse ASIDs. There is anti-aliasing support
on z10 systems and (I think) some z9s, but that's yet another detail where
you'd be shooting in the dark. If you were playing by the rules and the
target address space was a cross-memory resource owner, the system would not
reuse the ASID - which is why you have to follow the rules. You might get
away with it for a long time, but sooner or later you'll get bitten and the
results might be ugly.

The fact is, the z/OS cross-memory architecture was never designed to
support establishing addressability between address spaces where the target
address space is not officially designated as a cross-memory resource owner
- all of which is done under the covers by the PCAUTH address space when you
set up your linkage indexes and PC entry tables. As many people have
discovered, the hardware has no such restriction on cross-memory
addressability because it is designed to support a variety of software
architectures, not all of which may be supported by a given operating
system.


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Accessing Cross Memory Storage in REXX

2010-05-10 Thread Chris Craddock
On Mon, May 10, 2010 at 4:37 PM, Rick Fochtman rfocht...@ync.net wrote:

 -snip

 Highly unlikely unless I'm missing something obvious. The only LEGAL way to
 access memory in some other address space is via an SRB. You need to be in
 sup state and key zero to schedule an SRB and REXX runs key 8 and problem
 state. But if we're allowed to cheat then I'll play :-)

 PS I didn't know there were any mainframe people at Queens...
 ---unsnip---
 Not strictly true, but the mechanisms are NOT for the meek! I've found
 other ways but in the interests of safety, I'll not share them.



Notice that I said Legal. Nothing else is supported by the z/OS software
architecture - regardless of whether something else is possible under the
hardware architecture. Any grinning idiot with an APF library can study PoPs
and contrive ways of gaining addressability to some other address space, but
since z/OS doesn't know (or allow!) what you would be doing, the results are
most kindly described as unpredictable.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Accessing Cross Memory Storage in REXX

2010-05-09 Thread Chris Craddock
On Sun, May 9, 2010 at 9:16 PM, Lorne Dudley dudl...@queensu.ca wrote:

 The October 2001 issue of the Xephon MVS Update 181 contained REXX Cross
 Memory assembler subroutine code allowing access to information in other
 memory spaces by ASID.

 I was never able to get this to operate properly.

 Has anyone had any success with this or do you have some equivalent code
 that you can share ???



Highly unlikely unless I'm missing something obvious. The only LEGAL way to
access memory in some other address space is via an SRB. You need to be in
sup state and key zero to schedule an SRB and REXX runs key 8 and problem
state. But if we're allowed to cheat then I'll play :-)

PS I didn't know there were any mainframe people at Queens...


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Pause Elements

2010-05-07 Thread Chris Craddock
On Fri, May 7, 2010 at 2:13 PM, Blaicher, Chris chris_blaic...@bmc.comwrote:

 I have a TCB and a SRB process and want to suspend one and let the other
 proceed and then reverse it and do that over and over.

 The following pseudo code assumes knowledge of
 IEAVAPE/IEAVPSE/IEAVXFR/IEAVRLS/IEAVDPE:

 TCB:
Allocate a PE for the TCB
Start a SRB
Wait for SRB to init
SRB:
Allocate a PE for
 SRB
POST TCB's WAIT
PAUSE the SRB
  TAG1-
Do some work
XFER to the SRB

Do some work
XFER to TCB
If more to do
  Loop to TAG1
ELSE
  Release the SRB  indicate stop
WAIT for SRB to post
Free SRB PE
POST TCB's WAIT
Return
Free TCB PE
Return

 Another way to do this is just schedule an SRB for each time I want to do
 some work, but using IEAVXFR is supposed to be a lot less expensive.

 I can get it to do it once, but after that it gets all balled up.  The
 manual does not cover this in their examples.
 http://bama.ua.edu/archives/ibm-main.html



Been there done that and you have the source code in-house to go peer
at. Take a look at the RTCS source code. Most of what you need to know is
inside OSZTASK and OSZNOTFY (which both work in SRB mode btw). I'm guessing
you're missing the point that you get a new pause token when you come out
the other side of PAUSE and that new token has to be conveyed (somehow) to
the other UOWs that will subsequently attempt to call RELEASE. And if
there's any possibility of a race condition between posters (callers of
RELEASE) you have to make allowance for that.

Call me if you get stuck.

-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: how big is big?

2010-04-28 Thread Chris Craddock
On Wed, Apr 28, 2010 at 12:58 PM, Kirk Talman rkueb...@tsys.com wrote:

 what is the size (in mips?) are the datacenters or companies that it takes
 to make the 1st, 2nd ... quintile?  Is that published?



well if you figure on a single z10-EC engine being O(1K) old fashioned
meaningless thingies and then do the math you come up with a number that is
O(bloody big).


-- 
This email might be from the
artist formerly known as CC
(or not) You be the judge.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Calling unauthorized code from an authorized address space

2010-04-25 Thread Chris Craddock
On Sat, Apr 24, 2010 at 2:17 PM, Binyamin Dissen bdis...@dissensoftware.com
 wrote:

 :  There is no way to dance around it or pretend
 :otherwise. The only way you could avoid the exposure would be to
 guarantee
 :that no authorized code code could ever run within the address space
 after
 :you have allowed the unauthorized code to run. There is no way to
 guarantee
 :that in general and in any case, it would effectively eliminate the value
 of
 :that address space as a server for hosting this function.

 Why this requirement?


It is fairly clear that it is a requirement for the OP's proposed
application - else why bother with the elaborate schemes to temporarily
remove authorization? He wants to run his authorized code and his client's
unauthorized exit code within the same address space, presumably without
restarting his server address space each time he gets a new client request.
And since that can't be done safely, there's no point.



 The only case that leaves open is a garden variety key 8 APF authorized
 :address space. If you turn off JSCBAUTH before invoking the unauthorized
 :code, then it is true that code would NOT be able to MODESET to a system
 key
 :or get into supervisor state while it is running, however that isn't the
 :only exposure. While they are running, they can easily diddle with the
 data
 :belonging to the other tasks providing the privileged application
 :functionality in that space. Most of the system owned data areas will be
 key
 :0, 1 or 5 (and thus whey would be safe) but most of the areas owned by
 the
 :worker tasks will be in key 8. All of those areas would be susceptible to
 :modification by your unauthorized code when it runs. If such a
 modification
 :occurred and ANY privileged code continued to run, their data would
 :potentially be invalid and that is an integrity violation in and of
 itself.
 :Beyond that, a little creativity would get your unauthorized code back in
 :control in a privileged condition - thus violating integrity.

 Why must the authorized work areas be in key 8?


It isn't that they MUST be. Merely that the (initially APF-authorized)
application running within the address space WILL get key 8 storage for
every task or step-owned low private subpool allocation UNLESS it goes out
of its way to run in a system key and use only key-selectable subpools (kind
of an odd exercise given they chose not to have a system key assigned via
PPT, but I'll play along). However, even if it did attempt to avoid using
task-key storage there would still potentially be an unknowable number of
task or step owned data areas laying around in key 8. That's the deal
breaker. If you let unauthorized code run within that same address space,
you cannot guarantee that the unauthorized code won't be able inspect or
modify the authorized application's data. In fact, it is guaranteed that the
unauthorized code could do exactly that, which is by definition an integrity
exposure just on its own merit.

But even worse, if any of the APF application's tasks had already switched
to supervisor state and continued to run during or after when the
unauthorized code had been allowed to run, then there's a very high
likelihood that the unauthorized code could fool that supervisor state code
into violating integrity. You could do it. I could do it. There just isn't
any safe way to avoid that in general. There are too many moving parts in a
typical address space and not all of those parts (e.g. home grown exits
and/or ISV code) are going to be in on the secret of what's supposed to be
going on. Disagree if you like but you would be flying in the face of
literally decades of integrity studies. While we're at it, let's not forget
that (again, unless the authorized application goes out of its way) the
unauthorized code is going to get control with the security identity of the
server where it is running (usually some sort of production ID) Of course,
that can be handled too, but the number of things that have to go just right
in order for the OP's idea to work out is enormous and it only takes one
slip for the whole house of cards to fall down.



 :Removing authorization must therefore be a complete one-way trip
 :because other tasks in the address space may have already switched into
 :supervisor state and be running independently of your unauthorized code.
 I
 :am deadly serious about this. If you (knew enough to) do the thought
 :experiment you would soon realize that there is literally no way to
 prevent
 :these exposures. Abandon hope.

 False.

 : Abandon hope.

 It won't be easy.

 : Now a question about TCB creation.  After control is returned from the
 : problem state program to the caller, it should be possible to see if it
 : ATTACHed any new TCBs.  If new TCBs were created, I could abend the
 entire
 : process instead of flipping the JSCBAUTH bit back on.  This would
 ensure
 : that when the user exit returned to the caller, none of the 

  1   2   >