IDMS/SQL News           6.4

Vol 6.4        Technical Information for CA-IDMSâ Users                       December 1997

In this Issue

Headlines

12.01 9707 Tape Notes
Tools 14.0/MVS
VSE tape news for 12.01
VM tape news for 12.01
Finnish IUA Meeting

Potpourri

COBOl LE/370 Issues
Performance APAR
VM/ESA Abend 3949
Year 2047 in OLQ?
Look SQL Timestampe
Is your task non-terminal or not?


Copy IDMS records in COBOL

ADSOBCOM and USERCAT=OFF

SQL in Practice:How to do Corner

DB001061 Error in SQL
Internal Security for SQL - Be Aware
SQL Processing - the Order of Execution
Out of Sync. Catalog vs SQL Database
DML / SQL Deadlock

Communication Problem for Internet Era
VG-IDMS Web Server
SQL Performance Tips at IMC 97
Display Constraints

12.01 9707 VM/ESA Tape is Released

CA-IDMS Release 12.0 VM/ESA 9707 Apar Tape has been released. See PIB # LI23444 for details.
Product: IDMS Release: 12.0 Solution #: 3776 CMS
Subject: CA-IDMS VM 12.01 APAR Tape, Genlevel C09707DBAA0, Volser A97176 Remember to upgrade to 9607 VM apar tape prior to this. PIB # LI18638 Product: IDMS Release: 12.0 Solution #: 3752 CMS. CA-IDMS VM 12.01 APAR Tape, Genlevel C09607DBAA0, Volser A96183

12.01 9707 VSE Tape is Released

CA-IDMS Release 12.0 VSE 9707 Apar Tape has been released. See PIB # LI24357 for details.
Product: IDMS Release: 12.0 Solution #: 3795 DOS
CA-IDMS VSE 12.01 APAR Tape
Genlevel C09707DWAA0

12.01 9707 MVS Tape is Released

CA-IDMS Release 12.0 MVS 9707 Apar Tape has been released. See PIB # LI20347 for details. Product: IDMS Release: 12.0 Solution #: 3754 OS CA-IDMS MVS 12.01 Maintenance Tape
Genlevel C09707DOAM0, Volser GJ9707

14.0 9610 MVS Tools Tape is Released

PIB # LI10180 Product: IDMS Release: 14.0 Solution #: 23 OS
Note that Release 14.0 MVS Client must also user Tools at the 14.0 Level.

Finnish IUA ' 97 - Fall Meeting

This year's IDMS Autumn Seminar will be held on Wednesday, 3rd December at Marina Congress Center, Hotelli Marina, at the Helsinki Harbour Terminus. Year 2000, Release 14.0, Web Interface to IDMS and SQL Issues will dominate the discssion. Participants from outside Finland include Hillrich Oncken, CA Germany, Gopi Nathan, CA Norway and Peter Charles, Cogito Ltd, London. Details at IDMS'97 in Helsinki

newyear.gif 4K

IDMS/SQL News on the Web


Visit IDMS/SQL News at
http://www.reocities.com/idmssql/

email address: idmssql@reocities.com attn: IDMS/SQL


Information User Association


Home Page is http://www.iuassn.com
Join IUA, membership has its advantages and is free.
D

IDMS Client Visits CA Islandia

Senior Managers and IDMS DBA from an Oslo IDMS client, had a strategic meeting with Russ Artzt, Executive Vice President R&D Computer Associates, at CA Headquarters in Islandia, in October 1997. Judy Kruntorad and Ken Reiff, both from CA-IDMS Development Center, Westwood, were also present in the meeting.
Stop Press:

14.0 Maint Tape?

The one and only tape for R14.0 is 9610 Tape.The maintenance tape for MVS will be released only after 14.0 GA tape for VSE, VM, BS2000 and MSP are released. Latest info shows that MVS maint tape is under QA. u

Your Contribution!

      - The Editor
This is your newsletter! So your contribution is essential. Articles can be sent in the following languages at the moment : Finnish, Swedish, Danish, Norwegian, Dutch, German, French, Spanish, Italian and Flemish, and ADS/SQL(!) to idmssql@reocities.com. And if you don't know any of the above, English can be used!

SQL Quickref on the Web

The new R14.0 SQL Quickreference is available on the Web at

Visit Scandinavian Corner at
http://www.reocities.com/idmssql/scand1.htm

Release 14.0 Problems at
http://www.reocities.com/idmssql/r14.htm

A Potpourri of Information: Technical and not so technical

COBOL LE/370 Run time

COBOL/370 runtime environment is heavy and several of the default options are not suitable for online applications.

See LO06474 and LO06375 for the guidelines for LE/370 under IDMS/DC. Also LI18624 gives a sample CEEXOPT for online DC applications. This PDC supercedes LI06351. The recommendations given have been found to be more efficient and useful in most instances. Modifications may be made from time to time based on experience.

The source is provided as a sample for assembling a CEEUOPT module for use with table procedures or online CA-IDMS/DC/UCF programs compiled in an IBM Language Environment for MVS and VM. The sample options may not be appropriate at all sites, but they provide guidelines which will be valid for most table procedures and online programs.

In particular note that the value for ABTERMENC must be as shown in the PIB. Also note that various storage size defaults should be reduced from the normal IBM installed defaults. Storage utilization in a CA-IDMS/DC/UCF system is most efficient if storage sizes are specified as twelve bytes less than a multiple of 4096.

See the IBM Language Enviroment for MVS and VM, Installation and Migration under MVS for information on Creating an Application-Specific Run-Time Options Module. Once a CEEUOPT load module is created, it should be linked with CEEUOPT load module is created, it should be linked with each table procedure or online CA-IDMS/DC/UCF program compiled under Language Environment for MVS and VM.

Performance PTFS for COBOL/370 in DC

IDMSDC/1467:

COBOL or PL/I programs compiled under Language Environment for MVS and VM use much more CPU in an online CA-IDMS/DC/UCF system than the same programs compiled and run in a non-LE environment. See apar TB96223 or its published equivalent.

IDMSDC /1500:

In an online CA-IDMS/DC system, program IGZEPLF will be loaded each time a COBOL II program is called. No physical load (i.e., no i/o) will be incurred, but some CPU overhead is involved in the switch from user mode to system mode and in the handling of the load request by the DC system. Test APAR TB96230 will minimize the overhead by keeping the address of the module after it has been loaded once. This same technique is used for other COBOL support modules.

This is the list of runtime modules loaded when using LE/370 runtime CEEPLKA, CEEEV005, CEEBINIT, CEEPIPI, IGZEPLF, IGZCPAC, IGZCTCO, IGZEINI, IGZCPCO, IGZCLNK, IGZEPCL. All of them except IGZEPLF is called only once. Each time a COBOL II program is entered, the call count increases for IGZEPLF. When a COBOL program is invoked, the IBM run-time system loads various support programs. IDMSDC intercept the LOAD SVC calls and turn them into #LOADs so the programs are loaded into the DC storage pool. For some of the most frequently used programs, IDMS keeps track of the load address of the modules (e.g., for IGZEINI)in an incore table. When IDMS intercepts a LOAD SVC, it sees if the module is already loaded. If so, it doesn't even call RHDCLODR (the DC load module manager). IDMS just gives the address back to the COBOL run-time module which issued the LOAD.

IGZEPLF is not one of the modules whose address IDMS keeps in the incore table. Thus each time the LOAD SVC is issued, IDMS calls RHDCLODR. Since the module is reentrant, no i/o is incurred. LODR just finds the address. There is a little more CPU overhead, but not a significant amount. For latest information on LE/370 See TCC PR04 IDMSDC/1233 D


Optional APAR for Performance

- Documentation Update

APAR #:LS05738 will reduce cpu usage in an online CA-IDMS/DC system.Potential CPU saving with this apar can be significant.

This modification changes the way storage is allocated during Pass 2 storage allocation and will affect storage pools that only contain System types of storage. System types of storage are DATABASE, TERMINAL, SYSCSA, AND SYSTCE.

If this apar is applied it will affect pool 255 since this pool only contains System type storage. If you define a pool or pools that contain only terminal and database or just terminal or just database then those pools will be affected as well. If you defined a pool that containes DATABASE and USER then that pool would not be affected.

The affected storage pools will require a larger SYSGEN value, a good starting value would be at least two times the original SYSGEN value. Please note, this is just a guideline, some sites may find the increase higher and some may find it to be lower. It would probably be best to overallocate the pools initially and then reduce the size once the true affect is seen. This apar will apply to all tapes from 9407 - 9707.

We think 14.0 version of the apar is also available now.D



VM/ESA Batch abend 3949(RLE)

VM/ESA only - Long running batch exec abends 3949 out of RLEs. Increasing the RLE count in IDMSSTRT does not help (well known ptf TC18064 - IDMSDC/1461/T).

Fixed by APAR #: LO17776 (12.0), LO17778 (14.0)


OLQ Date displays as '2097'

On 14.0 and 12.01 tapes 9607 and above, the OLQ date in $DATE format YYYY/MM/DD will display as year 2097 instead of 1997. This is caused by the APAR GO97730 which is already applied on these tapes.

Format for $DATE: YYYY-MM-DD

        DEPARTMENT REPORT
               2097-10-29
 
 DEPT-ID 		DEPT-NAME-0410      
 --------		---------------
 5300 		BLUE SKIES    
 5100 		BRAINSTORMING
A PTF is available which will correct the problem.

Year 2000 in ADSO BIF

APAR Æ: LO23453 DATE: 10 SEP 1997

PROBLEM DESCRIPTION: With 2-digit years, year '00' is treated as '1900' not a leap year, instead of '2000', which is a leapyear. This solution applies to the above case for TODAY, TOMORROW, and YESTERDAY. It causes '00' to be treated as '2000'.

LOOK DATETIME

To get SQL Timestamp use :

LOOK DATETIME

IDMSLOOK - Selection Parameter Follows:
DATETIME
DATETIME ---> 1997-11-18-04.10.14.375051
CLOCK TIME -> 04:09:54.37

Timestamp is used in SQL Catalogs, Area/Table Timestamps, Log and Journal Time information.

DCMT D TIME gives you the time as

CURRENT TIME 04:08:05.55
     CURRENT DATE 97/322
     STARTUP TIME 00:34:22.26
     STARTUP DATE 97/322
     RUNAWAY INTV 00020
       STALL INTV 01800
       TIMER INTV 00005
    RESOURCE INTV 01800
    RESOURCE PROG RHDCBYE
Is your task Non-Terminal or Not ?

- Onni Kukkonen, Vegasoft Oy, Helsinki

If you have to test from a program if your task is nonterminal or terminal, you can use either #ACCEPT type=ltermid or #ACCEPT type=ptermid to find the terminal id.

In Release 10.2, for a non-terminal task, both #ACCEPT type=ltermid and type=ptermid give SPACES. In release 12 both type=ltermid and type=ptermid give LD###### where ###### is numerics. In Release 12, also nonterminal task has logical terminal LD###### but no physiacl terminal. Therefore I expected that type=ptermid would give SPACES but it gives LD######.

Because I need a consistent and foolproof way to cehck nonterminal case, the question is:

- is "#accept type=ptermid" designed to give LD###### ?

The information from CA says = YES. The solution then is to test the return code in R15.

If an Lterm does not have a Pterm, the #accept type=ptermid should give a return code of 8 in register 15. Also, if there is no pterm for the lterm, the ltermID is returned for pterm query too. The information from CA says "You can rely on the return code 8 at least for release 12 and 14. To be sure for further releases, we would have to wait for the documentation update to be published."

2. Mapping and Non-Terminal Tasks

An nonterminal task issues write-direct-to-terminal request (#MREQ OUT,MRB=map,OPTNS=NEWPAGE, LTERMID=WLTE,COND=ALL), from an Assembler user program. This works fine in the sense that the message reaches the terminal. (The message is obviously to a normal terminal)

However when the issuing task ends (#RETURN) it abends with DC016001 (storage to be freed is invalid). The storage address to be freed is always constant and it can be found in virtual memory address 0000004C. So it seems that when IDMS frees its(mapping?) control blocks, it gets a zero address.

Program works without problems in 10.2 and if we remove #MREQ it also works. So the problem seems to be assocatied with R12, #MREQ LTERMID=... and nonterminal tasks.

Problem IDMSDC/1494 documents this for 12.0 and 14.0.
DC016001 or DC027002 IDMSTMGR abends when using nonterminal task in mapping application. Overlays are also possible. An APAR has been tested and published as
12.0 is LO25373, 14.0 is LO25374.
u


Copy IDMS Record and COBOL

IDMSDMLC pre-processor can copy a record description from the dictionary to the COBOL program. For subschema records, normally this is automatic. But if you copy a record which is part of a schema and the COBOL program is not using that schema in the schema section, then the copy fails with the message:

DMLC 00008 01 COPY IDMS RECORD TEST1 VERSION 1.
 
E DML068 Record Not Found In Dictionary
For Given Subschema, Language, Or Mode

In fact, the record do exist, but is owned by a schema.

The problem can be overcome by creating a synonym for the record, and copying the synonym version number in the copy statement. So the following works.

      PROGRAM-ID.    TEST1.
      AUTHOR. DMLC TEST 
      ENVIRONMENT DIVISION.
      DATA DIVISION.
      WORKING-STORAGE SECTION.
      01  I  PIC S9(8) COMP.
     *01 COPY IDMS RECORD TEST1 VERSION 2.
01  TEST1.
          02  X1         PIC X(2).
          02  I1         PIC 9999 COMP
                              VALUE  0.
          02  WS-DBNAME       PIC X(8).
          02  X2              PIC X(2).
      PROCEDURE DIVISION.
      0-HOVED  SECTION.

Also the keyword 'RECORD' is optional in the COPY statement.
*01 COPY IDMS TEST1 VERSION 2. IDD Display follows:

 ADD  RECORD NAME IS TEST1 VERSION IS 1
 RECORD LENGTH IS 14
 PUBLIC ACCESS IS ALLOWED FOR ALL
 RECORD NAME SYNONYM IS  TEST1 VERSION 1
     COPIED INTO SCHEMA GMT1 VERSION 1
 RECORD NAME SYNONYM IS TEST1 VERSION 2
     COPIED INTO PROGRAM TEST1 VERSION 1.
 RECORD ELEMENT IS X1 VERSION 1
  ....

Some may point out that even the first one worked in 10.2. Yes, there was loophole in 10.2, by which the copy of a schema owned record did work! But this has been closed in 12.0 and the only way is to create synonym and code the version number in the copy statement. u


ADSOBCOM Error & USERCAT=OFF

ADSOBCOM works fine when compiling one dialog at a time, but when having multiple dialogs as the input, the second one doesn't get compiled. Example:

 
//INPUT    DD *
COMPILE FROM LOAD DIALOG IS(DLGD100)
VERSION IS (1).
COMPILE FROM LOAD DIALOG IS(DLGD200)
VERSION IS (1).
//
ICTL=(1 80)
SIGNON USER=BRUKER   PASS=?       
COMPILE FROM LOAD DIALOG IS(DLGD100)
VERSION IS (1) .
*** COMPILER MESSAGES FOLLOW:
DC497031 DIALOG PROCESSING BEGINNING
DC497129 PROCESSING DIALOG DLGD100  1
DC497005 DIALOG SUCCESSFULLY COMPILED
DC497032 DIALOG PROCESSING COMPLETED
*** END OF COMPILER MESSAGES
COMPILE FROM LOAD   DIALOG IS
(DLGD200 ) VERSION IS (1) .
*** DIALOG DLGD200  VERSION  1
           NOT FOUND

Solution is to specify USERCAT=OFF as a SYSIDMS parm. Also must have CA90s loadlib with CA$KSYSA in the ADSOBCOM JCL , for CDMSLIB DD statement.

USER PROFILE is changing DICTNAME on second & subsequent transactions. Each dialog named causes a new separate transaction to be started. The first BIND is done before the USER PROFILE is processed & therefore uses SYSIDMS DICTNAME, but for any subsequent transactions the DICTNAME will be the one from the USER PROFILE. Code USERCAT=OFF in SYSIDMS and it processes all dialogs.

ADS TRACE - Useful for debugging!

ADS Trace facaility is very useful in debugging, especially when you don't have ADSALIVE!

- Can be started at task level 
- ADS taskcode TRACE=ALL/CTL 
- Can be started within dialog process 
- TRACE ALL/CTL 
- TRACE OFF 
- If Symbol Table No then only CTL will be written 
- Viewed via OLP or BCF 
You get information, about

- Dialog name 
- Process name 
- Subroutine name (if any) 
- Sequence number 
- Process command 
- Command offset 
- Include module name (if any)

For DML Commands 
  - DBKEY 
  - Error status
  - DML Verb 
  - Record/Area name
u


SQL in Practice : How to do Corner     In This Issue To The Top

DB001061 Error: Document. Update

Several SQL client has got this 1061 error code followed by DTS Send/Recieve -23 Errors in IDMSBCF, CV Batch Jobs and ODBC access from PC. Basically it means that the connection bewteen the front-end and backend has broken. The
 MESSAGE NAME IS DB001061
       MESSAGE SEVERITY IS 0
       TEXT LINE IS 1
               MESSAGE IS
               'T&Å0 C&01M&02: &03 &04'
       TEXT LINE IS 2
                MESSAGE IS
               '               &05'
       DEFINITION
           'DB001061   C<sqlcode>M<module-number>'
     -     '<DTS/DNS Error Text> <return-code>'
     -     '<return-code reason>'
     -     'Data Transfer Services (DTS) between the front-end and
            the back-end have failed.  The return code is explained on
            the second line of the message.  Generally the actual cause 
            of the failure must be determined by examining the log for 
            the task.'
See APAR # GS81245 for full details.
D

Internal Security - Be aware!

- In cooperation with Technical Support and the Client

Client has internal security for SQL entities which is governed by securing the global resource USER in SRTT

SECRTT  TYPE=ENTRY,RESTYPE=USER,
          SECBY=INTERNAL

In addition, they have among other things:

SECRTT  TYPE=ENTRY,RESTYPE=SYSA,
          SECBY=INTERNAL
          SECRTT  TYPE=ENTRY,RESTYPE=DCA,
          SECBY=INTERNAL
But client observed one strange thing with GROUP security: Ordinary user bruker1 (no SYSADMIN priv.) can add himself to a group, which may have more strong rights than himself!! At the same time he cannot display a user, e.g. himself! The SRTT shows, the only Global Resources (see Chap 6 of 14.0 Sec Admin) you secure are SYSADMIN and USER, but not GROUP and USER PROFILE and therefore no security checking is done, when a GROUP is added, changed, deleted or whatever.

Adding

 SECRTT TYPE=ENTRY,RESTYPE=GROU,
        SECBY=INTERNAL
will ensure, that only authorized users will be able to add themselves or other users to a GROUP. This works. Another entity which can be secured is UPRF, the user profile. u

SQL Processing - the Order of Execution

If you submit an IDMSBCF Local Mode job to access an SQL database which is already in update mode in CV, what will happen?

Case 1.If you use only SELECT it will work.

SELECT * FROM IDMSSQL.ISLPOST 
WHERE POSTNR ='101'AND POSTSTED > 'C';
POSTNR  POSTSTED
101     REYKJAVIK
1 row processed
Case 2. If you try to update (INSERT, for example), it will fail.
INSERT INTO IDMSSQL.ISLPOST 
VALUES ('222','YRYRY');
Verb=14  EXECUTE--> INSERT INTO 
IDMSSQL.ISLPOST VALUES ('222','YRYRY')
 S Q L  SQLCODE=0004  REASON CODE=1031
DB001031 C-4M321: DB error 1228;
Tbl:ISLPOST, Area:TEMPWORK
Status=-4 Extended Reason Code=1031 
Even here, data validation takes place first; if there is any integrity violation, areas are not readied at all.
INSERT INTO IDMSSQL.ISLPOST 
VALUES (222,'YRYRY');
Verb=14  EXECUTE-->INSERT INTO
 IDMSSQL.ISLPOST VALUES (222,'YRYRY')
S Q L  SQLCODE=0004  REASON CODE=5156
DB005000 C0M324: Message for module 
IDMSBCF, SQL statement number : -1.
Status=-4   Extended Reason Code=5156     
DB005000 C0M324: Message for module 
IDMSBCF, SQL statement number : -1.
DB005156 C-4M324: Incompatible data types
INTEGER and CHARACTER in expression.  

Also if you mix SELECT and INSERT, select will go through, while the insert fails. It looks like each SQL statement is separately executed using dynamic SQL. Areas are readied individually in each case.u


Out of Sync - Catalog and Database!

In an SQL database the catalog and the database areas must be in synchronization all the time. Here I created a new index, but later restored a backup of the database by a physical (IEBGENER) copy. Tried to insert a new row:
S Q L  SQLCODE=0004  REASON CODE=1036
DB001036 C-4M321: Table NORPOST 
definition/DB out of sync
Status=-4 Extended Reason Code=1036 

Catalog has the entry for the new index which is missing in the physical database. u

DML/SQL Deadlock

            - Oslo dispatch
When you mix DML and SQL in the same application thread it works but there are possibilities of deadlock, if both the dialogs are accessing the same network database. We take some simple cases to illustrate the point.

Case1. DML read only dialog links to SQL update dialog.

It works if RETRIEVAL NOLOCK set for DDLG47.

MOD PROCESS  IS PDLG47-RP1 VERSION IS 1
MODULE SOURCE FOLLOWS
MOVE '8' TO DEPT-ID-0410.
OBTAIN CALC DEPARTMENT 
   ALLOWING (DB-ANY-ERROR).
IF (DB-ANY-ERROR) DISPLAY
   TEXT 'OBTAIN DEPT FAILED'.
LINK TO 'DDLG48'.
DISPLAY MSG TEXT
'HERE WER ARE BACK FROM DDLG48'.

ADD PROCESS NAME IS PDLG48-PM VERSION IS 1
        USED BY PROGRAM DDLG48 VERSION 1
          TEXT IS PREMAP
      MODULE SOURCE FOLLOWS
  SQL DIALOG IN UPDATE MODE
 EXEC SQL
 UPDATE EMPNET.DEPARTMENT
 SET DEPT_NAME_0410 ='UPDATE FROM DDLG48'
 WHERE DEPT_ID_0410 = 8
 END-EXEC.
 IF SQLCODE NE 0 DISPLAY MSG TEXT 
    'SQL  UPDATE FAIL'.
 RETURN.

Case 2: The same case as above, but the dialog DLG47 generated with RETRIEVAL LOCK. You get deadlock immediately!

DC001000 T13 T:0000388 ADS2 P:DDLG48 C:DEAD
WAITING ON R:LMGR LK 00000000 0125A408
DC001002 T13 T:0000388 ADS2 P:DDLG48 C:DEAD
DEADLOCKED ON R:LMGR LK 00000000 0125A408
OLQ confirms that the DBKEY 125A408 (75172:8) belongs to the DEPARTMENT Record with calc=8.

Case 3. DML protected update dialog links to SQL update dialog. The second dialog will deadlock and abend, because of area locks set by dialog 1.

MOD PROCESS  IS PDLG47-RP1 VERSION IS 1
READY USAGE-MODE IS PROTECTED  UPDATE.
MOVE '5200' TO DEPT-ID-0410.
OBTAIN CALC DEPARTMENT 
 ALLOWING (DB-ANY-ERROR).
LINK TO 'DDLG48'.
DISPLAY MSG TEXT 'HERE WE ARE'.

DC001000 T13 T:0000244 ADS2 P:DDLG48 C:DEAD
WAITING ON R:LMGR LK 00008000 0001258F
DC001002 T13 T:0000244 ADS2 P:DDLG48 C:DEAD
DEADLOCKED ON R:LMGR LK 00008000 0001258F
Optionally, dialog 48 can snap the SQLCA which will show the error as 0378 (area wait deadlock).

Case 4. DML shared update dialog links to SQL update dialog.This works if the records accessed are different in each dialog. But will deadlock if the second dialog tries to update a record which is current in the first dialog (even with RETRIEVAL NOLOCK). The reason being, record locks are still maintained for the current of RU in update mode.The log message will indicate a record lock:

MOD PROCESS NAME IS PDLG47-RP1 VERSION IS 1
READY USAGE-MODE IS  UPDATE. (shared)

the rest of code same as in Case 1.

DC001000 T13 T:000251 ADS2 P:DDLG48 C:DEAD
WAITING ON R:LMGR LK 00000000 0125A408
DC001002 T13 T:000251 ADS2 P:DDLG48 C:DEAD 
DEADLOCKED ON R:LMGR LK 00000000 0125A408

If we snap SQLCA in DDLG48 we get, an explicit message:
* SQLCA* .... ....*
*................................*
*................ DB001038 T536 C*
*-5M393: DEADLOCK ON TABLE DEPART*
*MENT DBKEY 75172:...............*

Case 5. DML read only dialog links to SQL Update dialog.

But the subschema used has hardcoded usage-mode which is update. The result will be deadlock again.

There can be other scenarios, where an SQL dialog is repeatedly called from a DML dialog. There is even possibility of a subroutine dialog deadlocking itself. Such a case is discussed in IDMS/SQL News 5.4 (Dec 96)

Note: The sysgen RETRIEVAL NOLOCK tells the system whether or not to keep locks when areas are readied in SHARED RETRIEVAL mode. If no ready mode is specified, default for DML access is SHARED RETRIEVAL, which will take advantage of NOLOCK; This can be overriden at dialog level at compilation time. u


In This Issue To The Top

Crossfire:

A Communication Problem for the Internet Era!

              - Oslo Dispatch
Communication is an area which is vital to the world of computers. Computer centers are no longer situated in just a 'building'. In fact there are no computer centers as such; what we have is a network of computers. Very often the 'terminal user' does n't even know the location of the machine! If you have a high-speed link (with or without satellite), it is quite possible that one sitting in (say) the island of Fiji has a better response time than a local user with slow link, against a machine in New York! [A colleague quotes from real life that this is true. He had an experience where the time taken for a 3270 data stream to travel from USA to Oslo via Satellite was 0.5 seconds and the time delay in the local LAN was 1 second!]

Internet Issue

If this is the case with normal computers then one can imagine the importance of networking and communications in the age of Internet! The whole Internet is heavily dependent on high speed communications!

But we see that many HTML pages are unnecessarily crowded with graphic images! The text content might be about 20-30 K, but each GIF/JPEG image might be about 5-20K. So a lavish usage of images increases the size of a normal 20-50K text page to anywhere between 100 to 200K! If one is really looking at an image this is understandable. But there is no justification for 'image crowded' menus. Some home pages makes sense only if you activate the images on the browser.

eMAIL Problem

Recently I came across an eMAIL problem. It started like this. I got a mail from one of my EDP friends.

But I could not read the attachment which was in Word format, and I did n't have word at home! I took the document to office and solved the problem.Then I had to convert the simple message to ASCII to transfer to my home PC. During this process I noticed one thing: The size of the one page Word document was 18 K whereas the ASCII equivalent was only 987 bytes! This was enormous size for a simple document!. One of my work colleagues said that Word doc has the formatting information, and that makes it a little larger. I converted the same word document to another Windows based word processor with exactly the same fonts - the size was only 4K! So the sizes are
Word95.doc - 18K
Textor with fonts - 4K
ASCII - 987 bytes

Word 97 Shock!

While I was trying to find a meaningful explanation or excuse for the size of the above Word document, there comes another shock! A friend sent me another document. The document was in Word97 format. As usual I took it to office to read. Well, the Word95 in my office PC could not read it at all! I had to take it to another colleague to read the document. Having seen the document size (96K) I thought it might be a big one. But when we converted it to the Word95 format the size was only 14K. And in HTML form it was just 4 K! And in printed form it was less than 2 pages!
Word97 DOC 96 768
Word95 DOC 13 696
HTML.HTM 3 673

Not Nice at all!

PC products seem to think that they have infinite storage, CPU and network at their disposal! There are at least two issues at stake here.
1. The size of the Word 97 doc
2. Why should we use them in eMAIL? Someone said that the reason for Word97 doc to be so large is because the fonts are embedded in the document itself, so that even a PC without those fonts can correctly display them!

Well, in my experience even a a little older version of Word (Word95) could not read it at all, not to talk about the fonts. And a document (letter or article) should only contain normal fonts like Time Roman, Arial etc. orb their cousins. Fancy fonts are only good for graphical presentations. Now we come to the more important point. In both the above cases, the document I was expecting could have been embedded in ASCII form in the body of the letter itself (Ms Exchange, Eudora etc). In the second case, the whole letter in ASCII form was less than 5K! But using Word97 for the attachment it came to 97K!

5K vs 97K

is the communication equation! Almost 20 times! Communication cost for upload and download is high! It jams the network more! Imagine when millions of people are sending letters like this and overloading the communication network with no apparent benefit! When Microsoft encourages its MS Exchange users to directly embed Word documents in eMAIL, they don't seem to think of the communication cost at all!

Formatted or Not ?

The issue can be easily settled by asking a question: Do you want to send a formatted document or not!

Is ASCII enough? Then at least for those cases, there is no reason to transmit Word formatting information.

In a general case, it will be better that Word doesn't embed general fonts etc. in the document. Afterall, it is a document and not a graphical sales presentation! How many non-standard fonts do you use in a simple document? u


Product Flash:
VEGASOFT proudly presents:

VG-IDMS/Web Server

            - Onni Kukkonen, Vegasoft Oy, Helsinki
Version 1 Release 0 of VEGA-90's Web Server utilizes direct TCP/IP connection between a Web browser and an IDMS application


The software provides for tools and the Application Program Interface (API) to build Word Wide Web (WWW) Server applications using COBOL and ADS/O and Common Gateway Interface (GCI) style programming techniques.The Terminal emulation tool can be used to test and debug WWW applications.

The Web Server supports both static and dynamic HTML pages. Static HTML pages are stored as IDD modules with language HTML. Dynamic pages are created by applications. Functions to extract query variables and to create HTML pages are available. Conversion between EBCDIC and browser character sets is performed using a site specific conversion table. Character encodings (%xx) can be used in query variable values.

An HTML page can contain JAVA Scripts, JAVA Applets as well as Active-X components. Those components (like JAVA Scripts) that can be embedded into an HTML page using text format can be stored in IDD. The non-text format components (like JAVA Applets and graphic images) referred in an HTML page must be saved in non-IDMS environment. The Basic authentication scheme is available for user/password validation with optional IDMS signon (signon is supported in IDMS release 12 and above).

The Web Server is implemented using VEGA-90's TCP/IP Sockets API.
System requirements
The IBM TCP/IP for MVS or OS/390
VEGA-90's VG-IDMS Gateway TCP/IP Option
Restrictions and limitations
HTTP request size is limited 16 KB
Mime encodings, entity references and multiple
character sets are not supported
SSL is not yet supported
dialog/program version 1 is used.

Details see Vegasoft Oy at http://www.vegasoft.com u

SQL Guidelines at IMC'97

Session: I2460SR, CA-IDMS SQL Performance & Tuning, at IMC CA-World'97 gives some guidelines on SQL usage in CA-IDMS environment.

Guidelines on SQL access against non-SQL database is good. Guidelines on SQL databases are not specific enough. And out of 31, just one slide has been devoted to IDMS/Server (ODBC) access, which is a heavily used feature among many clients!

At the same time, 10 out of 31 slides are talking about CA-OpenIngres Enterprise access! Who in the world is using Ingres Gateway against IDMS today? We feel that the mainframe SQL guidelines are vital, and cannot be substituted by marketing material or lectures on unused products/features.

Doc update for 14.0/SQL

- TCC/Technical Support
DISPLAY CONSTRAINT doesn't seem to work at the moment.

DISPLAY CONSTRAINT 
     EMP_BENEFITS;
*+Status=1 SQLSTATE=01600  
*+E DC601014 CONSTRAINT IS 
NOTIN DICTIONARY
But the constraint do exist:
DIS SCHEMA DEMOEMPL
ALL WITH CONSTRAINTS
*+Status=0 SQLSTATE=00000
*+CREATE SCHEMA DEMOEMPL;
*+CREATE CONSTRAINT 
       EMP_BENEFITS; ....

Latest from CA, indicates that the development has uncovered an oversight here, and a correction and a documentation update are on the way.

Just One more!

Water Facts

Every day, 15-20,000 people die from a direct or indirect consequence of polluted water or lack of water. At the same time, in 6 months, a leaky toilet can waste 170,000 liters of water.[Time]


CA-IDMS/DB,CA-IDMS/DC and CA-ADS are registered trademarks of Computer Associates International Inc. CICS, IMS-DB/DC, VSAM and DB2 are registered trademarks of International Business Machines Corporation.

Technical examples are only guidelines. Opinion expressed are those of the authors and do not represent the views of IDMS Clients, Computer Associates or Support Personnel. Permission is hereby granted to use or reproduce the info.

* IDMS/SQL is not a CA publication *
home page at: http://www.reocities.com/idmssql/
email:idmssql@reocities.com

Published on behalf of IDMS WatchDog Group Oslo-Helsinki for free distribution among IDMS users, clients and consultants Worldwide.
In This Issue To The Top
Main Index Back to Main Page

Throughout this document we have used "Bookman Old Style" Font for Titles. If you don't have this font in your PC, Windows will substitute another font. If you have any read problems, please drop us a word idmssql@reocities.com


This page hosted by Get your own Free Home Page
r>