Duplicate VOLID's
There is my post of Thu, 20 Nov 2003 07:34:22 -0500 Richard Corak
Re: PGT004 MESSAGE
No need forCP START DASD rdev PAGE CP START DASD is nothing more than undrain. If you haven't done DRAIN, don't bother with START. Edits to Mike's sequence: - Find an available DASD volume accessible to your z/VM system. - Find (or decide on) a label volser for the soon-to-be paging volume - Run CPFMTXA against that DASD, formatting the whole thing, assigning the label as decided above, and allocating - Cylinder zero as PERM, and - 1-END as PAGE. - DETACH that device from the ID that formatted/allocated - Update your SYSTEM CONFIG file on MAINT's CF1 disk using whatever procedures you already use. E.g. - Find a free CP_OWNed 'SLOT', and change that to match the new page DASD volser, and mark that as OWNED, e.g. if volser is VMPG01 and slot 11 is not already assigned CP_Owned Slot 11 VMPG01 OWN - File SYSTEM CONFIG, run CPSYNTAX against the updated SYSTEM CONFIG file to check for errors. - As long as there are no errors, bring the volume online to CP by entering: CP ATT rdev SYSTEM Richard Corak
Override file/modify command
Also might try LOCATE CMDBK command Richard Corak
Midnight message
maybe SET VTOD would be more appropriate for testing? Richard Corak
Resizing TDSK on active system
Actually, CP will read the allocation map when the device is attached to SYSTEM, which could happen at IPL, or by command. Richard Corak
Adding Slots for CP volumes in the System Config
No, you cannot define new slots on the fly. 255 slots consume about 4 contiguous pages of storage. I believe that there are CP commands to DEFINE new CP_OWNED slots = dynamically. But I'm sitting on the couch typing on a Blackberry, so have = not checked the CP Commands and Utilities manual. I'm getting older and = could be misremembering. Richard Corak
Paging
Were there any EREP messages? Any report of where the bad spot on DASD might be? It could be instructive to examine the track in question, if it can be identified. Richard Corak
Re: Make me abend, please
Store into the new EXT pswg: CP ST HL1BC 001 (that's Host Logoical 1BC) causes prog 6 Richard Corak
Re: Question about TIMEZONE
While waiting for Server Time Protocol from Santa, investigate the DEFINE TIMEZONE command. In general, CP reads SYSTEM CONFIG only at IPL. TIMEZONE statements, CPOWNED lists, etc., are processed only at IPL. Generally, for dynamic changes, there are separate commands. Always remember the proper sequence: - prepare the environment (like, format the DASD that is to become CPOWNED) - prepare an updated SYSTEM CONFIG - run CPSYNTAX - place the updated SYSTEM CONFIG on the PARM disk(s) - issue the dynamic commands (like DEFINE TIMEZONE, SET TIMEZONE, DEFINE CPOWNED, ATTACH, whatever) Richard Corak
Re: Question about a user volume
Not exactly. Changing the contents of the CP_OWNED statement, including deletion, affects only that statement. But that's not as simple as it might appear. Spool files can span CP_OWNED volumes, so if CP needs to fetch the next record for the spool file by going to the volume at slot 'n', and there isn't a slot 'n', or it's a different volume so the needed record isn't there, you lose the spool file. Deleting the statement for slot 'n' doesn't automatically affect any other CP_OWNED volume, but can affect all your spool files, and could mean that you have no object directory. Richard Corak A word of caution, however. Don't just delete that line in the CP-Owned list in SYSTEM CONFIG, especially if there is a volume later in the list that contains SPOOL space. You would lose all the spool files in the later volume. Just change the volid in that slot in the CP-Owned list to Reserved, rather than removing the slot.
Question
Perhaps I could suggest that one not use as subject a content-free term like question. I'm guessing that the overwhelming majority of threads start with a question. We might all be better served with a subject line that does, in fact, mention the subject. Richard Corak
Re: Eliminating DASD at IPL
Scott, The goal of SYSTEM CONFIG is to be empty. That is, you don't specify anything, and CP still runs. Obviously impossible. In reality you should be required to specify only what CP can't figure out. So, by default, every device is sensed to see what it is; every device that can be brought online is brought online. The hope is that the person who maintains SYSTEM CONFIG not be bothered by mundane things like changes in device addresses. ACCEPTED exists only to undo NOTACCEPTED. ONLINE only to undo OFFLINE. etc. One could argue that this concept of do nothing could have been applied to other things, like USER_VOLUME_INCLUDE. But it wasn't. C'est la vie. Richard Corak
Re: mixed case messages
Since one might have as many as RDR files, this EXEC could be inadequate to retrieve everything. Consider a QUERY FILES first. Even though the output from QUERY RDR isn't 100 bytes, I use the extra size for self-defense. /* R E X X */ Address Command 'PIPE CP QUERY FILES *', '| SPECS W2' , '| VAR N' 'PIPE CP' 100*N 'Q RDR * ALL', '| drop 1', '| xlate 54-71 a-z a', '| locate 54-71 a', '| spec w2 1', '| stem files.' Richard Corak
HCP743E from DIAL command on Integrated 3270 Console
The code you are proposing to modify was likely written before the Integrated 3270 Console existed. The writers of the code did not prevent using the DIAL command. They just never allowed it. Some future release of VM will probably include that capability. I don't know why, but HCPDIA specifically looks for, and rejects, integrated 3270. Richard Corak
Re: IBM's Next Generation Mainframe Processor
Size doesn't matter, but people like to talk about it. I suppose we should knuckle down and define a new eHG (e-holy grail) that is a function of CPU speed, disk access time, bus latency, memory latency, number of peripherals, wind direction, amount of local disk storage, number of tape drives, power consumption (kwh), mean age of programmers who wrote the code you're running, and the number of cubic meters it all occupies based on cabinet dimensions, the air-speed of an unladen *African* swallow (in April, of course), and total length of cables. Is this called a benchmark? Richard Corak
CP variables (was D/R Code)
This idea needs work, but I was thinking about a CP REXX command, where the operand would be a single REXX statement. If that statement set a variable, then that variable would be available to subsequent statements. A variable would normally be local to the executing userid, even if the userid were SYSTEM, as during IPL. Any local variable value could be exported for global usage; any global variable could be imported for local usage. The arguments to CP REXX could be EXEC something. Where something would be a REXX program that could come from 1) current CP accessed disks 2) user's own SPOOLed PUNCH file So, I could have in SYSTEM CONFIG REXX DR = 1 EXPORT DR Tells the world thereafter that this IPL is real Disaster Recovery situation. But if I can't update SYSTEM CONFIG before the IPL, the operator could issue CP rexx dr=1 /* DR is now a local variable */ cp Export dr /* DR is now also a global variable */ cp rexx drop dr /* reclaim CP storage for the local variable */ Or maybe a single statement:CP REXX EXPORT DR = 1 but I don't like that. and achieve the same thing. Anybody could write a rexx exec to check for Disaster Recovery mode: /* what's going on? */ cp import dr if ( dr = 1 ) then do CP MSG OP We are in Disaster Recovery mode! CP MSG OP I will now start the DR TCPIP end else do ... something else end Another use could be by individual users. One local usage could be tracing 2nd level. Say my CPXLOADed command were loaded at x1234000. Say I wrote a RREXX EXEC earlier and PUNCHed it to myself, with name DX CPREXX. Then, I could cp rexx b = '1234000' cp rexx cp trace i range d2x(x2d(b)+x2d(1c0)) cmd rexx exec dx When execution hit 12341c0, my PUNCH file DX CPREXX would be executed as a CP REXX thing. Exectly what DX CPREXX looked like and what it could do still needs to be defined, but I'm sure you see possibilities. Richard Corak
system config file
The SYSTEM CONFIG statements are intended to be parsed like REXX statements. Things in quotes remain as-is, otherwise each token gets folded to uppercase. In theory, you could specify cpowned slot 99 'a B c' and get a really bizarre volume label. Whether CP could use such a specification is another question. Richard Corak
Using ALL Module and XEDIT in an EXEC
You need to visualize which program is doing what. When you are entering commands interactively, XEDIT is reading your input and looking for XEDIT things: XEDIT commands and macros (like ALL XEDIT). When an EXEC runs, the EXEC interpreter is reading the file and looking for EXEC things, like CMS modules. What you need to do is to get the EXEC interpreter to put the XEDIT input into a place where XEDIT will read from. A buffer is the answer. Once you've placed your XEDIT commands into a buffer, you then invoke XEDIT and it will read the buffer and do XEDIT things. /* example */ MAKEBUF buf = rc queue SET ZONE 12 13 queue ALL /02/ queue DEL * queue FILE XEDIT someFN someFT someFM DROPBUF buf By the way, when a buffer is emptied, XEDIT will read from the next, then the next, etc., and eventually from the terminal. If you don't have an XEDIT command that tells XEDIT to finish (like FILE or QUIT or QQUIT), XEDIT will exhaust the buffer(s) and read from the terminal, which will be confusing if you're not expecting it. This can easily happen if you've changed the file then tried quit. Quit won't quit if the file has changed, which means XEDIT continues reading. Also, you can use this MAKEBUF/queue/DROPBUF technique for most any program that takes its input from the terminal. Someone may give an example of mixing address command and address xedit in the same EXEC, but I don't do that. If someone does give such an example, we'll all be richer. Richard Corak
autolog profile exec logic
CP QUERY IPLPARMS has nothing to do with the system name. If your convention is FN maps to system name, that's OK for you. But FN is not the system name. CP QUERY GATEWAY may give some system name somehow. Not familiar with all that GATEWAY implies. CMS IDENTIFY says how CMS maps virtual CPU ID through SYSTEM NETID file. This gives some system name, but maybe not the one you want. CP QUERY USERID gives the system name as set by the contents of SYSTEM CONFIG. How an application like TCP determines its version of system name may dictate how you determine system name. Richard Corak
Logoff force pending
All CPHX does is set a bit that some commands check. If the command checks the bit and finds it on, then the command decides to quit. CPHX does not forcibly terminate anything. Richard Corak
OK Pipers, a new challenge
009 FILES PURGED Where is this coming from? Looks like CP output, not CMS. Richard Corak
Re: The History of Computer Role-Playing Games...
I and a colleague extended the PLI version of Adventure to include a helium balloon and Davy Jones' Locker, among other things. For me, it was more fun writing the code that it was playing the game. I still have hardcopy of the source code and the database. Richard Corak
CMSCALL return code
If your habit was to use L Rx,=X'...' you were probably lucky in the old days the =X literal would not necessarily be word-aligned, causing two fetches to load the register, or, in the days when alignment really mattered... a program exception. Not true. Assemblers going back to F (anything before?) have always ordered literals by alignment. Any 8-byte-multiple literal will be aligned on an 8-byte boundary, regardless of how defined. Then all 4-byte-multiple literals not a multiple of 8, then all 2-byte-multiple not x4 or x8, then all 1-byte-multiple literals. So, a literal =X'12345678' or =X'12,34,56,78', etc., will be 4-byte aligned. Richard Corak
CMS Make
Manual scanning of the source is painful, Actually, it's rather easy. I have a 300 line REXX command that reads a list of LISTING files, reads the LISTINGs, parses the Macro and Copy Code Source Summary section, extracts the entries, and builds dependencies (in my personal format). Richard Corak
CMS make
What services exist to build dependencies for things like COPY files or MACROs, including inner MACROs within inner MACROs? The idea behind 'make' has always been a good one, but I never liked maintaining dependencies manually. Richard Corak
Suppressing PER messages
'PER DIAG 58 PRINTER CMD DUMP 0.20;BASE3' Could you try 'PER DIAG 58 PRINTER CMD SPOOL CONS NOTERM #DUMP 0.20;BASE3 #SPOOL CONS TERM' If entered from the command line, the escape would be necessary. The quote character is the TERM ESCAPE, the hash character is the TERM LINEND char. Richard Corak
Rumors of the next z/VM?
A poorly conceived design is, itself, a bug. If you don't accept that, = consider Windoze. Also, I would consider an artificial constraint where = none is needed to be a flaw; hence,a bug. I can remember when many BAD = (broken as designed) things were dismissed as WAD (Working As Designed), = which is another way of saying, That's simply the design of CP. I = thought we were beyond that.=20 I hardly think that in the 64-bit world some new CP thingie was designed to be restricted to the 31-bit world. CP was designed when all that existed was 31-bit addressing. Claiming that design is now broken 'cause it hasn't been changed fast enough to be 64-bit everywhere is just not reasonable. IMO. Richard Corak
Re: PUR RDR ALL not working for a user
Then, too, there is TERM MODE CP. If set, then the PUR EXEC would not be executed. Neither would any other CMS command. This setting would be quite rare for most users. Richard Corak Since you determined the user has a PUR EXEC, they could also use CP PUR to not run their exec. Depending on the user, sometimes I like to emphasize/teach the difference between CMS and CP commands. i.e. PURGE is not a CMS command, but it works in this case because SET IMPCP is ON. If you SET IMPCP OFF, then PURGE will not work, the user will have to use CP PURge... PUR will continue to run the PUR EXEC. (Use IMPEX to control that) (Note PURGE is also an XEDIT command so must be prefixed by CP if issued from within XEDIT to purge rdr files)
How can we quickly determine the number of output blocks a file will need on a CMS disk?
mapped = blocksize/4 /* # of blks mapped by a single ptr blk */ Recall that for RECFM F a pointer to the next level block requires 4 bytes, but for RECFM V 12 bytes are needed (4 bytes for block number, 4 bytes for last record for that block, 4 bytes for the offset into that block). So, I think this divide by 4 is too simplistic. Recall that RECFM V records require 2 additional bytes for the length of the data in the record. So a record that contains 100 bytes of data is 102 bytes long. Richard Corak
Re: IOCP for MP2003-204
CP reads the hardware configuration by Store-SubChannel-ID. That ID must map to a device number. Using SubChannel-ID, CP can issue I/O to get device information like device type. Using device type, CP can decide what to do with the device. DASD: read its label. Terminal: write the logon logo. Etc. But it all starts with the hardware being properly defined. IOCDS. Gotta have it. Richard Corak It's been quite a while since I worked at that level but I didn't (don't) think that CP is going to be able to sense anything that isn't defined in the active IOCDS. It seems to me that was why I used to have to give a tape to the CE to load a basic IOCDS that would be enough to start with. I hope I'm wrong. Jim
Virtual memory implementation in S/370 (a.f.c x-post)
The recent thread about virtual memory sparked a (kind of) idle question: why did the implementation in the S/370 have a two-level scheme (segment and page)? My original thought was that it facilitated definition of discontiguous parts of an address space. Well, mostly it is because smaller systems don't have enough real memory to hold a one level page table. The segment/page system allows page tables to be paged out, with the invalid bit in the segment table. VAX uses a two level system where page tables are paged. There is kernel space, which isn't paged and holds the first level tables referencing pagable second level tables. z/Archtecture has three levels. Actually, Region First Table Region Second Table Region Third Table Segment Table Page Table Richard Corak