Re: Writing ISPF VDEFINE user exits in C

2010-01-11 Thread Tom Quarendon
> Can you provide some type of call hierarchy diagram (labeling the various > levels with Language/Run time environment used) so we can see how program > flow from top to bottom? > Thanks. C main: Declare a suitable C variable, say a char[8] Call ISPLINK to VDEFINE the variable to ISPF setting typ

Re: Writing ISPF VDEFINE user exits in C

2010-01-11 Thread Tom Quarendon
>If that's the cast you need CEEPIPI. Call it once to initialize the >persistent LE environment and then to call your routine with the >environment token. You will have to stash away the environment token >somewhere, name/token services should work. CEEPIPI will initialise me *another* LE environm

Re: Writing ISPF VDEFINE user exits in C

2010-01-08 Thread Tom Quarendon
>IMO, writing an exit in LE C/C++ just isn't worth the hassle. To write a >proper glue code stub you will need to call your C program via the LE >CEEPIPI service. Trying to get the CAA from the TCB is a shot in the >dark as each ISPF screen runs in a subtask, and IIRC using the SELECT >CMD(...) ser

Writing ISPF VDEFINE user exits in C

2010-01-07 Thread Tom Quarendon
rate LE enclave is really not helpful anyhow as I want access to the global variables that I might have set before I called into ISPF. Any wisdom would be gratefully received. Tom Quarendon.

Re: Non-reentrant code question

2009-01-16 Thread Tom Quarendon
Don't think it is actually reentrancy that was my problem. I thin kmy problem is my inability to determine where my problem is. I've got quite a complicated environment (c, c++ and assembler, xplink, c linkage le compliant, and plain os linkage), so detemining why my program falls over is rather

Re: Non-reentrant code question

2009-01-16 Thread Tom Quarendon
That was a deliberate bug left in to test how much notice you where paying :-) I did indeed mean USING FRED,11 I've still got an issue, but I need to refine exactly what it is... Cheers. Gerhard Postpischil wrote: Tom Quarendon wrote: does I get a segmentation violation at the

Non-reentrant code question

2009-01-16 Thread Tom Quarendon
I've got an issue trying to make use of a piece of assembler code that's coded in a non-reentrant style. Specifically the code doesn't allocate a save area dynamically, it just allocates space in the CSECT for it. I've got a driver program in C that's trying to call the code and when it does I

Re: Channel Programs being "purged"

2008-04-25 Thread Tom Quarendon
It turns out that the problem is that I was executing some channel programs, and subsequently calling EOV without first WAITing for the programs to finish. Word from IBM is that EOV will purge any outstanding programs, halting them, and not posting the ECB on the basis that you called EOV so you

Channel Programs being "purged"

2008-04-23 Thread Tom Quarendon
ter wait on the ECB to see it's complete 4. check the completion code and sense bytes for error. which is basically what the documentation says to do isn't sufficient. You need an unspecified step 2a, "check for some unknown conditions and perform some unspecified reco

Re: getting gmake on z/OS Unix

2008-03-13 Thread Tom Quarendon
We use gmake on z/OS -- there's no installation necessary per-se -- it's just a single binary executable. You can get the source and/or compiled executable from http://www-03.ibm.com/servers/eserver/zseries/zos/unix/redbook/index.html#gmake along with a whole bunch of other useful gnu stuff. -

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
Don't confuse random access with BDAM. We'll you'll have to tell me what I am confusing then because I don't understand what you mean. Educate me on the difference between direct access and random access then. No, there is a TTR. No, there is a TTTR. I'm using the offset +12 CVTPCNVT entry poin

Re: SPAM: Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
I'd expect better performance from ESDS or RSDS than from EXCP. Not in our experience. We've tried all possible forms of I/O and LDS was certainly the best when it comes to VSAM. zFS is implemented as VSAM LDS files and I assume that they know what they are doing. from recollectin ESDS and RR

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
I think you missed the point - no dynamic allocation, as that would just get you back where you started. All you need is another DD, with DISP=OLD, and no catalog access (i.e., explicit unit and volume) to modify the JFCB for. OPEN won't know or care that it's a multi-volume DS, and just build the

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
As I see it you've been trying to fit a square peg into a round hole. Doesn't seem like square peg and round hole to me, actually it all seems to work quite neatly, just so long as the dataset is DISP=OLD. Try something completely different: let your current output file be DD OUTFILE, with DI

Re: SPAM: Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
What you should see is a single DEB that shows ALL the extents, on ALL the volumes. you should be able to loop through all the extent descriptors in the DEB, calculating the extent numbers and CCHHR values in a fairly simple fashion. This will also help you detrmine the correct extent number. T

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
I don't know how to open the data set in such a way, nor do I see why you need to do so. Suppose there are 16 volumes in the data set and each volume has 16 extents. Your DCB has a DDNAME=WHATEVER. Your DD statement for WHATEVER points to the data set name. You OPEN the DCB. Your DEB th

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
I think that you misunderstand. No. Then I misunderstand you then. Don't confuse random access with direct access. I don't think I am. I'm not trying to use BDAM. However I am trying to access a direct access storage device with EXCP, non sequentially, i.e randomly. How do you think I'm c

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
I've tried a number of things, but typically just VOLUME=SER=(volser1,volser2,volser3,volser3) I've also tried UNIT=(SYSDA,4) VOLUME=(,,,4) and I get the same problem. J R wrote: Are you specifying vol-count on your allocation? What does your allocation look like? ___

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-04 Thread Tom Quarendon
What Shmuel was pointing out that if you have the data set open normally, the DEB will have extent entries for each extent on each volume. Then the M will point to the m+1 th extent of the data set; if the DS has one extent per volume, then M=2 will address the 3rd volume, etc. If you've been

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-02-03 Thread Tom Quarendon
Probably because you're using the wrong tool. And the "correct" tool in your opinion is? What do you mean by that? The OPENJ does not[1] change the TIOT, so you're still pointing to the same UCB's as before. Since MVS no longer supports mountable DASD, that means that you can only succeed in ch

Re: Finding EXCP count for my own program

2008-01-30 Thread Tom Quarendon
r. Anyhow. Thanks for the help. Tom Quarendon wrote: Right. I think that's what I need. Thanks. Just for completeness I guess 0 ==> PSA PSATOLD ===>A(TCB) (more for my own benifit that bit). __ This email ha

Re: Finding EXCP count for my own program

2008-01-30 Thread Tom Quarendon
Right. I think that's what I need. Thanks. Just for completeness I guess 0 ==> PSA PSATOLD ===>A(TCB) (more for my own benifit that bit). Tom Harper wrote: Tom, TCBTCT ==> A(SMFTCT) TCTCRTBL ==> A(TCTCORE) Then TCTIOTBL ==> A(TCTTIOT) And TCTIODSP is the start of the DD lookup table Then TC

Finding EXCP count for my own program

2008-01-29 Thread Tom Quarendon
Is there any way if finding out what the EXCP count for the program that I'm running currently is? I've searched the IBM documentation and I don't seem to be able to find anything obvious. What I want to do is break down the program for diagnostic purposes and produce a print out after each "st

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-01-15 Thread Tom Quarendon
I don't have access to my docs right now, otherwise I would have specified the bit, but JFCVSL sounds correct. It needs to be set on any OPEN when there is a changed data set name or serial. I seem to recall setting it for a changed member name also. I've tried setting the JFCBVSL flag before

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-01-14 Thread Tom Quarendon
Dumb question: While you're doing this random access, is there any data at the points you're trying to access? Most, though perhaps not all, random access dataset have data pre-loaded, or at least the areas being accesses are pre-formatted. We need more information about what you're trying to a

Re: Trouble opening specific volumes with OPEN TYPE=J

2008-01-14 Thread Tom Quarendon
I haven't and maybe that what my problem is. The documentation as far as I can see makes no mention of that, at least not in the example in chapter 7 of DFSMSdfp Advanced Services. Do you mean the JFCVSL bit in JFCBTSDM? You mean that the problem is that it doesn't realise that I've added a ne

Trouble opening specific volumes with OPEN TYPE=J

2008-01-14 Thread Tom Quarendon
I'm trying to write some code that performs random access I/O on a multi volume dataset using a technique similar to that described in chapter 7 of DFSMSdfp Advanced Services, and am having mixed results. The code all works just fine, so long as the dataset I'm dealing with exists already, or

Finding subsequent JFCBX control blocks

2008-01-11 Thread Tom Quarendon
I have a quick question about how JFCBX control blocks are chained together. If a dataset has more than 5 volume serial numbers, the JFCBEXAD field in the JFCB gives the SVA of the first JFCBX control block which contains overflow volume serial number information. However the definition of the

Re: Exploiting Parallel Access Volumes

2007-12-18 Thread Tom Quarendon
then you might want to try creating at least one PAV alias for device X. I guess this maybe anwsers one of my fundamental questions about PAV. There is something that needs to be configured on the machine in order to exploit PAV? The system programmer needs to set up aliases to certain devi

Re: Exploiting Parallel Access Volumes

2007-12-17 Thread Tom Quarendon
There's no reason you can't issue multiple EXCP's against the same DCB before issuing any WAIT's. IOS will queue the requests in the order they are received and if the requests are eligible for PAV processing, IOS will take care of it for you. Much ado about nothing here ?? Remember that even w

Re: EXCP issues

2007-12-17 Thread Tom Quarendon
> You need to support MIDALs in your channel program in order to obtain > minimum elapsed time if your data is ever attached to the LPAR via > FICON channels. That means you must use some access method other > than EXCP. EXCPVR and STARTIO will work, but they are both > authorized. Always an

Re: EXCP issues

2007-12-17 Thread Tom Quarendon
> XDAP is just a fancy form of EXCP, with the XDAP macro generating the > channel program. Rather than going Class-C, I would expect it to be > extended, along with basic EXCP, to handle 31 bit addresses and > Format-1 Channel Programs. Yes, XDAP is just a "helper" for writing your (simple) chann

Re: EXCP issues

2007-12-17 Thread Tom Quarendon
> It sounds like you're using Seek-SearchID-Tic-WriteCKD(s) (a.k.a. CKD > channel programs) I am using Locate Record-Write programs. The effect is the same in the sense that the Locate Record performs a seek and establishes orientation and you want to try and avoid doing anything that resets o

Re: EXCP issues

2007-12-17 Thread Tom Quarendon
Using command and data chaining, you can write a whole cylinder with a single EXCP. That enough? You can write a whole extent as far as I understand it if you want to. (EXCP automatically executes a Define Extent based on the initial seek address you give it, and whilst it doesn't say so explici

Re: EXCP issues

2007-12-17 Thread Tom Quarendon
But I can write a single channel program that performs one disk seek followed by writing multiple records to multiple consecutive tracks, without intervening seeks. That's going to be quicker than executing multiple channel programs each of which does a seek and then a single write. It IS quick

Re: EXCP issues

2007-12-17 Thread Tom Quarendon
You can reduce the EXCP count to zero, if you want to go that far, by using STARTIO. However, there is no automatic support for data set extend with STARTIO. The mechanism in SMF that counts EXCPs attempts really to count blocks transferred rather than invocations of EXCP. It all depends o

Exploiting Parallel Access Volumes

2007-12-17 Thread Tom Quarendon
Since I got such a good response from the last question, here's another. My understanding of channel program execution is that there is one queue per UCB, i.e per volume. In other words there isn't a huge amount to be gained by executing lots of concurent channel programs to the same file (you

Re: EXCP issues

2007-12-17 Thread Tom Quarendon
I was managing my DCBFDAD field, and I was setting the flags corretly (or rather just leaving them well alone). The problem I was having was that I was openning the dataset for UPDAT rather than OUTPUT. Doesn't seem to make a difference to what you're allowed to do with EXCP (you can still exec

Re: EXCP issues

2007-12-16 Thread Tom Quarendon
I looked at XDAP, but the fact that you can't extend the dataset is a problem. Also I wanted to be able to be optimal in terms of reading and writing multiple blocks at a time to reduce the EXCP count as much as possible. EXCP is the only think that gives you this level of control. (IBM Mainfr

Re: EXCP issues

2007-12-16 Thread Tom Quarendon
Gerhard Postpischil wrote: Tom Quarendon wrote: IIRC, there is a bit in the DCB that indicates that the last access was a write; it's set by the xSAM routines, but needs to be explicitly set when you're using XDAP or EXCP (I don't have access to my materials right now, sorry)

Re: EXCP issues

2007-12-16 Thread Tom Quarendon
We tried various things originally, and VSAM LDS is the best fit as far as a VSAM file goes, and we've got an implementation of what we ned using VSAM LDS and it works fine (copes with >4GB files multivolume easily without having to do anything in the application, just so long as you don't use DIV

Re: EXCP issues

2007-12-16 Thread Tom Quarendon
It does work, however there seem to be some restrictions, like the need to close and reopen the dataset using BSAM in order to extend the file. It's also unclear how well BDAM supports large files (multi volume, large format, etc). Addressing is either by TTR, limiting to 65636 tracks, and else wh

EXCP issues

2007-12-14 Thread Tom Quarendon
I'm writing some code to do random access file I/O using EXCP and generally all is going well, but I have a couple of issues. I'm managing the dcbfdad field of the DCB as I write the dataset, but the ISPF dialogs always report that the dataset space utilisation is 0. Allocation reports OK, but