Wednesday, November 19, 2008

Google makes up 88 % of Mozilla revenue

Today, the (for-now) non-profit Mozilla Foundation released its financial statements for 2007 (embedded below). Revenues for the organization behind the open-source Firefox browser were up 12 percent to $75 million, with search-related royalties from Google accounting for 88 percent of the total, or $66 million. (Another $2 million or so came from other search engines). Those revenues come from Mozilla’s portion of the search advertising revenues generated by the default Google search box in the Firefox browser.
Google’s overall percentage of Mozilla’s revenues is even bigger than it was in 2006, when it accounted for 85 percent. And that proportion may continue to grow over the next three years, as Google just extended its contract with Mozilla.
But buried in the financial statements is the fact that the Mozilla Foundation is being audited by the IRS and its non-profit status is in question:
On the audit of the Foundation there has not been any formal notification of issues. There has been inquiry regarding its tax exemption. Management believes that it is conducting its operations in accordance with its original application for exemption and for which it received the advance ruling as a public benefit corporation.
The Foundation has an advance ruling as a public benefit corporation. The ruling period ended December 31, 2007. It submitted its public support test documentation as required by the advance ruling. While the Foundation did not automatically qualify as a public charity with public support at 33% of total support, it believes that it qualifies as a public charity under the facts and circumstances test with public support over 10%.
Mozilla argues that the search dollars should be treated as royalties, and thus not count as revenues under the tax code. There is little precedent for a non-profit generating so much of its “support” from what is, in effect, a commercial agreement. If the IRS rules against it, the Mozilla Foundation would lose its tax-exempt status. It would then be classified as a private foundation and have to pay an estimated $100,000 in excise tax for 2007 alone.
That’s peanuts, and wouldn’t change much at Mozilla—except for the fact that it is pretending to be a non-profit foundation when everyone knows it is a charitable arm of Google. What we still don’t know is how Google accounts for the $66 million it paid to Mozilla last year. Was it a charitable contribution, or lumped in with its regular traffic acquisition costs?
And here’s another conundrum: Why does it take the Mozilla Foundation more than year to issue its financial statements from 2007? After all, it is almost 2009.

tips for newbies

What Do I Do When Scandisk and Defrag Won't Run In Win9.x/ME

If you review past posts, many people have this same problem. Prior to running Scandisk or Defrag, be sure to shut down all programs running in the background by pressing Ctrl-Alt-Delete (at the same time)and "End Task" on each program listed except for Explorer and Systray. It's usually best to do the Scandisk first, then Defrag. Virus Scanning programs and Find-fast can make your Scandisk loop over and over again. If it's any consolation, if you do it frequently (once every week or two), it goes much faster. Also make sure you delete all the unneeded files (Cookies, History, and Temporary Internet Files) prior to doing the above. No need to scan and defrag all those extra files. Shut down your screen saver temporarily as this can also freeze scandisk and defrag. After opening Scandisk, place a CHECK mark in “Automatically Fix Errors. Click on the "Advanced" button, then make sure the settings look like this:Display Summary=AlwaysLog File=Replace LogCross-linked File=DeleteLost File Fragments=FreeCheck Valid Files For=Place a check in ALL of the optionsCheck Host Drive FirstIf for some reason, it still doesn't work, run both programs in "Safe Mode". Restart the computer, pressing the F8 key once per second, till it loads a selection screen. Use the up and down arrows to select "Safe Mode", press enter, and the computer will load into a safe mode. It looks like a normal screen but with Safe Mode in each of the four corners. The various drivers don't work in Safe Mode but it allows you to Scandisk and Defrag. When you’re done, restart the machine and it will boot normally.If all else fails, run Scandisk in DOS. For Win95/98 users: Reboot the computer, pressing F8, once per second, till the selection screen loads. Use the up/down/left/right arrows to navigate to the MS DOS Command prompt section, then press enter. When the DOS prompt loads, type "scandisk" (without the quotes). Press enter. After it runs in the standard mode, it will then ask you if you want to run the "thorough" version. Choose yes or no. “Thorough” takes a very long time, but does check your hard drive sectors. When you’re done, navigate to the “Exit” selection, press “Enter”, then press the power button to turn off the puter. Restart the computer and it will boot into Windows normally. Gain access to a Command Prompt in Windows ME this way: Shut down the puter, place the Windows ME start up disk in the floppy drive, start the machine. When the menu appears choose "Minimum Boot". Press Enter. When the command prompt appears, type "scandisk", then press enter.

DB2 Certifications

IBM Available Certifications: http://www-03.ibm.com/certify/certs/dm_index.shtml IBM Test Information: http://www-03.ibm.com/certify/tests/test_index.shtml Popular DB2 Tests
Quote:
512 - DB2 UDB V7.1 Family Fundamentals 514 - DB2 UDB V7.1 Family Application Development 516 - DB2 UDB V7.1 for OS/390 Database Administration 700 - DB2 UDB V8.1 Family Fundamentals 701 DB2 UDB V8.1for Linux, UNIX and Windows Database Administration 702 DB2 UDB V8.1 for z/OS Database Administration 703 DB2 UDB V8.1 Family Application Development 705 DB2 Business Intelligence Solutions V8.1 706 DB2 UDB V8.1 for Linux, UNIX and Windows Database Administration Upgrade exam 442 DB2 Content Manager V8 Exam 512 & 514 Guidelines: http://www-03.ibm.com/certify/certs/dbseudd7.shtml http://www-03.ibm.com/certify/tests/obj512.shtml http://www-1.ibm.com/certify/tests/sam512.shtml http://www-03.ibm.com/certify/tests/obj514.shtml Exam 700 Guidelines: http://www-03.ibm.com/certify/tests/obj700.shtml http://www-03.ibm.com/certify/tests/edu700.shtml http://www-106.ibm.com/developerworks/db2/library/tutorials/db2cert/db2cert_tut.html http://www-128.ibm.com/developerworks/db2/library/tutorials/db2cert/db2cert_V8_tut.html http://www-306.ibm.com/software/data/education/pdfs/exam-700.pdf Exam 701 Guidelines: http://www-128.ibm.com/developerworks/db2/library/tutorials/db2cert/701_prep.html Exam 702 Guidelines: http://www-03.ibm.com/certify/tests/obj702.shtml http://www-03.ibm.com/certify/tests/edu702.shtml Exam 703 : http://www-128.ibm.com/developerworks/offers/lp/db2cert/ Certification Tutorials: http://www-106.ibm.com/developerworks/db2/library/tutorials/db2cert/db2cert_tut.html http://www-106.ibm.com/developerworks/db2/library/tutorials/db2cert/db2cert_V8_tut.html http://www-306.ibm.com/software/data/education/pdfs/exam-700.pdf Recommended Books: http://btobsearch.barnesandnoble.com/booksearch/isbninquiry.asp?ISBN=0131424653&pdf=y&userid=2VO7FE16Q1&sourceid=0039356948&btob=Y http://btobsearch.barnesandnoble.com/booksearch/isbninquiry.asp?userid=2VO7FE16Q1&sourceid=0039356948&btob=Y&pwb=1&ean=9780672325823 http://btobsearch.barnesandnoble.com/booksearch/isbninquiry.asp?userid=2VO7FE16Q1&sourceid=0039356948&btob=Y&pwb=1&ean=9780130463913 http://btobsearch.barnesandnoble.com/booksearch/isbnInquiry.asp?userid=P21KuxKBJt&sourceid=0039356948&btob=Y&isbn=0072133759&itm=5 http://www.murach.com/books/db1r/index.htm http://www.murach.com/books/db2r/index.htm More Info http://ibmmainframes.com/viewtopic.php?t=2214&highlight=db2+certification http://ibmmainframes.com/viewtopic.php?t=2207&highlight=db2+exam+certification http://ibmmainframes.com/viewtopic.php?t=129&highlight=db2+exam+certification http://ibmmainframes.com/viewtopic.php?t=391&highlight=db2+exam+certification DB2 - Certification - Everything you need to Know http://www-106.ibm.com/developerworks/db2/library/techarticle/0207fosdick/0207fosdick.html

Tuesday, November 18, 2008

What is mainframe

WHAT IS MAINFRAME ?

IBMMAINFRAMES.com Definition:
Mainframe is a High performance Multi User computer system which is the most scalable, available, reliable and secured machine in the world capable of performing some Million Instructions per second (upto 569,632 MIPS) with the following characteristics:
1) Reliable single-thread performance, which is essential for reasonable operations against a database.
2) Maximum I/O connectivity, which means mainframes excel at providing for huge disk farms.
3) Maximum I/O bandwidth, so connections between drives and processors have few choke-points.
4) Reliability--mainframes often allow for "graceful degradation" and service while the system is running.
Applications of mainframe various from computing the Random number series to census, industry and consumer statistics, ERP and financial transaction processing..
AMDAL MAINFRAMES:
Millennium 400 And 500 Millennium 700 Amdahl Millennium 800Millennium 2000A Millennium 2000C And 2000E
HITACHI MAINFRAMES:
HITACHI GX8000HITACHI Skyline HITACHI Trinium HITACHI Pilot HITACHI Pilot P8 HITACHI Pilot P9 / Comparex C2000

SOFTWARE RUNNING UNDER MAINFRAMES ARE:
IBM COBOL/370, VS COBOL I, VS COBOL II
AD/CYCLE C/370, C++/VM, C++/MVS
FORTRAN/370, VS FORTRAN, PASCAL/370, ADA/370, APL2
IBM BASIC/MVS, LE/370
CLIST, REXX/370
NATURAL, ADABAS
ASSEMBLER, IBM SAA AD/CYCLE PROLOG
IMS/ESA, IMS/ESA DB
CICS/VM, CICS/MVS, CICS/ESA, CICS/TS
DB2/CAE, DB2/UDB, DB2 PM
MQSeries, MQSeries Three Tier
JCL
SQL/DS, QMF, DB2I, CAF
MAINFRAME OPERATING SYSTEMS:

VSA/XA
VM.XA
VSA/ESA
VM/ESA
MVS/XA
TPF
MVS/ESA
MVS/SP
OS/390
LINUX
Z/OS
MAINFRAME SUBSYSTEMS:
TSO, TSO/E
RACF
SMS
DFSMS/MVS, DFSMS/VM
ACF2, ASF-DCF,CA, ACF/VTAM
DFSMS, DFSORT
SMP, SMP/E
MVS/DFP
TCP/IP
IEF, DFA
JES/1, JES/2, JES/3
DL/I, PL/I
WEBSPHERE APPLICATION SERVER WITH J2EE & JDK
FILEAID XPEDITOR, COOL-GEN,
ISPF, ISPF/PDF, DATA-XPERT, CHANGEMAN
IDEAL, ENDEVOUR
IDMS, ADS, VISION PLUS, FOCCUS/ DB
CSP, UCC 7/11, MSM, ASM, MODEL 204
XCOM, CULPRIT, LIFEPRO
PCBASE, OPC/ESA, EDI, ISIS, AFP
CARDPAC, SMP/E, TIVOLI
SYNCSOFT, PANAVALET
TRACEMASTER, INTERTEST, ABEND-AID
ESP, MS MAIL

VSAM Error codes

VSAM error codes which appear on the MVS job log and on the console.******* you may copy this COBOL code and put it into your COBOL progrqam
******* to handle vsam and qsam file return codes and error codes
000100 FILE-CONTROL.
000200 SELECT VSAM-FILE ASSIGN VSAMFILE
000300 ORGANIZATION IS INDEXED
000400 ACCESS MODE IS SEQUENTIAL
000500 RECORD KEY IS VSAM-RECORD-KEY
000600 FILE STATUS IS VSAM-STATUS-CODE
000700 VSAM-EXTENDED-STATUS-CODE.
000800
000900 DATA DIVISION.
001000 FILE SECTION.
001100
001200 FD VSAM-FILE.
001300 01 VSAM-RECORD.
001400 05 VSAM-RECORD-KEY PIC X(20).
001500 05 VSAM-EMP-INFO PIC X(60).
001600
001700 WORKING-STORAGE SECTION.
001800
001900 01 VSAM-STATUS-CODE.
002000 05 VSAM-STATUS-CODE-BYTE1 PIC X.
002100 05 VSAM-STATUS-CODE-BYTE2 PIC X.
002200
002300 01 VSAM-EXTENDED-STATUS-CODE.
002400 05 VSAM-EXTENDED-RETURN-CODE PIC S9(4) COMP.
002500 05 VSAM-EXTENDED-FUNCTION-CODE PIC S9(4) COMP.
002600 05 VSAM-EXTENDED-FEEDBACK-CODE PIC S9(4) COMP.
002700
002701* From http://www.theamericanprogrammer.com commercial use
002702* or resale of this document is a violation of copyright laws.
002800 EVALUATE-VSAM-STATUS-CODE.
002900* THIS WILL DISPLAY DIAGNOSTIC MESSAGES
003000* FOR VSAM STATUS CODES AS WELL AS ORDINARY SEQUENTIAL
003100 DISPLAY 'FILE STATUS CODE:' VSAM-STATUS-CODE
003200 EVALUATE VSAM-STATUS-CODE
003300 WHEN '00' DISPLAY 'SUCCESSFUL COMPLETION'
003400 WHEN '02' DISPLAY 'DUPLICATE KEY, NON UNIQ. ALT INDX'
003500 WHEN '04' DISPLAY 'READ, WRONG LENGTH RECORD'
003600 WHEN '05' DISPLAY 'OPEN, FILE NOT PRESENT'
003700 WHEN '07' DISPLAY 'CLOSE OPTION INCOMPAT FILE DEVICE'
003800 DISPLAY 'OPEN IMPLIES TAPE; TAPE NOT USED'
003900 WHEN '10' DISPLAY 'END OF FILE'
004000 WHEN '14' DISPLAY 'RRN > RELATIVE KEY DATA'
004100 WHEN '20' DISPLAY 'INVALID KEY VSAM KSDS OR RRDS'
004200 WHEN '21' DISPLAY 'SEQUENCE ERROR, ON WRITE'
004300 DISPLAY 'OR CHANGING KEY ON REWRITE'
004400 WHEN '22' DISPLAY 'DUPLICATE KEY'
004500 WHEN '23' DISPLAY 'RECORD OR FILE NOT FOUND'
004600 WHEN '24' DISPLAY 'BOUNDARY VIOLATION.'
004700 DISPLAY 'WRITE PAST END OF KSDS RECORD '
004800 DISPLAY 'COBOL 370: REL: REC# TOO BIG'
004900 DISPLAY 'OUT OF SPACE ON KSDS/RRDS FILE'
005000 WHEN '30' DISPLAY 'PERMANENT DATA ERROR'
005100 DISPLAY 'DATA CHECK, PARITY CHK, HARDW'
005200 WHEN '34' DISPLAY 'BOUNDARY VIOLATION'
005300 DISPLAY 'WRITE PAST END OF ESDS RECORD'
005400 DISPLAY 'OR NO SPACE TO ADD KSDS/RRDS RECORD'
005500 DISPLAY 'OUT OF SPACE ON SEQUENTIAL FILE'
005600 WHEN '35' DISPLAY 'OPEN, FILE NOT PRESENT'
005700 WHEN '37' DISPLAY 'OPEN MODE INCOMPAT WITH DEVICE'
005800 WHEN '38' DISPLAY 'OPENING FILE CLOSED WITH LOCK'
005900 WHEN '39' DISPLAY 'OPEN, FILE ATTRIB CONFLICTING'
006000 WHEN '41' DISPLAY 'OPEN, FILE IS OPEN'
006100 WHEN '42' DISPLAY 'CLOSE, FILE IS CLOSED'
006200 WHEN '43' DISPLAY 'DELETE OR REWRITE & NO GOOD READ FIRST'
006300 WHEN '44' DISPLAY 'BOUNDARY VIOLATION/REWRITE REC TOO BIG'
006400 WHEN '46' DISPLAY 'SEQUENTIAL READ WITHOUT POSITIONING'
006500 WHEN '47' DISPLAY 'READING FILE NOT OPEN AS INPUT/IO/EXTEND'
006600 WHEN '48' DISPLAY 'WRITE WITHOUT OPEN IO'
006700 WHEN '49' DISPLAY 'DELETE OR REWRITE WITHOUT OPEN IO'
006800 WHEN '90' DISPLAY 'UNKNOWN'
006900 WHEN '91' DISPLAY 'VSAM - PASSWORD FAILURE'
007000 WHEN '92' DISPLAY 'LOGIC ERROR/OPENING AN OPEN FILE'
007100 DISPLAY 'OR READING OUTPUT FILE'
007200 DISPLAY 'OR WRITE INPUT FILE'
007300 DISPLAY 'OR DEL/REW BUT NO PRIOR READ'
007400 WHEN '93' DISPLAY 'VSAM - VIRTSTOR. RESOURCE NOT AVAILABLE'
007500 WHEN '94' DISPLAY 'VSAM - SEQUENTIAL READ AFTER END OF FILE'
007600 DISPLAY 'OR NO CURRENT REC POINTER FOR SEQ'
007700 WHEN '95' DISPLAY 'VSAM - INVALID FILE INFORMATION'
007800 DISPLAY 'OR OPEN OUTPUT (LOAD) '
007900 DISPLAY 'WITH FILE THAT NEVER CONTNED DATA'
008000 WHEN '96' DISPLAY 'VSAM - MISSING DD STATEMENT IN JCL'
008100 WHEN '97' DISPLAY 'VSAM - OPEN OK, FILE INTEGRITY VERIFIED'
008200 DISPLAY 'FILE SHOULD BE OK'
008300 WHEN OTHER DISPLAY 'UNKNOWN REASON' VSAM-STATUS-CODE
008400 END-EVALUATE.
008800
008801* From http://www.theamericanprogrammer.com commercial use
008802* or resale of this document is a violation of copyright laws.
008900 EVALUATE-VSAM-EXTENDED-RETURN-CODE.
009000 EVALUATE VSAM-EXTENDED-RETURN-CODE
009100 WHEN 0 DISPLAY 'SUCCESSFUL COMPLETION'
009200 WHEN 4 DISPLAY 'ANOTHER REQUEST IS ACTIVE'
009300 WHEN 8 DISPLAY 'THERE IS A LOGICAL ERROR'
009400 PERFORM EVALUATE-LOGICAL-ERROR
009500 WHEN 12 DISPLAY 'THERE IS A PHYSICAL ERROR'
009600 PERFORM EVALUATE-PHYSICAL-ERROR
009700 WHEN OTHER DISPLAY 'UNKNOWN REASON'
009800 END-EVALUATE.
009900
010000 EVALUATE-VSAM-EXTENDED-FUNCTION-CODE.
010100 EVALUATE VSAM-EXTENDED-FUNCTION-CODE
010200 WHEN 0 DISPLAY 'ACCESSING BASE CLUSTER, NO PROBLEM'
010300 WHEN 1 DISPLAY 'ACCESSING BASE CLUSTER, MAY BE A PROBLEM'
010400 WHEN 2 DISPLAY 'ACCESSING ALTERNATE INDEX, NO PROBLEM'
010500 WHEN 3 DISPLAY 'ACCESSING ALTERNATE INDEX, MAY BE A PROBLEM'
010600 WHEN 4 DISPLAY 'UPGRADE PROCESSING, NO PROBLEM'
010700 WHEN 5 DISPLAY 'UPGRADE PROCESSING, MAY BE A PROBLEM'
010800 WHEN OTHER DISPLAY 'UNKNOWN REASON'
010900 END-EVALUATE.
011000
011100 EVALUATE-PHYSICAL-ERROR.
011200* USE THIS WHEN THERE IS RC 12 IN VSAM-EXTENDED-RETURN-CODE
011300 EVALUATE VSAM-EXTENDED-FEEDBACK-CODE
011400 WHEN 4 DISPLAY 'READ ERROR ON DATA'
011500 WHEN 8 DISPLAY 'READ ERROR ON INDEX'
011600 WHEN 12 DISPLAY 'READ ERROR IN SEQUENCE SET'
011700 WHEN 16 DISPLAY 'WRITE ERROR ON DATA'
011800 WHEN 20 DISPLAY 'WRITE ERROR ON INDEX'
011900 WHEN 24 DISPLAY 'WRITE ERROR IN SEQUENCE SET'
012000 WHEN OTHER DISPLAY 'UNKNOWN REASON'
012100 END-EVALUATE.
012200
012300 EVALUATE-LOGICAL-ERROR.
012400* USE THIS WHEN THERE IS RC 8 IN VSAM-EXTENDED-RETURN-CODE
012500 EVALUATE VSAM-EXTENDED-FEEDBACK-CODE
012600 WHEN 4 DISPLAY 'READ PAST END OF FILE'
012700 WHEN 8 DISPLAY 'DUPLICATE KEY'
012800 WHEN 12 DISPLAY 'KEY SEQUENCE ERROR'
012900 WHEN 16 DISPLAY 'NOT FOUND'
013000 WHEN 20 DISPLAY 'CONTROL INTERVAL IN USE BY OTHER JOB'
013100 WHEN 24 DISPLAY 'VOLUME CANNOT BE MOUNTED'
013200 WHEN 28 DISPLAY 'UNABLE TO EXTEND DATASET'
013300 WHEN 32 DISPLAY 'RBA NOT FOUND'
013400 WHEN 36 DISPLAY 'KEY IS NOT IN A DEFINED KEY RANGE'
013500 WHEN 40 DISPLAY 'INSUFFICIENT VIRTUAL STORAGE'
013600 WHEN 64 DISPLAY 'NO AVAILABLE STRINGS'
013700 WHEN 68 DISPLAY 'OPEN DID NOT SPECIFY PROC TYPE'
013800 WHEN 72 DISPLAY 'KEY ACCESS TO ESDS OR RRDS'
013900 WHEN 76 DISPLAY 'ATTEMPTED INSERT TO WRONG TYPE DATASET'
014000 WHEN 80 DISPLAY 'ATTEMPTED DELETE FROM ESDS'
014100 WHEN 84 DISPLAY 'OPTCD LOC FOR PUT REQUEST'
014200 WHEN 88 DISPLAY 'POSITION NOT ESTABLISHED'
014300 WHEN 92 DISPLAY 'PUT WITHOUT GET FOR UPDATE'
014400 WHEN 96 DISPLAY 'TRYING TO CHANGE PRIMARY KEY'
014500 WHEN 100 DISPLAY 'TRYING TO CHANGE LRECL'
014600 WHEN 104 DISPLAY 'INVALID RPL OPTIONS'
014700 WHEN 108 DISPLAY 'INVALID LRECL'
014800 WHEN 112 DISPLAY 'INVALID KEY LENGTH'
014900 WHEN 116 DISPLAY 'VIOLATED LOAD MODE RESTRICTION'
015000 WHEN 120 DISPLAY 'WRONG TASK SUBMITTING REQUEST'
015100 WHEN 132 DISPLAY 'TRYING TO GET SPANNED REC IN LOC MODE'
015200 WHEN 136 DISPLAY 'TRYING TO GET SPANNED REC BY ADDRESS'
015300 DISPLAY 'IN KSDS'
015400 WHEN 140 DISPLAY 'INCONSISTENT SPANNED REC'
015500 WHEN 144 DISPLAY 'ALT INDEX POINTER WITH NO MATCHING'
015600 DISPLAY 'BASE RECORD'
015700 WHEN 148 DISPLAY 'EXCEEDED MAX POINTERS IN ALT INDEX REC'
015800 WHEN 152 DISPLAY 'INSUFFICIENT BUFFERS AVAILABLE'
015900 WHEN 156 DISPLAY 'INVALID CONTROL INTERVAL'
016000 WHEN 192 DISPLAY 'INVALID RELATIVE REC NUMBER'
016100 WHEN 196 DISPLAY 'ATTEMPTED ADDRESSED REQUEST TO RRDS'
016200 WHEN 200 DISPLAY 'INVALID ACCESS THROUGH A PATH'
016300 WHEN 204 DISPLAY 'PUT IN BACKWARD MODE'
016400 WHEN 208 DISPLAY 'INVALID ENDREQ MACRO'
016500 WHEN OTHER DISPLAY 'UNKNOWN REASON'
016600 END-EVALUATE.
016700
From http://www.theamericanprogrammer.com commercial use
or resale of this document is a violation of copyright laws.
VSAM Logical error codes
These codes indicate VSAM errors. They appear on the JOB log.
004(04) Read past end of file
008(08) You attempted to store a record with a Duplicate Key, or there
is a duplicate record for an alternate index with the unique
key option.
012(0C) You attempted to store a record out of Ascending Key Sequence
in Skip-Sequential Mode; record had a Duplicate Key; for
Skip-Sequential processing your GET, PUT, and POINT Requests
are not referencing records in Ascending Sequence; or, for
Skip-Sequential Retrieval, the key requested is lower than the
previous key requested. For Shared Resources, buffer pool is full.
016(10) Record not found.
020(14) Record already held in exclusive control by another requester.
024(18) Record resides on a volume that cannot be mounted.
028(1C) Data set cannot be extended because VSAM can't allocate additional
Direct-Access Storage Space. Either there is not enough space
left to make the secondary allocation or you attempted to increase
the size of a data set while processing SHROPT=4 and DISP=SHR.
036(24) Key Ranges were specified for the data set when it was defined
but no range was specified that includes the record to be inserted.
040(28) Insufficient Virtual Storage to complete the request.
044(2A) Work area too small.
064(40) All available strings are in use.
068(44) You attempted to use a type of processing (Output or Control-Interval
Processing) that was not specified when the data set was opened.
074(4A) Trying to use keys on ESDS or RRDS.
076(4C) You issued an Addressed or Control-Interval PUT to add to a
Key-Sequenced data set, or issued a Control-Interval put to a
Relative Record data set.
080(50) Trying to delete from ESDS.
084(54) Using OPTCODE=LOC for a PUT.
088(58) You issued a Sequential GET request without having caused VSAM
to be positioned for it, or you changed from Addressed Access
to Keyed Access without causing VSAM to be positioned for Keyed-
Sequential Retrieval; there was no Sequential PUT insert for a
Relative Record data set, or you attempted an illegal switch
between forward and backward processing.
92(5C) A PUT for update or an ERASE was issued without a previous GET
for update, or a PUTIX was issued without a previous GETIX.
96(60) Changing the Prime Key or Key of Reference when making an update.
100(64 Trying to change record length.
104(68) The RPL options are either invalid or conflicting.
108(6C) RECLEN specified was larger than the maximum allowed, equal to
0, or smaller than the sum of the length and the displacement
of the key field; RECLEN was not equal to record (SLOT) size
specified for a Relative Record data set.
112(70) Invalid key length.
116(74) Trying to update an empty dataset.
120(78) Request was submitted by the wrong task.
132(84) An attempt was made in Locate Mode to retrieve a Spanned Record.
136(88) You attempted an Addressed GET of a Spanned record in a Key-
Sequenced data set.
140(8C) Inconsistent Spanned record.
144(90) Invalid pointer (no associated base record) in an Alternate Index.
148(94) Maximum number of Alternate Index pointers exceeded.
152(98) Not enough buffers available.
156(9C) Invalid control interval.
192(C0) Invalid Relative Record number in a RRDS dataset.
196(C4) Addressed access to a Relative Record (RRDS) dataset is not allowed.
200(C8) Addressed Access or Generic Backward processing by Key thru a path is
not allowed.
204(CC) Attempting a PUT in backward mode.
252(FC) Record mode processing is not allowed for a Linear data set.
VSAM Open error codes
136(88) Not enough Virtual-Storage Space is available for Work Areas,
Control Blocks, or Buffers.
144(90) An uncorrectable I/O error occurred while VSAM was Reading or
Writing a catalog record.
148(94) No record for the data set to be opened was found in the
available catalog(s) or an unidentified error occurred while
VSAM was searching the catalog.
152(98) Security Verification failed; the password specified in the
Access-Method Control Block for a specified level of access
does not match the password in the catalog for that level of
access.
164(A4) An uncorrectable I/O error occurred while VSAM was Reading the
Volume Label.
168(A8) The data set is not available for the type of processing you
specify, or an attempt was made to open a Reusable data set
with the Reset option while another user had the data set.
176(B0) An error occurred while VSAM was attempting to fix a page of
Virtual storage in Real storage.
180(B4) A VSAM catalog specified in JCL either does not exist or is
not open, and no record for the data set to be opened was
found in any other catalog.
184(B8) An uncorrectable I/O error occurred while VSAM was completing
an I/O request.
188(BC) The data set indicated by the Access-Method Control Block is
not of the type that may be specified by an Access-Method
Control Block.
192(C0) An unusable data set was opened for output.
232(E8) Reset was specified for a nonreusable data set and the
data set is not empty.
236(EC) A permanent Staging error occurred in MSS (Acquire).
244(F4) The Volume containing the Catalog Recovery area was not
mounted and verified for output processing.

TSO Commands, TSO Line Mode Commands - TSO Native Mode Commands Tutorial

TSO - Time Sharing Option of IBM's mainframe operating system MVS (also called OS/390 or Z/OS). TSO is an on-line interactive program development system that gives access to the same files as with batch (JCL) jobs. TSO is used to:
create, maintain and compile programs
create, maintain and submit JCL to run jobs
inspect the printed or displayed output of JCL jobs
interactively test both batch and on-line programs Practically every installation uses ISPF or PDF to assist in program development. ISPF/PDF is a full-screen, menu driven system similar in concept to Windows 3. ISPF executes inside of TSO exactly as Windows 3 executed inside of DOS. DOS was always there and you could always do DOS commands before and after going into Windows 3. Similarly, you can execute TSO commands before and after you go into ISPF. TSO Line Mode Commands are sometimes called Native TSO Commands, or just plain TSO commands. They are the things you can't always do with ISPF or PDF. Running TSO commands while in ISPF is done in ISPF option 6, Command Shell, (like opening a DOS window in Windows 95 and later) or by prefixing the command with TSO and typing it on the command line of any ISPF screen. With TSO commands, you can delete files, create or allocate files, rename files. You can control migration and recall of files, although you often see ISPF screens which do that. You can SEND messages to other TSO users. You can connect files to file handles (DDNAMES) in order to read or write to the files in a program, REXX exec or CLIST. You need to know TSO line mode commands if you are going to master REXX or CLIST, since both REXX and CLIST can execute these TSO line mode commands. You may print out this TSO command quick reference and use it at work. The TSO COPY command is not included because it suffers from several design and implementation errors.
var x = 0;
TSO Commands
TSO Manuals and Tutorials TSO/ISPF Dialogue Manager Book Just Enough ISPF to be Dangerous Comparison of REXX and CLIST REXX Reference Book
REXX Programming Book for TSO
Books on MVS, TSO, CLIST
These are TSO line mode commands. There is generally no ISPF screen that will do the same thing. For help on the commands,
- on any ISPF screen, type TSO HELP; (If you are outside of ISPF just type HELP)
choose a command, then type TSO HELP command-name.
or use Quick Reference by typing QW on any ISPF screen
then specify IBM as vendor
then search for TSO SYSHELP
There are 6 places you can execute TSO commands. Read the parts about continuing!
1. In a REXX program. Information about my book on REXX: http://www.theamericanprogrammer.com
The command must be enclosed in quotes (") or apostrophes (').
Quotes are preferred, because they conflict less
with the apostrophes that some TSO commands require.
Example of an ALLOCATE command in a REXX program:
"ALLOC DDN(INFILE) SHR REUSE DSN(MY.DATA)"
When there is a variable in the command you want REXX to process the variable.
Quotes prevent REXX from processing the variable.
Remove the variable from the quotes.
Example of an ALLOCATE with the dataset name in a variable.
Dataset_Name = "MY.DATA"
"ALLOC DDN(INFILE) SHR REUSE DSN("Dataset_Name")"
In a REXX program commands for ISPF are prefixed by ADDRESS ISPEXEC, for example:
ADDRESS ISPEXEC "SETMSG MSG(ISRZ001)"
Commands for ISPF editor are prefixed by ADDRESS ISREDIT, for example:
ADDRESS ISREDIT "CHANGE ALL DNS DSN"

Continuing. Break the command into two parts.
Enclose each part in quotes. End the first part with a comma.
EXAMPLE:
"ALLOC DDN(INFILE)SHR REUSE",
"DSN(MY.DATA)"
2. In a CLIST.
The command is entered into the CLIST as shown in the examples.
Example of an ALLOCATE command in a CLIST:
ALLOC DDN(INFILE) SHR REUSE DSN(MY.DATA)
When there is a variable in the command, put the variable
in the command and be sure it is prefixed with an ampersand (&).
Example of ALLOCATE in a CLIST with the dataset name in a variable:
SET &DATASET_NAME = MY.DATA
ALLOC DDN(INFILE) SHR REUSE DSN(&DATASET_NAME)

Continuing. Break the command into two parts. End the first part with a hyphen or +. The + causes leading spaces on the next line to be deleted..
EXAMPLE:
ALLOC DDN(INFILE) SHR REUSE -
DSN(&DATASET_NAME)

3. In ISPF Option 6.
Enter the command as shown in the examples
Example of an ALLOC command in ISPF Option 6:
ALLOC DSN(MY.DATA) SHR REUSE DDN(INFILE)

Continuing. Just keep typing. There’s room..

4. On any ISPF screen except Option 6.
Enter the command as shown in the examples, prefixed with "TSO".
Example of an ALLOCATE command in ISPF Option 6:
TSO ALLOC DDN(INFILE) SHR REUSE DSN(MY.DATA)

Continuing. You are out of luck. There’s not much room.

5. In line mode TSO, known as "Ready mode". I.E., you are not in ISPF.
Enter the command as shown in the examples
Example of an ALLOCATE command in line mode TSO.
ALLOC DDN(INFILE) SHR REUSE DSN(MY.DATA)

Continuing. Just keep typing. There’s room..

6. In a batch job where the program IKJEFT01 is executed, known as TSO in batch.
Enter the command as shown in the examples
Example of an ALLOCATE command in a batch job.
ALLOC DDN(INFILE) SHR REUSE DSN(MY.DATA)
Example in context:
//STEP1 EXEC PGM=IKJEFT01,DYNAMNBR=200
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
ALLOC DDN(INFILE) SHR REUSE DSN(MY.DATA)
/*
Continuing. There are only about 67 positions available
Break the command into two parts. End the first part with a hyphen.
EXAMPLE:
ALLOC DDN(INFILE) SHR REUSE -
DSN(MY.DATA)


Interacting with files:
Create a catalogued disk file/dataset
ALLOCATE with the NEW keyword
ALLOC DSN(dataset-name) NEW (continued)
SPACE(10 5) TRACKS
Create a catalogued disk library/pds
ALLOCATE with the NEW keyword and the DIR keyword
ALLOC DSN(library name) NEW (continued)
SPACE(10 5) TRACKS DIR(10)
Connect a catalogued disk file/ dataset to a program for use as input or output
ALLOCATE with the SHR or OLD keyword and the DDN keyword
ALLOC DDN(ddname) SHR REUSE DSN(dataset-name)
Connect a catalogued library member/pds member to a program for use as input or output
ALLOCATE with the SHR or OLD keyword and the DDN keyword
ALLOC DDN(ddname) SHR REUSE (continued)
DSN(library-name(member-name))
Note that the library must exist.
The member must exist if it is input.
The member will be created or overwritten, if it is output.
Connect a catalogued disk file/ dataset to a program for use as output, lengthening (append) the file
ALLOCATE with the MOD keyword and the DDN keyword
ALLOC DDN(ddname) MOD REUSE DSN(dataset-name)
Create a catalogued disk file/dataset, or library/ pds that has the same attributes as another
ALLOCATE with the LIKE keyword
ALLOC DSN(dataset-name) LIKE(other-dataset-name)
Notes about ALLOCATE:
REUSE means that the DDN(ddname) should be released
from any previous use and used for this ALLOCATE
SPACE(10 5) means that the system should allocate
10 units of space immediately, 5 units later (up to 15 times as needed)
DIR(10) means that the system should reserve 10 blocks of
space for the directory that will keep track of the members.
1 directory block keeps track of 5 members.
Remove the connection between a file and a program that has been established with ALLOCATE and the DDN keyword
FREE DDN(ddname)
Copy a file to one that exists already, overlaying it. (Allocate the output file first with ALLOC or ISPF 3.2)
REPRO INDATASET(‘input dataset name’) (continued)
OUTDATASET(‘output dataset name’)
Display the attributes of a file/dataset library/pds
LISTDS dataset-name or library
Display the attributes of a library/pds and list the member names
LISTDS library MEMBERS
Display the dataset names, library names, and DDNAMES currently in use in your TSO session.
LISTALC STATUS HISTORY SYSNAMES
Display catalog information about a specific dataset or library.
LISTCAT ENTRY(dataset name) ALL
List the names of datasets or libraries whose names begin with a specific high level qualifier.
LISTCAT LEVEL(high-level-qualifier)
Example:
LISTCAT LEVEL(USERID1)
Delete a dataset or library
DELETE dataset or library
Delete a library member (not the library)
DELETE library(member-name)
Rename a dataset or library
RENAME old-name new-name
Specify a REXX or CLIST library without having to do complicated allocations.
ALTLIB ACTIVATE APPLICATION(appl) DSN(appl-library)
Specify a REXX library
ALTLIB ACTIVATE APPLICATION(EXEC) DSN(rexx-library)
Specify a CLIST library
ALTLIB ACTIVATE APPLICATION(CLIST) DSN(clist-library)
Interacting with other users
Authorize access to your files with RACF.
PERMIT 'your-userid.**' ID(userid-to-authorize) ACCESS(READ)
or access(update)
userid-to-authorize may be * to mean all users
Transmit a message to a TSO user. Cancel the message if the user can’t receive messages or is logged off.
SEND 'the message' USER(the-userid)the-userid may be *, which means to yourself
Transmit a message to a TSO user. Wait until the user is able to receive the message.
SEND 'the message' USER(the-userid) WAIT
the-userid may be *, which means to yourself
Transmit a message to a TSO user. The message will be delivered at once if the user is logged on. It will be delivered when the user logs on, if the user is now logged off.
SEND 'the message' USER(the-userid) LOGON
the-userid may be *, which means to yourself
Transmit a message to the console operator
SEND 'the message'
Send a dataset to another user (TSO or CMS)
XMIT node.userid DSN(datasetname)
Send a library/pds member to another user (TSO or CMS)
XMIT node.userid DSN(libraryname(membername)) SEQ
Receive a dataset or library sent by another user with XMIT
RECEIVE

Interacting with TSO
Display messages sent to you while you were logged off
LISTBC
Display the current time, CPU time used, service units used, and date
TIME
Turn off prompting - commands asking you for missing or invalid information
PROFILE NOPROMPT
Find out if TSO is prefixing your logon userid to dataset names specified without apostrophes.
PROFILE
Make TSO prefix your logon userid to dataset names specified without apostrophes.
PROFILE PREFIX(your-userid) The default
Stop TSO from prefixing your logon userid to dataset names specified without apostrophes.
PROFILE NOPREFIX Not Recommended
Execute a program when you know which library it is on
CALL ‘library-name(program-name)’
Execute a program that is on an automatic search library ("the linklist")
CALL *(program-name)
You may also be able to execute a program by simply putting its name in quotes:
"IEBGENER"
This is not allowed at all companies.
Execute a REXX program or CLIST found on a library assigned to SYSPROC or SYSEXEC
"program-name" "parameters if any"
Execute a REXX program or CLIST that is not found on a library assigned to SYSEXEC
"EXEC ‘libry-name(member-name)’ ‘parameters if any.’ " EXEC
Execute a CLIST that is not found on a library assigned to SYSPROC
"EXEC ‘library-name(member-name)’ ‘parameters if any.’ "
Interacting with MVS Batch
Display current job status of jobs that you have submitted
STATUS
Cancel a job that you have submitted
CANCEL jobname(job-number)
Cancel a job that you have submitted and discard the printed output
CANCEL jobname(job-number) PURGE
Send JCL to MVS batch for processing I.E. spawn a detached process
SUBMIT dataset-name or library(member-name)
Interacting with the Hierachical Storage System (migrating)
Unmigrate a dataset or library that has been migrated
HRECALL dataset/library
Migrate a dataset or library I.E. send it to off-line storage, probably tape
and temporarily delete it from active disk storage
HMIGRATE dataset or library
Create a backup copy of a dataset or library (if installation authorizes)
HBACKDS dataset/library
Retrieve the most recent backup copy of a dataset or library that has been backed up
HRECOVER dataset-name
Retrieve the backup copy of a dataset or library that was created before the most recent one
HRECOVER dataset-name GENERATION(1)
Ask about your HRECOVER request.
HQUERY

Using ISPF services.
Information about my book on ISPF Dialogue manager http://www.theamericanprogrammer.com/programming/dmbook/html
Specify a library that contains components of an ISPF dialog.
LIBDEF component DATASET ID(library-name) UNCOND
for example:
LIBDEF ISPPLIB DATASET ID(MY.ISPPLIB) UNCOND
REXX Example:
ADDRESS ISPEXEC "LIBDEF ISPPLIB DATASET ID(MY.ISPPLIB) UNCOND "
Components are:
ISPPLIB Panel library
ISPSLIB File Tailoring Skeleton Library
ISPMLIB Message library
ISPFILE File Tailoring output library
ISPTLIB Table input
ISPTABL Table output
ISPLLIB Load module
Store variable information in TSO/ISPF for later use
VPUT (variable-name) PROFILE
REXX Example:
ADDRESS ISPEXEC "VPUT (variable-name) PROFILE"
Retrieve variable information from TSO/ISPF
VGET (variable-name)
REXX Example:
ADDRESS ISPEXEC "VGET (variable-name)"
Setting messages that will appear on ISPF screens.
REXX Example:
ZEDSMSG = "this is the short message"
ZEDLMSG = "this is the long message"
ADDRESS ISPEXEC "SETMSG MSG(ISRZ001)"
Executing a program when you don't know which library it is on
SELECT PGM(program-name)
REXX Example:
ADDRESS ISPEXEC "SELECT PGM(program-name)"
Prevent an ISPF error from kicking you out of your session. (Hides diagnostic messages)
CONTROL ERRORS RETURN
REXX Example:
ADDRESS ISPEXEC "CONTROL ERRORS RETURN"


Old non-ISPF editor.
I will show this by an example. The line numbers on the left are for illustration only.
1 EDIT 'userid.TEST.CNTL(MODEL)' DATA OLD NONUM EMODE
2 TOP
3 CHANGE * 999 '@DSN' 'MY.DATA'
4 SUBMIT
5 END NOSAVE
Explanations by line.
Line 1. EDIT 'fully-qualified-dataset-name' DATA OLD NONUM EMODE
Please use a fully-qualified dataset name, with apostrophes.
Replace DATA with COBOL if it is a COBOL program.
OLD means that it exists already
NONUM means that the editor should ignore line numbers, if any.
NUM instead means that the editor should assume line numbers
EMODE means that the editor should not go into "input mode"
when the dataset contains no records
Input Mode is when the editor accepts no commands!
everything you type in is placed into the dataset as a new line.
You end Input Mode by pressing ENTER without typing anything.
Line 2.
TOP.
Position yourself at the top of data (important for the change command)
Line 3.
Change character strings on each line from current line position
(shown by *) to the end (shown by 999)
CHANGE * 999 'old string' 'new string'
Line 4.
Send the data you are editing (if it's JCL) to MVS batch for processing
I.E. spawn a detached process
SUBMIT
Line 5.
Exit without saving data in the name you started with
END NOSAVE
Other commands you might use.
Exit and save data in the name you started with
END SAVE
Save what you are editing with a specific name other than the one you started with
SAVE new-name REUSE
The above example in a REXX program. You must queue the commands. They will be executed after the REXX program ends. You may not put anything else into the queue since that will interfere with this.
QUEUE "EDIT 'userid.TEST.CNTL(MODEL)' DATA OLD NONUM EMODE"
QUEUE "TOP"
QUEUE "CHANGE * 999 '@DSN' 'MY.DATA' ALL"
QUEUE "SUBMIT
QUEUE "END NOSAVE"
The above example in a CLIST. There is no change from the example above. The CLIST will execute the commands line by line. After finishing the commands, control will remain in the CLIST.

Visit my web page to get other cheat sheets.
http://www.TheAmericanProgrammer.com/programming/justenuf.shtml
Rexx info: http://www.TheAmericanProgrammer.com/programming/
About this series.
Sometimes you need just enough information so that you can do something
- it gets you started when you don’t have time to learn everything.
Get all the others in the series at: Justenuf
Other Books for professionals:

REXX Reference
All REXX verbs, keywords, and built-in functions as found in MVS, VM/CMS and OS/2.
Order from MVS Training (800) 356 9093.MVS Training

The REXX Language on TSO
How to use REXX on TSO. Information, ordering at: REXX
ISPF Services: Using the Dialogue Manager with REXX
How to create ISPF panels on TSO. Examples in REXX. Information, ordering at:ISPF Services
You will find a large selection of mainframe books at: Books.
You’ll find manuals on TSO, JCL, REXX, COBOL, DB2 at: Manuals.