QTP QUESTION

Oran Shapitka oran@intertechsystems.com
Sun, 7 Mar 1999 10:48:40 -0700


This is a multi-part message in MIME format.

------=_NextPart_000_0001_01BE6888.103C97C0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

You have not given enough background to answer your question completely.
Here are some suggestions to try.

Do the other users need the data in the 4 items that you are updating?  If
not, then split them into another record with a one to one link between the
two files.  This will probably result is some rewrite of other source code
to support this, but it is one option.  With the quantity of records you
have, any volume adds and volume key changes will be magnified.

Are any of the item statements updated KSAM keys?  If they are, then you are
taking a HUGE performance hit, and the update is taking longer than it
should.  Redesign your files and process to not update KSAM keys.

Another option is to lock out the other users until the update is done.  Set
up a flag field somewhere.  The first step in your QTP will set the flag to
LOCKED, then use SET FILE LOCK while you run your Updates, then set the flag
back to UNLOCKED.  Issue an error message to any users that try to retrieve
records while the process is locked.

Is your update run only once a day?  What time of day?  Is it a low user
usage time or a high usage time?  Can you change it to a low usage time?
Can you run smaller updates of 100 each and lock the file while your update
is running.  From your example, you are updating less than 27% of the
records that you are reading.  Can you extract only the records that need to
be updated, and then read only those records for update?  1.75 million
direct reads will take some time on any size machine.

Can you archive some of data set into a history data set and then redesign
other processes (reports and screens) that need the files combined?

There is no one correct answer.  Much of this type of tuning and design
requires knowledge of the application, data, and how the data is used.  A
combination of the above may need to be considered.

Call me on Monday if you would like to discuss some of theses ideas more.

Oran Shapitka, ISP
Intertech Business Systems, Inc.
1564, 10303 Jasper Ave  Email:  oran@intertechsystems.com
Edmonton, AB  T5J 3N6  Canada   Voice:        (780) 413-0400        Fax:
(780) 413-0398

    -----Original Message-----
    From: owner-powerh-l@sphere.swau.edu
[mailto:owner-powerh-l@sphere.swau.edu]On Behalf Of Lafferty, Mike
    Sent: Friday, March 05, 1999 2:44 PM
    To: 'POWERH-L@LISTS.SWAU.EDU'
    Subject: QTP QUESTION


    How would you avoid contention with concurrent users when updating just
4 items of a KSAM file using QTP....We are running PHv6.09 on an
HP3000....In batch, I got the following message.....

    Thank you in advance.....Mike



    24   :RUN QTPR.CURRENT.COGNOS;INFO="DICT=TM40DDC AUTO=TM2352AC"
         25
         29
         30   99/03/05    14:31    DRC 4.0 QUOTE SUBSYSTEM
    PAGE   1
         31
         32   Run:
         33   Request: 1
         34
         35
         36   Executing request 1 ...



37   ----------------------------------------------------------------------
    ---------
         38   Record has been changed since you found it.
     [15900]
         39      File:  QTE-POL-INDX-RCD
         40        Linkitem:  K-QP-INDEX-KEY                   108262885
         41
         42   Action Taken: Run terminated.



43   ----------------------------------------------------------------------
    ---------
         44
         45   Records read:
         46     TMQUOTE                          1,747,073
         47     QTE-POL-INDX-RCD                 1,746,573
         48
         49   Transactions processed:               15,900
         50
         51   Records processed:                     Added    Updated
Unchanged
    Deleted
         52     QTE-POL-INDX-RCD                         0      4,213
11,686
          0
         53
         54   Finished.
         55
         59
         60   Program terminated in an error state. (CIERR 976)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         61   REMAINDER OF JOB FLUSHED.
              ^^^^^^^^^^^^^^^^^^^^^^^^^

            1.. CPU sec. = 1029.  elapsed min. = 77.  FRI, MAR  5, 1999,
3:48 PM.


    Here is the code............




    SET DICT TM40DDC
    SET INPUT LIMIT 2000000
    SET LOCK FILE UPDATE
    ACC *TMQUOTE LINK ("1" + Q-QUOTE-NO) TO &
                 K-QP-INDEX-KEY OF QTE-POL-INDX-RCD
    OUT QTE-POL-INDX-RCD UPDATE NOITEMS ON ERRORS BYPASS UNTIL FINAL

       ITEM K-HOUSEHOLD-NO FINAL HOUSEHOLD-NO OF TMQUOTE &
            IF K-HOUSEHOLD-NO <> HOUSEHOLD-NO OF TMQUOTE
       ITEM K-AMF-ACCOUNT-NO FINAL QP-ACCT-NO OF TMQUOTE &
            IF K-AMF-ACCOUNT-NO <> QP-ACCT-NO OF TMQUOTE
       ITEM K-U-ACCOUNT-NAME FINAL AU-ACCOUNT-NAME OF TMQUOTE &
            IF K-U-ACCOUNT-NAME <> AU-ACCOUNT-NAME OF TMQUOTE
       ITEM K-TOTAL-PREMIUM FINAL QP-TOTAL-VEH-PRM OF TMQUOTE &
            IF K-TOTAL-PREMIUM <> QP-TOTAL-VEH-PRM OF TMQUOTE

    BUILD TM2352AC


------=_NextPart_000_0001_01BE6888.103C97C0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">


QTP QUESTION



You=20 have not given enough background to answer your question = completely.  Here=20 are some suggestions to try.
 
Do the=20 other users need the data in the 4 items that you are updating?  If = not,=20 then split them into another record with a one to one link between the = two=20 files.  This will probably result is some rewrite of other source = code to=20 support this, but it is one option.  With the quantity of records = you have,=20 any volume adds and volume key changes will be = magnified.
 
Are=20 any of the item statements updated KSAM keys?  If they are, then = you are=20 taking a HUGE performance hit, and the update is taking longer than it=20 should.  Redesign your files and process to not update KSAM=20 keys.
 
Another option is to lock out the other users until the update = is=20 done.  Set up a flag field somewhere.  The first step in your = QTP will=20 set the flag to LOCKED, then use SET FILE LOCK while you run your = Updates, then=20 set the flag back to UNLOCKED.  Issue an error message to any users = that=20 try to retrieve records while the process is locked.
 
Is=20 your update run only once a day?  What time of day?  Is it a = low user=20 usage time or a high usage time?  Can you change it to a low usage=20 time?  Can you run smaller updates of 100 each and lock the file = while your=20 update is running.  From your example, you are updating less than = 27% of=20 the records that you are reading.  Can you extract only the records = that=20 need to be updated, and then read only those records for update?  = 1.75=20 million direct reads will take some time on any size=20 machine.
 
Can=20 you archive some of data set into a history data set and then redesign = other=20 processes (reports and screens) that need the files=20 combined?
 
There=20 is no one correct answer.  Much of this type of tuning and design = requires=20 knowledge of the application, data, and how the data is used.  A=20 combination of the above may need to be considered.
 
Call=20 me on Monday if you would like to discuss some of theses ideas=20 more.
 

Oran Shapitka, ISP
Intertech Business Systems, Inc.
1564, 10303 Jasper Ave  = Email: =20 oran@intertechsystems.com
Edmonton, AB  T5J 3N6  Canada  =20 Voice:        (780)=20 413-0400        Fax:  (780)=20 413-0398

-----Original Message-----
From: owner-powerh-l@sphere.swau= .edu=20 [mailto:owner-powerh-l@sphere.swau.edu]On Behalf Of Lafferty, = Mike
Sent: Friday, March 05, 1999 2:44 PM
To: 'POWERH-L@LISTS.SWAU.EDU'Subject:=20 QTP QUESTION

How would you avoid contention with = concurrent=20 users when updating just 4 items of a KSAM file using QTP....We are = running=20 PHv6.09 on an HP3000....In batch, I got the following=20 message.....

Thank you in advance.....Mike =


24   :RUN=20 QTPR.CURRENT.COGNOS;INFO=3D"DICT=3DTM40DDC = AUTO=3DTM2352AC"=20
     = 25  =20
     = 29  =20
     = 30  =20 99/03/05    14:31    DRC 4.0 QUOTE=20 = SUBSYSTEM          &nbs= p;            = ;  =20
PAGE   1 =
     31   =
     32   = Run:=20
     = 33  =20 Request: 1
    =20 34  
    =20 35  
    =20 36   Executing request 1 ...
     37  =20 = ----------------------------------------------------------------------=20
---------
     38   Record has been = changed since=20 you found=20 = it.           &nbs= p;            = ;  =20
 [15900] =
     = 39     =20 File:  QTE-POL-INDX-RCD

     = 40       =20 Linkitem: =20 = K-QP-INDEX-KEY          = ;        =20 108262885
    =20 41  
    =20 42   Action Taken: Run terminated.
     43  =20 = ----------------------------------------------------------------------=20
---------
     44  
     45   Records = read:=20
    =20 46    =20 = TMQUOTE           =             &= nbsp; =20 1,747,073
    =20 47    =20 = QTE-POL-INDX-RCD         &nb= sp;      =20 1,746,573
    =20 48  
    =20 49   Transactions=20 = processed:          &nb= sp;   =20 15,900
    =20 50  
    =20 51   Records=20 = processed:          &nb= sp;         =20 Added    Updated  Unchanged   =20
Deleted
     52    =20 = QTE-POL-INDX-RCD         &nb= sp;           &nbs= p;  =20 0      4,213    =20 11,686   
      0
     53  
     54   Finished. =
     55   =

     59   =
     60   = Program=20 terminated in an error state. (CIERR 976)
         =20 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     61   = REMAINDER OF JOB=20 FLUSHED.
         =20 ^^^^^^^^^^^^^^^^^^^^^^^^^=20

Here is the code............ =



SET DICT TM40DDC
SET INPUT LIMIT 2000000
SET LOCK=20 FILE UPDATE
ACC *TMQUOTE = LINK=20 ("1" + Q-QUOTE-NO) TO &
          &nbs= p; =20 K-QP-INDEX-KEY OF QTE-POL-INDX-RCD
OUT=20 QTE-POL-INDX-RCD UPDATE NOITEMS ON ERRORS BYPASS UNTIL FINAL =

   ITEM K-HOUSEHOLD-NO = FINAL=20 HOUSEHOLD-NO OF TMQUOTE &
        IF = K-HOUSEHOLD-NO <>=20 HOUSEHOLD-NO OF TMQUOTE
  =20 ITEM K-AMF-ACCOUNT-NO FINAL QP-ACCT-NO OF TMQUOTE & =
        IF = K-AMF-ACCOUNT-NO <> QP-ACCT-NO OF TMQUOTE
   ITEM K-U-ACCOUNT-NAME FINAL AU-ACCOUNT-NAME OF = TMQUOTE=20 &
        IF = K-U-ACCOUNT-NAME=20 <> AU-ACCOUNT-NAME OF TMQUOTE
   ITEM K-TOTAL-PREMIUM FINAL QP-TOTAL-VEH-PRM OF = TMQUOTE=20 &
        IF = K-TOTAL-PREMIUM=20 <> QP-TOTAL-VEH-PRM OF TMQUOTE

BUILD TM2352AC=20

------=_NextPart_000_0001_01BE6888.103C97C0-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Subscribe: "subscribe powerh-l" in message body to majordomo@lists.swau.edu Unsubscribe: "unsubscribe powerh-l" in message to majordomo@lists.swau.edu powerh-l@lists.swau.edu is gatewayed one-way to bit.listserv.powerh-l This list is closed, thus to post to the list, you must be a subscriber.