Do you Web programmers have a message or code routine for Record locks
due to the condition: SQL0913N Unsuccessful execution caused by deadlock
or timeout.

Can SQL be written so that SQL0913N does not result when web user runs
this select statement:

select VARCHAR(AMSDTA.F42019.SHAUTN,50,37) as SHAUTN,
sum(AMSDTA.F42119.SDITWT/10000) as NWEIGHT,
AMSDTA.F55TRK.TR$TKG as TRTKG, AMSDTA.F55TRK.TR$TKX as TRTKX,
AMSDTA.F55TRK.TR$TKQ as TRTKQ, AMSDTA.F55TRK.TR$TKR as TRTKR,
AMSDTA.F55TRK.TR$TKA as TRTKA, AMSDTA.F55TRK.TR$TKB as TRTKB,
AMSDTA.F55TRK.TR$TKD as TRTKD, AMSDTA.F55TRK.TR$TKT as TRTKT,
AMSDTA.F55TRK.TR$TKP as TRTKP, AMSDTA.F55TRK.TR$TKN as TRTKN,
AMSDTA.F55TRK.TR$TKZ as TRTKZ, AMSDTA.F55TRK.TR$TKU as TRTKU,
AMSDTA.F55TRK.TR$TKV as TOTAL, VARCHAR(AMSDTA.F42019.SHMOT,50,37) as
SHMOT,
min(AMSDTA.F42119.SDADDJ) as SDADDJ, ABALPH as CARRIER,
(select min(ZIAC04) from CLTSEC.F55ZIP
where ZIADDZ=AMSDTA.F55TRK.TR$TKJ
group by ZIAC04) as REGION
from AMSDTA.F55TRK
join AMSDTA.F42019 on AMSDTA.F42019.SHAUTN = AMSDTA.F55TRK.TRAUTN

(and when a record in F42119 is held for update by another user)

+++++++++++++++++++++++++++++

Or if SQL0913N is produced, do you have a "user-friendly" message to
display instead of this:

Warning: db2_exec() [function.db2-exec]: Statement Execute Failed in
/var/www/localhost/htdocs/modules/dbo/as400.class.php on line 24
Warning: Error " [IBM][CLI Driver][AS] SQL0913N Unsuccessful execution
caused by deadlock or timeout. Reason code "AMSDTA .F55TRK ".
SQLSTATE=57033 SQLCODE=-913 " with dbo_as400 Query :
select VARCHAR(AMSDTA.F42019.SHAUTN,50,37) as SHAUTN,
sum(AMSDTA.F42119.SDITWT/10000) as NWEIGHT,
AMSDTA.F55TRK.TR$TKG as TRTKG, AMSDTA.F55TRK.TR$TKX as TRTKX,
AMSDTA.F55TRK.TR$TKQ as TRTKQ, AMSDTA.F55TRK.TR$TKR as TRTKR,
AMSDTA.F55TRK.TR$TKA as TRTKA, AMSDTA.F55TRK.TR$TKB as TRTKB,
AMSDTA.F55TRK.TR$TKD as TRTKD, AMSDTA.F55TRK.TR$TKT as TRTKT,
AMSDTA.F55TRK.TR$TKP as TRTKP, AMSDTA.F55TRK.TR$TKN as TRTKN,
AMSDTA.F55TRK.TR$TKZ as TRTKZ, AMSDTA.F55TRK.TR$TKU as TRTKU,
AMSDTA.F55TRK.TR$TKV as TOTAL, VARCHAR(AMSDTA.F42019.SHMOT,50,37) as
SHMOT,
min(AMSDTA.F42119.SDADDJ) as SDADDJ, ABALPH as CARRIER,
(select min(ZIAC04) from CLTSEC.F55ZIP
where ZIADDZ=AMSDTA.F55TRK.TR$TKJ
group by ZIAC04) as REGION
from AMSDTA.F55TRK
join AMSDTA.F42019 on AMSDTA.F42019.SHAUTN = AMSDTA.F55TRK.TRAUTN

join /var/www/localhost/htdocs/modules/dbo/dbo.class.php on line 59
Warning: db2_fetch_assoc() expects parameter 1 to be resource, boolean
given in /var/www/localhost/htdocs/modules/dbo/as400.class.php on line
72
Warning: db2_free_result() expects parameter 1 to be resource, boolean
given in /var/www/localhost/htdocs/modules/dbo/as400.class.php on line
75
<end of message>

I am somewhat familiar with Record-Level Lock States and Compatibility,
based on my reading of article

http://www.mcpressonline.com/programming/java/db2-locking-and-concurrenc
y-for-java-developers.html
which has an excellent discussion of record lock states. If one process
has record 65 at Record-Level Lock State UPDATE, record 65 is locked for
update intent. Another job may read the record but may not obtain a
read or update lock on it until the lock is released. Therefore,
another job attempting READ is at an Incompatible Lock state.

In our JD Edwards World (RPG) applications, JDE programs will notify the
user of a record lock in a friendly way.
RPG program P98RLCK is invoked, telling the user the name of the person
and the job that is locking the record. But if program is not written
to call P98RLCK, the user will at least get this friendly message:

Msg 0007 Record in Use

CAUSE . . . . The master file record you are attempting to access is
currently being updated by someone else.

RESOLUTION. . Attempt to access the record at a later time

Today I discovered which record was held for update by running command:
DSPRCDLCK FILE(F42119)

File . . . . . . . . : F42119 Member . . . . . . . : F42119

Library . . . . . : AMSDTA

Record Lock

Number Job User Number Status Type

2151735 QPADEV001M MMATHIS 876442 HELD UPDATE

I am somewhat familiar with results available from running these:

STRPFRTRC SIZE(64 *MB)
ENDPFRTRC MBR(FREIGHT1 )
PRTLCKRPT MBR(FREIGHT1 ) RPTTYPE(*ALL) MINWAIT(1)
PRTLCKRPT MBR(FREIGHT1 ) RPTTYPE(*TOD) MINWAIT(1)



As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.