Vol 9.2 Technical Information for Mainframe and IDMSâ Users August 2000
In This Issue
This page at http://www.reocities.com/idmssql/idms92.htm
IDMS/SQL News apologizes for any spelling/grammatical mistakes.
There is simply not enough resources to do a thorough editing!
Last attempts for Jasmine!
After taking over Ingres, CA transferred many IDMS Devlopers to Ingres (Computerworld 1995 News). And there were several attempts to convert the large IDMS base to Ingres. There were vain attempts to sell the Ingres Gateway to IDMS Client base. All failed miserably! For the last 5-6 years CA has been touting an object oriented circus called Jasmine. This product doesn't have any serious production or support problems becacuse less than a handful are really using it! Unless you use the product you won't get any production problems. Now the attempt is to tie up IDMS and Jasmine. An uneven match. One is a tested database in critical production for more than 25 years. The other is a playing tool to match the industry circus around 'object oriented' databases!
Incidentally in the internet
site for CA World proceedings the database section
doesn't list Jasmine at all!
Here is the screen
Probably by next CA World, we might stop hearing about this ultra flop! But by then CA might have acquired another toy and another buzzword to market anyway!
IDMS/SQL Old Issues
IDMS/SQL was started in 1992 as a simple newsletter for IDMS users. There was no internet edition for those copies. Considering requests from users (esp.in Benelux countries), we are happy to put the original issues on the net now. Here is the first batch starting with the year 1992.
IDMS History Continued . . .
From: "Eric Waddell" ct: IDMS History Date: Sat, 22 Apr 2000 00:50:49 -0700
I read, with interest, The History of IDMS (IDMS/SQL News - Dec 1999) You failed to mention the negative impact that David Chapman had on Cullinet. It was David who heralded the death knell of the company. (Use this if you'd like - I was employed by Cullinet Canada between 1982 and 1987.)
Prior to coming on board, John Cullinane had been desperately trying to fin a successor. He had other interests - namely the JFK Library in Boston. (John was friends with the Kennedy's... in fact one of the last sales conferences (1987) was held in Hyannisport and good old Ted dropped by to invite Cullinet people over to the compound for tennis.
John had been trying to groom internal people but no one was really suitable. Frank Chisholm, Executive VP, was the strongest of the team, but was far too aggressive for his own, and the company's good. Bob Goldman, who had been President for a few years, was weak.
Then came Chapman. John spoke of him as a savior. He was a Data General alumni and taught at the Sloan School of Management. John dropped him into place and promptly disappeared. Chapman then proceeded to squander the company's $80 Million war chest and future Gold Course on all sorts of strange business applications. The first big one was a company based in Mississauga, Ontario called Cancor. They had a VAX applications development product. Ron Zambonini, now with Cognos, was the project leader at the time. Unfortunately, Tom Corr, who started the company, was a V.P. of Cullinet for a few months, but dropped after it was found out that he had been running the company as a tax scam. He was arrested at Pearson International Airport on his way to the Cullinet annual sales conference in Boston in 1986.
The product would have worked, but Chapman bought the VAX Database engine from Dr. Kapali P. Eswaran's Esvel Inc in August 1986. Chapman proceeded to dictate that the entire Silicon Valley development team move to Boston. The team swiftly abandoned ship, including the good doctor himself. The product was left swinging in the breeze. The other problem was that Boston also dictated that the two acquisitions be made to work together. A dumb idea and one that put two almost market ready products far behind schedule.
In retrospect, the earlier Computer Pictures acquisition was the stupidest. We spent $14 million buying technology we couldn't use. The monitors leaked radiation well above acceptable limits and the system was woefully complex to use. I asked one of Cullinet's VPs at dinner one night why we bought them. He enthusiastically told me that it wasn't for the hardware (thankfully!), but that it was really for the development team. I didn't want to argue with him, but the reality was that and all we ended up with was a handful of misfits who thought it was cool to sleep under their desks in the development center and shower in the gym. The team went on to develop the ill conceived GoldenGate.
There were many other acquisitions to come, none of which made any sense. Jeff Papows (now in Lotus) came on board through the acquisition of DMS of Cambridge, MA. Jeff's claim to fame was an Expert System he had developed... written entirely in Cobol. It was more of a research project and not even close to being a real product. (For the record, Jeff lied during his career about his personal history and embellished his military record - Wall St Journal, April 1999.) This was madness. The sad thing about all of this was that no one felt able to blow the whistle. I was on a lead time that tested the infamous Release 10 before it was released. We unanimously called for it to not be shipped - it was the buggiest thing I ever saw. I also recall a gala dinner event (spouses invited) where we were all to enjoy an evening with David Chapman... our savior. I remember thinking that he spewed out worthless pap. Others were of the same opinion. We were invited to ask questions to the floor and I pointedly asked what the company planned to do to alleviate the perception that IDMS was an out-dated product. He immediately turned the question around and asked me what I was prepared to do about it. I was dumbfounded. In fact, he answered most questions that way. He made it seem that he was empowering the peons at the bottom to solve the company's problems. He had no ideas of his own. (In fact, he didn't.)
By the spring of 1987, the technical heavyweights had already started jumping ship. By summer, it was obvious that most of the brains had already left. (I departed in August, 1987.) Stories of strange management decisions and behavior, including rumors of wild sexual liaisons in the headquarters parking lot abounded.
By the spring of 1988, John Cullinane walked back into the office and began firing everyone in sight. I heard that David Chapman was one of the first to leave the building. John could have saved Cullinet. But he was tired. The company was sold for something like $320 million. It had been worth a lot more. (The stock hit a low of $4 after reaching $32.)
IDMS/SQL News express our deep gratitude and appreciation for Eric Waddell's comments. Here are some comments from us:
Eric Waddell's letter highlights the drama which
was played in the upper circles of the company. The most
important factor here is the stupidest acquisitions made
by Cullinet in the later half of the eighties! All except
Esvel were totally useless products! (The fact that
Esvel's SQL engine went on to survive in IDMS SQL option
as well as was used as the foundation database for CA-Unicenter
development proves this point). Not that other companies
did not have useless products. Others knew when they were lying and were
clever enough to take care of the lies! In a way, though
they all cheated the client base, they did not fool
themselves! The difference was that Cullinet failed to
accept and realize the fact that these products were only
worth for marketing. You needed something real behind the
scene, which was sadly missing.
The worst product Cullinet had was the VAX-Generator. This was a pure hype. It boasted to generate applications for you within minutes! VAX-Generator took all the marketing time and resources. The sales people failed to notice the VAX database product, which was, as noted elsewhere, a System-R offshoot and a superior relational database than anything on the market at that time with the possible exception of Ingres! All the emphasis was on the Generator! It is a mystery why a leader in database technology ignored the SQL database product of VAX, especially when SQL was THE issue of the times! But then the top echelons of Cullinet was occupied by the imported people from other companies who didn't know any damn about IDMS database or any database for that matter!
The next useless product was the Application Expert on VAX. Precious time and money were wasted trying to port this rubbish to IDMS! Believe it or not there were even working versions with manuals of both Generator and the Expert Systems for IDMS! Management guys from the Generator and Expert Systems occupied the VP posts in Cullinet for too long time. IDMS was sidelined. Today we can say that IDMS never recovered from this lack of attention and positioning! This was the real reason for the fall of Cullinet, and not DB2 or Unix databases as some people prefer to believe. DB2 was a totally useless product running only on TSO/E at that time, maturing only sometime in 1993-94 with the Version 4.3! [In many cases where DB2 replaced IDMS, later Oracle replaced DB2 in the late 90s]. Unix databases were not there in the mid-eighties, they were just being born out of the original VAX products - Oracle and Ingres. As Prof Michael Stonebraker pointed out in 1996 in an Informix presentation Cullinet allowed the relational startups to prosper, in spite of enough time and warning!
Experts miss the point!
One thing which is consistent with the computer industry today is that experts always the miss the point! Experts are basing their arguments on experience, which does not make any sense in a field which is changing every day and even every second. Computer Guru and talker of the early 80s, James Martin once admitted that he completely missed the PC revolution! Today's analysts are not honest enough to admit any mistakes or misses!
So if anyone believes that the fall of Cullinet was related to the fall of mainframe, there is no truth in it. The last decade saw the collapse of companies which had nothing to do with mainframes - digital, Tandem, Wordperfect, Ingres, Gupta.... And Informix and Sybase might join the fallen list too soon. Of these the most amazing is the digital who was the pioneer in the mini computer field. Unix and C language were born using digital's PDP-11 mini machines! Oracle and Ingres were initially devloped and sold on digital machines. Is it not ironic the same Unix and related systems are the cause of the demise of digital?
Nothing comes out of nothing!
If we take the four most successful companies, we see an amazing fact! 3 out of 4 are headed by CEOs who were once technicians. Microsoft by Bill Gates who was the wizzard programmer of Gw-Basic for CP/M (or QDOS) operating system. Charles Wang of CA programmed and wrote CASORT documents for IBM mainframe, Scott McNealy of Sun is basing the success on the technical strength of Unix and Java. All this underlines one point: the technicians can beat the pure marketing guys in their own game!
Ellison of Oracle is an exception, but is compensated by the manpower usage in the company. Many think Oracle's success is solely because of their marketing! Oracle owes its success to its 1000s of technical consultants who managed to implement the sub-standard database at various sites masking the shortcomings and justifying the company's marketing claims. Oracle realized one fact very early: a database cannot be just sold, it has to be sold and implemented. A client spends at least 10 to 100 times money on programming than the original license fee of the database product! Oracle participates in this implementation - it serves two purposes: one, it helps the client and avoids faliures; two, it creates a hell of a lot revenue for the company. [IDMS's own big success in Finland in the eighties was very similar: Finnsystems (not Cullinet) sold and implemented IDMS there making it the biggest database). In short, the marketing claims were defended by the hardwork of an 'army' of technicians!!!
Human Factor is the basis!
In all these examples, one thing is emerging: human factor, not automatic tools, is the root casue of success, even when the vendor boasts the opposite! Without 'human factor', companies won't make it even if the bases product is very good! The fall od Cullinet, failure of OS/2, the failure of Ingres, even the late failure of Digital VAX are clean examples of good products not able to make it! Oracle's success story alongwith the successes of huge consulting companies like Andersen and Cap Gemeni proves the other point. Total failure of CASE Tools and traditional client-server are example of the fact that buzzword alone is not enough!
In this Issue : Back to Top
As has been the case over the last few years, IDMS customer base has been targetted with arrows ranging from OPAL to the new Platinum and Sterling tools. For a change there was not much talk about CA OpenIngres and Gateway. Or rather, has the failed Gateway reincarnated in some other form now? The following comments in IDMS-L by one IDMS client summarize the tempo:
"Which brings up a niggling little something... On Monday, we had a couple of CA people come in to give an overview of the capabilities of Jasmine, Opal and all that stuff. On the way out the door, they happened to mention that a handful of current IDMS customers have an 'x-year' plan to eventually ween themselves off IDMS to move to something else. We all know that this is occurring all over the place, and this has been the case for ages. But... there was no indication from these two CA reps that Computer Associates has any thought other than this is an irreversible trend worldwide, and basically 'oh, well'. "
What is that "something else"? Having totally failed to convert IDMS client base to Ingres the vendor seems to be happy if that "something else" is something where they can sell the newly acquired tools! It is too much to expect from the vendor who with the yellow journals believed in the "trend" and the death of the product by 1995! It's no secret that in many countries the CA sales force who do not know ABC of the product, have accelerated the "trend!"
Attempt to link Unicenter and Jasmine (who in the world is using Jasmine?) with IDMS continues. By the click of the mouse a red button changes to green and all your journal and startup problems are solved with the omnipotent Unicenter! [DBAs watch out, your jobs are threatened!] . One doesn't have to be an industry analyst to predict that Jasmine is in the end phase to dustbin and the vendor will come up with a new name/product by next year!
There was no talk about how to make SQL in IDMS usable. In fact, the industry does not perceive IDMS as relational database. Without SQL, there is no future for a database system today (Well, you may come up with performance and even ease-of-use of the nonSQL product etc.. well, all these have been the arguments in the eighties and nineties and it did not work well with the industry positioning.. no reason to think it will work today]
In fact a recent slide by Michael Stonebraker at Informix tells the story almost correctly.[ Incidentally Stonebraker is the father of Ingres at Berkeley, one of the best products on mini machines then, which used QUEL instead of SQL, and was a superior product, but later failed in the marketing and ultimately ended up as a frozen bit in CA basket!]
"Almost" because, Cullinet had the SQL product almost ready in 1987 (IDMS R 11), but it was not born until 1991! Late, but not too late in fact, but CA failed to market the product and customers failed to use the SQL 'Option'! As a follow-up to IDMS History published in IDMS/SQL News 8.1, we have received some new information about the fall of Cullinet from an ex-person in Canada. Details appear elsewhere in this issue of IDMS/SQL News.
If you forget to create access module for a COBOL program, you may get SOC6 abend at runtime. The SQL error message says the program module cannot be found. You won't be told that access module is missing. Also the compilation of the cobol program goes through without any warnings.
"For a network database, is there
any way to use SQL to select records that do NOT belong to a set?
Here is my problem: The path is REC1 -> REC2 -> REC3.
Only REC1 has a calc key. REC2 is stored via set REC1-REC2, and REC3 is stored via set REC2-REC3.
I am trying to select instances where REC1 has REC2 members, but no REC3 members." [source: IDMS-L]
Search criteria where "REC2-REC3" is valid syntax, but where "not REC2-REC3" is not valid syntax.
select * from rec1 r1a, rec2
where r1a.key = 1234
and not exists (select * from rec1 r1b, rec2, rec3
The above select with the NOT EXISTS sub select is traditionally known as OUTER JOIN in SQL terminology.
Note: A similar issue appeared in IDMS/SQL News 8.1. There it was mentioned that IDMS was wrong in returning 'record not found'. This is not true. IDMS was right. The problem was with NOT EXISTS usage. Though it raises questions on the where clause and the predicates of the = operators of SQL sub select, the correct query should have been as follows:
WHERE NOT EXISTS
(SELECT * FROM A
WHERE A.ID = B.A_ID ) ;
*+ A_ID NAVN POSTNR
*+ ---- ---- ------
*+ 4444 DIFF 1081
*+ 1 row processed
[IDMS/SQL 8.1 version used the following query instead:
We tried the following in IDMS SQL 14.0
SELECT * FROM B B1
WHERE NOT EXISTS
(SELECT * FROM A, B B2 WHERE A.ID = B2.A_ID) ;
Row not Found! ]
SEND TABLE for IDMS Processing
SEND TABLE = sql-table-name req
TYPE=CREATE / APPEND / REPLACE opt
COLUMNS=MAXIMUM / field-reference,... opt
SUMMARY / DETAIL opt
ASCENDING / DESCENDING opt
NOT ALLOWED opt
SEND TABLE stores information from the current (or named report) in
an IDMS SQL table.
To specify a report other than your current report, use the REPORT
and USER parameters.
To specify the location of the table, use the DICTNAME parameter.
To specify the columns to be included, use the COLUMNS parameter.
To specify whether summary or detail lines are included in the
table, specify SUMMARY or DETAIL. The default is DETAIL. Using
SUMMARY excludes detail lines from the table.
To specify the table type, use TYPE:
o CREATE -- a new table
o APPEND -- an addition to an existing table
o REPLACE -- a replacement table
To specify an alternate area, use the AREA parameter. The area
parameter consists of 2 parts: segment name and area name.
To define index characteristics, use the INDICES parameter and spec-
o One or more single or concatenated keys with field-name
o Sort order with ASCENDING (default) or DESCENDING
o Whether or not to allow duplicate values
SEND TABLE EMP-INFO INDICES=(EMP-LAST-NAME-0415) ASCENDING
Questions from IDMS-L: The SQL option includes the capability of creating "temporary tables". Can anyone tell me where a temporary table is actually stored during its brief existance - memory, scratch area, other?
Answers also appeared on IDMS-L: "Temporary
tables go in scratch right along with all the
intermediate results and the final result sets from each
SELECT. When we first really started using SQL here we
had to expand our scratch area as our system was locking
up during large SQL
That's right. Temporary tables are 'alive' only for the duration of the run unit. There is no index for the temporary table. Another point to note is that a temporary table can be created even if the transaction is read only.
SQL clients should obviously have a larger scratch area, that too in a high-speed device or in XA. Batch jobs should have a SYSIDMS parm syaing XA_SCRATCH=ON.
[IDMS/SQL acknowledge Kay, Leslie and Alan for this discussion on IDMS-L]
The concept of NULL has been sometimes broadcast as a nice feature of SQL based databases. NULL means unknown and is different from 0, spaces or even binary zero (X'00'). Every column of an SQL table can allow null values unless you define the column as NOT NULL. Allowing NULL takes more spaces in the database. Also in order to handle null SQL /SELECT FETCH statements must have indicator variables defined.
Even though the relational writings by Dr Codd & Co amplifies the relevance of NULL, in practice this is a total nonsense. The concept of unknown might be philosophically high-sounding, but worthless in commercial data processing. It creates head-ache in programming, inconsistent results and uses more space in the database. Besides the above mentioned problems with programming for NULL, we take another simple example where NULL support in SQL contradict common sense.
IDENT CHARACTER(10) NOT NULL,
BELOP DECIMAL(6) ) ;
Let's populate the table with values and 100, 200 and null. SELECT gives the result as:
SELECT * FROM NULL_PROBLEM
IDENT BELOP ----- ----- VALUE1 100 VALUE2 200 NULL VALUE <null> 3 rows processed
SELECT AVG(BELOP) , SUM(BELOP) / COUNT(*) FROM NULL_PROBLEM ;
(EXPR) (EXPR) ------ ------ 150 100 1 row processed
The AVG SQL function does not count null values or rows in calculating the average whereas the aggregate function SUM ignores the NULL values (or rather take it as 0) and COUNT (*) is not aware of the null value. Changing the query as below may solve this issue. But it is still ambiguous .
SELECT AVG(BELOP) , SUM(BELOP) / COUNT(BELOP) FROM NULL_PROBLEM ;(EXPR) (EXPR)
1 row processed
Also the null comparison is done in the following way.
SELECT COUNT(*) AS "NULL BELOP ROWS"
FROM NULL_PROBLEM WHERE BELOP IS NULL;
*+ NULL BELOP ROWS
*+ 1 row processed
Some Useful Displays in OCF
- DIS ATTR OCF : to get a list of all SQL command files
- DIS ALL SCHEMA : will list all schema headers in the CATALOG
- Dis schema idmssql ; : lists the definition of schema IDMSSQL
- Dis schema idmssql all; : lists all tables under schema idmsssql
- SELECT NAME, TYPE, TABLEID, TIMESTAMP FROM SYSTEM.TABLE : list of tables with timestamp etc
|PotPourri - Technical and not so Technical In this Issue : Back to Top (Contents)|
One of the ways to debug an abnormal situation in an ADS or DC Cobol program is to SNAP memory areas to the log. In ADS there are today easier methods of debugging using ADS/ALIVE. There is no COBOL/Alive! The Online debugger is the only method left to COBOL programs. Snap has the following syntax.
This works fine for most. But look at the following statement.
TITLE ' SUBSCHEMA CONTROL'
What happens here is that SNAP itself will overwrite the error-status field! After the SNAP the error-status will be set to '0000', if SNAP was successful! More interestingly during the SNAP only the major code will be overwritten! That is if the error-status had been 0302 before, what the snap will show will be 4020.
10:02 P212O150 SUBSCHEMA CTRL 10:02 MOST RECENT USER MODE REGISTERS. 10:02 R0 R1 R2 R3 R4 R5 R6 10:02 0F2F08CC 0F2F08CC 0F2F08A0 0F1F676E 0F1F5254 00000000 0F27FBB8 10:02 R8 R9 R10 R11 R12 R13 R14 10:02 00000000 0F2F02D0 0F1F52B0 0F1F713A 0F1F5280 0F2F0030 0F2F07D8 10:02 0F2F07D0 40404040 40404040 D7C3D6C2 D6F2F0F0 * PCOBO200* 10:02 0F2F07E0 F4F0F0F2 0000FF08 40404040 40404040 *4002.... * 10:02 0F2F07F0 40404040 40404040 40404040 40404040 * * 10:02 0F2F0800 40404040 40404040 40404040 40404040 * * . . .
If you have looked at the IDMS-STATUS Section expansion, you may see that this issue is alreday taken care of there. Here it is:
MOVE ERROR-STATUS TO SSC-ERRSTAT-SAVE MOVE DML-SEQUENCE TO SSC-DMLSEQ-SAVE * SNAP FROM SUBSCHEMA-CTRL TO SUBSCHEMA-CTRL-END * ON ANY-STATUS MOVE 0 TO DCNUM1 DCNUM2 DCFLG1 DCFLG2 CALL 'IDMSCOBI' USING SUBSCHEMA-CTRL DCBMSCOM (22) DCSTR1 DCSTR1 DCSTR1 SUBSCHEMA-CTRL SUBSCHEMA-CTRL-END DCBMSCOM (1) IF NOT ANY-STATUS PERFORM IDMS-STATUS; ELSE NEXT SENTENCE.
The ERROR-STATUS and DML-STATUS are moved further down in the subschema-control before the SNAP is done. Note the original code of SNAP:
SNAP FROM SUBSCHEMA-CTRL
Normally unlinked indexes do not affect the existing Schema or the database structure. ie Unlinked indexes can be created and dropped at will. But there is one thing to be aware of: if you add a new unlinked index to an existing record type which is compressed (IDMSCOM /DECOM or Presspack) you may need to restructure¨, after all, if the index key (or part of it) is in the compressed part of the record.
11.3 System-supplied data field names
Purpose: System-supplied data field names specify variable data fields
supplied by the CA-ADS runtime system.
>>--------- + ------- DIRECT-DBKEY
+- - --+ +- DB-NAME -----------------¦
+- NODE-NAME ---------------¦
+- agr-data-field ----------¦
+- amr-data-field ----------¦
+- $RESPONSE ---------------¦
+- $PAGE -------------------¦
+- LENGTH (map-field-name) -¦
+- CURSOR-ROW --------------¦
+- CURSOR-COLUMN -----------¦
+- ERROR-STATUS ------------¦
+- JULIAN ------------------¦
+- JULIANX -----------------¦
+- DATE --------------------¦
+- DATEX -------------------¦
+- TIME --------------------¦
+--- $ERROR-COUNT ----------¦
¦ +- $ERRCNT ------+ ¦
+--- $INPUT-COUNT ----------¦
¦ +- $INCNT -------+ ¦
+--- $OUTPUT-COUNT ---------+
+- $OUTCNT -------+
We got a maping external picture question, which was graciously answered by on of the IDMS Consultants. More on this in the next issue of IDMS/SQL News. Here is a short writeup.
The field in the record is defined as 02 NEGATIVE PICTURE IS S9(5)V9(2) USAGE IS DISPLAY
MAPC external picture is to be modified
Element name: NEGATIVE
In record WS-STEST300
Edit Picture ++++++9.9(2) (floating + or - sign)
On the next page remember to edit justification. It seems the deafult is coming sometimes
as 'Right' which is not right always! Also for numeric field it is better to specify 0 as pad
Justify data. . . . . . . . . . . . . . 2 1. Left 2. Right
Pad character format . Display . . . . 0
Hexadecimal . . F0
The final map will display values such as :
NEGAITIVE FIELD: +0.60
NEGAITIVE FIELD: +5454.00
NEGAITIVE FIELD: +17262.90
'+' sign in the first position of an
external picture, indicates signed data, and appears as either a
minus sign or a plus sign. On the other hand a '-' sign in the first position of an external picture, indicates signed
data and the sign appears as a blank if the data is positive and as a minus sign if the data is negative.
The table below illustrates how an external picture is constructed for a field when automatic editing is enabled: ________________________________________________________________________ | Internal | Usage Mode | External Picture | | Picture | | | |_________________|___________________________|__________________________| | XXX | DISPLAY | X(3) | |_________________|___________________________|__________________________| | A(8) | DISPLAY | A(8) | |_________________|___________________________|__________________________| | S99V99 | DISPLAY | +99.99 | |_________________|___________________________|__________________________| | S9(4) | COMP (Half word) | +9(8) | |_________________|___________________________|__________________________| | +9(4) | S9(8) | COMP (Full word) | |_________________|___________________________|__________________________| | S9(16) | COMP (Double word) | +9(4) | |_________________|___________________________|__________________________| | | COMP-1 | +9.9(7)+99 | |_________________|___________________________|__________________________| | | COMP-2 | +9.9(16)+99 | |_________________|___________________________|__________________________| | 9(7)V99 | COMP-3 | 9(7).99 | |_________________|___________________________|__________________________| | Note | | | | Internal pictures cannot be specified for COMP-1 or COMP-2 elements. | | The above external pictures for COMP, COMP-1, -2 and -3 elements are | | the default external pictures for these elements when automatic | | editing is enabled for a field. | |________________________________________________________________________|
Though the oldtimers still use IDD for simple editing of process modules, DME - Dictionary Module Editor - is the favoured editor of the new comers, because of its similarity to TSO editor and IDD's own lack of 'CHANGE' command. DME is not without blemishes. One thing it is far heavier than IDD. It takes more resources and so support less users concurrently than IDD, in practice. As a plus point DME remembers the name of the last module you edited. This is in fact kept in a QUEUE record attached to your user-id. On the negative side again, this retention period of this QUEUE record is forever - it will never get deleted. If you do QUED you will see several of them hanging around, though no one might be using them!
DME_PRF2USR6889 0000001 99.112 255 PRM KEPT DME_PRF1USR5432 0000001 00.070 255 PRM KEPT DME_PRF1USR5643 0000001 98.342 255 PRM KEPT
Here the last one is created in 1998 and is still there. Retention period of 255 is also misleading. Because here 255 (=2**8 - 1) means forever! It will be a good idea for DCA/DBA to go through the QUEUES once in a while and clean the stagnant ones, so that QUEUE area is not filled up with junk information.
There seems to be a PTF which will allow you to change this 255 into some other number.
Now that the dictionary is not maintained well (because of lack of resources on mainframe or otherwise) it is time to take a look at the modules - processes, qfiles, - you have accumulated there over the last 20 years!. Here is a simple OLQ command sequence to do the job. One can make this into a QFILE and add some more features to avoid area sweep if that gives better performance for a large dictionary. Also it might be wise to run this as an OLQBATCH job, since the online may exceed the scratch requirements because of the size of the report.
SET ACCESS OLQ SIGNON SS IDMSNWKA DICTNAME SYSDIRL DBNAME your-dictionary SELECT MOD-NAME-067, MOD-VER-067 AS V, COUNT(*) AS SUM-LINES - FROM MODULE-067, TEXT-088 - WHERE MODULE-TEXT AND MOD-VER-067=1 - GROUP BY MOD-NAME-067, MOD-VER-067 MOD-NAME-067 V SUM-LINES ---------------------------------- AUTOSTATUS 1 14 BATCH 1 15 PROCA100-RP1 1 459
. . . The above QFILE can be modified to get a final summary too. Easy but tricky code, not that clear from the manual!. Also the version can be given as parameter input, 1 taking the default. Here it is:
MOD QFILE NAME IS MOD-SUMMARY VERSION IS 1 PUBLIC ACCESS IS ALLOWED FOR ALL QFILE SOURCE FOLLOWS &P1=1 SET ACCESS OLQ SET UNDERLINE '-' SIGNON SS IDMSNWKA DICTNAME SYSDIRL DBNAME your-dict OPTIONS ALL HEADER ECHO NOFILLER FULL WHOLE INTERRUPT OLQHEADER - NOPATHSTAT NOSTAT COMMENT VERBOSE NODBKEY PICTURE CODETAB NOSYN SELECT MOD-NAME-067, MOD-VER-067, COUNT(*) AS SUM-LINES - FROM MODULE-067, TEXT-088 WHERE MODULE-TEXT AND - MOD-VER-067=&P1 GROUP BY MOD-NAME-067, MOD-VER-067 EDIT MOD-NAME-067 - ALIGN LEFT - PICTURE 'X(22)' EDIT MOD-VER-067 - ALIGN RIGHT - PICTURE '-ZZZZ9' EDIT SUM-LINES - ALIGN RIGHT - PICTURE '-ZZZZZ9' PAGE HEADER BLANK LINES AFTER 1 - LINE 1 'MODULE-067 REPORT' CENTER - LINE 2 '$DATE' CENTER PAGE FOOTER BLANK LINES BEFORE 1 - LINE 1 '- ÅPAGE -' CENTER COMPUTE SUM-LINES-TOTAL-ALL=TOTAL(SUM-LINES) GROUP BY ALL LEVEL 1 EDIT COMPUTE 'SUM-LINES-TOTAL-ALL' - ALIGN RIGHT - PICTURE '-ZZZZZZ9' DISPLAY LEFT EVEN COLUMNS = MOD-NAME-067 MOD-VER-067 SUM-LINES MSEND
Recently there was a question in IDMS-L news from Brian Brown
of McGraw Hill. The question was on how to find out what dialogs
use a particular DC-COBOL subroutine. The idea was to search the
process source. The above QFILE can be modified to accomplish this.
IDMS/SQL News could not give the ful solution here. We will fill in as soon as we get a proper response from one of the readers! Here is one suggested by one of the readers:
It is rather easy to convert the above QFILE to include a search with LIKE operator. MOD QFILE NAME IS SEEK1 VERSION IS 1 PUBLIC ACCESS IS ALLOWED FOR ALL QFILE SOURCE FOLLOWS &P1=1 SIGNON SS IDMSNWKA SCHEMA IDMSNTWK( 1)DICTNAME SYSDIRL DBNAME TESTDICT SELECT MOD-NAME-067, MOD-VER-067, COUNT(*) AS SUM-LINES - FROM MODULE-067, TEXT-088 WHERE MODULE-TEXT AND - MOD-NAME-067 LIKE '%100%' AND - MOD-VER-067=&P1 GROUP BY MOD-NAME-067, MOD-VER-067 EDIT MOD-NAME-067 - ALIGN LEFT - PICTURE 'X(22)' EDIT MOD-VER-067 - ALIGN RIGHT - PICTURE '-ZZZZ9' EDIT SUM-LINES - ALIGN RIGHT - PICTURE '-ZZZZZZZZZ9' PAGE HEADER BLANK LINES AFTER 1 - LINE 1 'MODULE-067 REPORT' CENTER - LINE 2 'ÅDATE' CENTER PAGE FOOTER BLANK LINES BEFORE 1 - LINE 1 '- ÅPAGE -' CENTER COMPUTE SUM-LINES-TOTAL-ALL=TOTAL(SUM-LINES) GROUP BY ALL LEVEL 1 EDIT COMPUTE 'SUM-LINES-TOTAL-ALL' - ALIGN RIGHT - PICTURE '-ZZZZ9' DISPLAY LEFT EVEN COLUMNS = MOD-NAME-067 MOD-VER-067 SUM-LINES MSEND
DBNAME Mapping Revisited
Now that almost everyone is running Release 12.0 or 14.0, gone are the days when DBNAME mapping from an ADS dialog-process was handled solely by the dbname table mapping of subschemas. ADS process written new, should contain
MOVE 'dbn1' TO DB-NAME.
so that the dbname is resolved at run time. If not one ends up getting 149x errors.
Another way some customers have avoided this situation is to define a default dbname (say DEFDB) and put all the existing subschemas references there. And at the bottom of DBNAME Table, add
SUBSCHEMA ???????? MAPS TO ???????? USING DBNAME DEFDB as a catchall for all these subschemas.
*** DBTABLE DBTB0000 COMPILED 98-12-21 AT 13.42.32 *** DBNAME *DEFAULT MATCH ON SUBSCHEMA IS OPTIONAL SUBSCHEMA IDMSNWK? MAPS TO IDMSNWK? USING DBNAME SYSDIRL SUBSCHEMA IDMSCAT? MAPS TO IDMSCAT? USING DBNAME SYSDICT . . . SUBSCHEMA SUB001 MAPS TO SUB001 USING DBNAME DICT001 SUBSCHEMA SUB002 MAPS TO SUB002 USING DBNAME DICT001 SUBSCHEMA ???????? MAPS TO ???????? USING DBNAME DEFDB DBNAME DEFDB MATCH ON SUBSCHEMA IS OPTIONAL SEGMENT EMPDEMO SEGMENT SEGM001 SEGMENT SEGM002 SEGMENT SEGM003 SEGMENT TSEGM001 . . . This way any subschema not found in the top mapping will be matched with DEFDB if all the available segments are included there.
|Special Dispatch I In this Issue : Back to Top|
[IDMS/SQL 9.1 carried an article on Linux by student Pekka Salminen. Now an IDMS veteran replies to the article here from a cmmerical viewpoint]
Linux is freely distributed. "Free" here means the source code is freely given to you and there is no copyright on either the source or the whole Linux Kernel as such. In practice, one has to pay for the packaging and the book to the vendors like SuZe, Red Hat, Celdera. This is understandable. The price you pay is worth it and somewhat amounts to the Windows license you would have to pay when you buy a PC. Even with all this, Linux is not entirely 'free' as 'perceived by the user' if we borrow a term from the relational gurus. There are 2-3 versions coming every year. Then you have to upgrade to the new all the time. There you end up paying more, for an ever-changing product. Being a free product there is no guarantee or technical support. Even with all the stability it can offer, this will intimidate the ordinary non-technical users.
End users, rather "stupid end users" decide the fate of a PC product now! In this respect, Linux box is still far away from the user-friendliness an end user is expecting. Though X Windows has improved a lot in install and ease of use, still it is a nightmare for a non-technical user to make full use of Linux. Obstacles are there in every step - from a simple diskette copy to install of a new product you just downloaded from the net -
So though Linux is a far superior operating system than Windows9x, until the 'stupid end user' demands are satisfied, it won't be a threat to Miscrosoft in the real market place. Yet again we are seeing the same situation when DOS/Windows combination upstaged OS/2 from IBM in the eraly 90s.
Webster's Dictionary lists the meaning as: "(obs) supplicate, (archaic) to pray against, to seek to avert, to disapprove of , depreciate". The word is rather an obsolete , but today you see this in many Java and html documentations. The obsolete word has got a facelift with its usage in the computer software now. Features which have been broadcast as vital and userfriendly in an earlier version of the new product, is all of a sudden, undeseirable feature in the new version. So a lot of html features you see today are deprecated in the new version!
Usage of font tags has been deprecated in the new html. CSS (Cascading Style Sheets) have been broadcast as the new trend. This has been further changed by the advocacy of XML - Extensible Markup Language.
The same is true for Java. This is quite unlike the compatibility one has witnessed on mainframes - operating systems, databases like IDMS and languages like ADS. All the features of earlier IBM operating systems were carried over to the new MVS. IDMS and ADS support all the code written as early as 1980 even today. In contrast the lifetime of a new all powerful code is limited to a few years if you are lucky!
The new all powerful programming language Java is not free from this syndrome. Many features of Java SDK 1.1 are deprecated in Java SDK 1.2. The following compilation messages give an example:
Note: SocketExample.java uses a deprecated API. Recompile with "-deprecation" for details. 1 warning
Javac -deprecation SocketExample.java
SocketExample.java:28: Note: The method void setEchoCharacter(char) in class java.awt.TextField has been deprecated.
SocketExample.java:33: Note: The method boolean action(java.awt.Event, java.lang.Object) in class java.awt.Component has been deprecated, and class SocketExample (which is not deprecated) overrides it.
public boolean action(Event evt, Object arg)
Note: SocketExample.java uses a deprecated API. Please consult the documentation for a better alternative.
Frames divide the browser window into smaller segments and display a different web page in each one. It also reduces the readable window of your display. One of the overlooked evil effects of using frames is the fact that it adversely affect the portability of the web page. Frames make it impossible to download a site's contents to your PC. This is required if you are browsing an instructional website, with multiple html files.
Also it is a tough job to save the frame pages on your local PC. You may save and everything seems to work ok. Only later, much later, you will be disappointed to see that what he has saved is only the cover page which refers to other frames where the actual html is!
<TITLE>The crazy site using frames</TITLE>
<frame name="f1" src="frame1-index.htm" scrolling=no>
<frame name="f2" src="frame2-contents.htm" scrolling=yes>
Browsers which do not support frames can go to hell!
It is an extremely nasty feature. There is no point in dividing your 17" screen into multiple frames, when the whole purpose is to see and read something. So sites like CNN, Microsoft, CA etc do not use frames.
Now and then we hear from the software vendors and industry pundits that they have now the ultimate software in hand - the software which solves all your problems, the tool that does create everything for you, the language which is THE language of all languages, the architecture which does address all issues, the package which takes care of everything including writing programs for you! This is not new. If you go back to the 60s, you may note that PL/1 language was introduced by IBM to replace both FORTRAN and COBOL. Nothing of that sort happened. Later, languages like Pascal and in more recent times C on UNIX tried to dominate the arena. But soon C++ was the paradigm language. Now it is Java!
IBM even tried CSP (Cross System product - an interpreted language) to be the commercial central point of portable languages. It was another flop even on IBM mainfraims.
CASE Tools in the late 80s and early 90s claimed everything. But the CASE tools were the biggest flop of all. IBM's SAA (whatever they mean that) and AD/Cycle also claimed a single point solution accomplishing nothing.
In today's WWW age it is important to know the buzzwords. Here are a few :
PERL - stands
for Practical Extraction and Report Language. Perl is a
language optimized for scanning arbitrary text files,
extracting information from those text files, and
printing reports based on that information. It's also a
good language for many system management tasks. The
language is intended to be practical (easy to use,
efficient, complete) rather than beautiful (tiny,
elegant, minimal). Typically, PERL had been the chosen
language for CGI script programming until now.
CGI - Common
Java - Is the language created by Sun Microsystems. Java claims to be a truly object oriented language to such extent that you can only write object oriented programs in Java. It's like C++ but much simpler. Unlike C++, Java was born for internet during the internet era of the 90s. One big plus point of Java is the fact that the compiler is FREE - Yes, it's free from Sun Microsystems and there are no timebombs. In recent months IBM has been pushing Java more than Sun.
Java has made big headway into the commercial marketplace now. Enthusiasts claim Java to THE LANGUAGE of the coming decade.
the script language which runs under browsers and was
created by Netscape. It is independent of Java though Sun
allowed Netscape to use the word 'Java' to it.
|Special Dispatch II In this Issue : Back to Top|
I LOVE YOU - hits the World!
On 4th May 2000, "I love you" Virus hit email Systems from Manila to Mexico and created havoc forcing many to shutdown their servers. According to CNN News
"I LOVE YOU" virus infected computers around the world Thursday -- overloading e-mail systems, deleting files and causing an $100 million in damage in North America alone. The price tag would exceed $1 billion by Monday morning. More at 5th May News on CNN
The estimated cost of the 'I Love You' Virus was in fact more than 15 billion dollars!
Typically the virus gets activated if you use the Microsoft Outlook which triggers a chain reaction of eMAILs besides deleting some files on your PC! affects scripting files common to company networks. The email carries a Worm with the subject "ILOVEYOU" and a message that says, "kindly check the attached LOVELETTER coming from me." The attachment is named "LOVE-LETTER-FOR-YOU.TXT.vbs." The Worm also searches through the all subdirectories and overwrites all files with the extensions .JPG, .VBS, .JS, .JSE, .CSS, .WSH, .SCT, .HTA, .MP3, .MP2 with its own copy. It only affects Windows 98 and NT operating systems. The sites hit include banks, House of Commons in London, newspapers, Pentagon and so on. Our short memory tells us that this is very similar to Melissa which created problem in March! Recall the news from March 1999 "On Friday March 26th, Microsoft was made aware of a Word macro virus (dubbed "Melissa") that has affected a number of users and companies. As with all security issues we take this very seriously, and because of the widespread nature of this particular virus, Microsoft is taking steps to proactively notify our customers to help minimize its impact. By taking the necessary precautions you can ensure it does not affect you."
Questions on Outlook and 'Virus Products'!
Experts questioned the Microsoft Office Security. What they should question is the whole philosophy behind the Office Suite being used as the font-end for many 'xyz' operations! Why on earth are people using the third-rate mail system called Outlook? Products like Eudora are faster and easier to use! The corporate policy of hooking everything on to Microsoft Office is totally wrong. Secondly, products like Word has been converted to monsters activating all kind sof macros and scripts in place and out of place, forgetting the primary purpose - just to write a letter or note!
Last, but not least, when 'Melissa' attack came, many virus vendors jumped on to claim remedies for the macro virus! What happened now? Seems the virus has developed immunity to the remedies! Virus vendors are hiding in the hole! Recall it's only weeks since sites ranging from yahoo, amazon to CNN have been jammed with junk traffic!
Once again, this should be warning to those corporate clients who are captivated by the magic of modern colorful solutions with triggered scripts and fancy stuff, forgetting the reliability and security of the existing solutions!
Gartner Group says "Asia is vulnerable"!
A Gartner Group "expert" appeared on CNN Business Asia(5th May) characterized Asia as more vulnerable to virus attacks! The reason: Asian network managers are not good enough in scrutinizing such things! Then, why did the virus propagate in Europe and America equally fast where the 'network managers' are better equipped? Where did 'Melissa' originate? Gartner Group make a living on talking stupidity on all sorts of things about which their knowledge is close to zero or even negative. Recall that this is the firm which wrote the death of IDMS ever since 1988! One dies only once, not 10 times!!! So long as macros and scripts are executed from eMAILs and Word documents automatic, so long as third class firms like Gartner Group advise corporate managers to standardize on third rate products like Office and Windows, even a child can make a virus, sitting anywhere in the world!
Variants from I Love You!
Several varaints from ILOVEYOU appeared in the following weeks .Not only the pundits and virus vendors, but also FBI and the Justice department were out there to warn people! CNN says that "Mikko Hypponen, director of virus research at anti-virus company F-Secure in Finland, said that while this virus -- dubbed "NewLove" -- can make a computer unbootable.. " On the other hand the new bug may destroy your PC therbey stopping it spreading further! Time caption of "We are better prepared" is misleading! No one is prepared! The virus does not spread because in a way it destroys itself!
There is no point in putting all the blame on "Outlook" or Microsoft or today's easier target, Bill Gates! The programming methodology followed by Outllook and Windows are not the creation of one person or one company alone. Industry created monster companies (Software, hardware and consultancy) which have dictated terms and methodologies and fed the corporate executives (who don't know anything other than making +20 on an18 hole Golf Course) with what is right and wrong for them. (According to a survey 80% of the EDP projects done between 1991 and 2000 are failures! An IDMS person will be shocked to hear this because 90% of the IDMS projects done between 1982 and 1992 are huge successes!)
The philosophy of executing a .VBS or any other script sent through a mail on your PC is simply wrong! This is extremely dangerous even when there is no virus because it is rather easy to substitute another name as a 'sender' on a mail! Mail is and should be just mail. Macros running on mail and Word are totally hopeless. Word does a lot of things automatic (several of it are annoying - one of them is that when you open a folder in Word it tries to associate every file with a product icon- if he doesn't find a match, especially on a network PC, it take ages to come back!)
Someone in a recent CNN forum claimed that all these are end user friendly productive features! Well, now you know how productive a single virus was - just $15 billion!!
Note: A related news item appeared in Web Attacks and the Whitehouse (IDMS/SQL News 9.1)
|Not so lighter
side: Small Thing Matters!
IDMS/SQL 5.3 (Aug 96) reported the $7 billion disaster of the the 'error-free' Arianne-7 rocket of the European Space Agency from French Guyana. The rockets exploded on take-off due to a silly software bug!
Now it is NASAs turn. The Mars Lander crashed earlier this year and it has been revealed that there was a software bug. NASA did not test all the things because of lack of funds!
A software flaw probably caused the Mars Polar Lander to shut off its descent engines prematurely, sending it on a fatal plunge into the red planet, according to a report released Tuesday (28th March). "Spurious signals were generated when the lander legs deployed during descent," Young said. "It gave a false indication that the lander (had) landed."
Regardless of the cause, Young suggested, similar NASA missions should require more funding, better training and more computer program testing.
"There was inadequate software design and testing. The software should have been designed to prevent premature engine shutdown," he said. "In space, one strike and you're out."
There was a full-scale test of the suspect software before flight, but some touchdown sensors were incorrectly wired, Young said. After the wiring was corrected, the test was not repeated.
Had the defect been known, a software correction would have been simple and inexpensive, he said.Late addition: The most recent Concorde disaster in Paris also underlines the same concerns. The 25-year old plane had an overhaul in September 1999 and had 'passed' an inspection only three days before the disaster. The engine 2 's thrust reverser was replaced minutes before the takeoff during a 30 minute repair and delay! And during take-off, flames were already shooting from this engine. Too late to abort the takeoff. The rest is the sad story. Without any investigation, one can conclude that the plane should not have left the ground with doubts on the engine 2. In any case, the 30 minute repair was too hasty and unsuccessful and contributed to the disaster.
PC World is full of surprises. Here we give an example of formatting a diskette from the DOS prompt. Note that the diskette has write-protection on.
C:\bat>FORMAT A: /F:720
Sett inn ny diskett i stasjon A:
og trykk ENTER når du er klar...
Controlls the existing diskformat.
Controlls 720 kB
Write protection Error
Formatting is cancelled
Do you want to format more(J/N)?
Write protection! Why doesn't he tell us in the beginning ? On ther hand if you try ERASE A:*.* then it gives an immediate message about write protection, before actually trying to erase.
Just One More:
The internet search engines are incredibly powerful. You see this power when you use a keyword search on altavista with your college classmate's name and hit his profile at a site 4000 km away in a remote place. On the other hand you also see the weakness when in the middle of the Tennis tournament in June, you search on keyword 'wimbledon' and fail to hit the home page of the Wimbdledon Tennis Tournament at http://www.wimbledon.org!
In this Issue : Back to Top
Back to Main Page
This page at http://www.reocities.com/idmssql/idms92.htm
Comments to firstname.lastname@example.org This page hosted by Get your own Free Home Page