Promon - finding where a transaction or record is in a table

Using the record # in promon, what kinda of query can be executed to display what table this comes from in my DB?

Similar query:

for each _file where _file-number = 123.
display _file-name _file-number.
end.


Thanks,

--tj
 
promon shows record RECID().
It is hard to find a table.

you can cicle through each table and query Recid(tablename) = recnumber.
 

cj_brandt

Active Member
What screen in promon are you referring to ? Can you copy & paste an example ? Otherwise you're left with MaximMonin's suggestion.
 
Here is a snapshot:

snapapp.gif

Actually, the above is a normal state of the db, and this isn't when the app servers are running out. See below for that information:
 
Here is some info from the locks logger program:

Record Locking Table:
Usr Name Chain # Rec-id Table Lock Flags Tran State Tran ID
73 REC 10782 28406371 1167 SHR Dead 41635411
61 REC 12958 21801381 1167 SHR Dead 41635185
68 REC 21852 21810275 1167 SHR Dead 41635406
77 REC 21930 21810353 1167 SHR Dead 41635414
60 REC 21948 21810371 1167 SHR Dead 41635399
57 REC 21961 21810384 1167 SHR Dead 41635172
65 REC 22051 21810474 1167 SHR Dead 41635403
70 REC 23178 21811601 1167 SHR Dead 41635408
64 REC 23188 21811611 1167 SHR Dead 41635402
75 REC 23645 21812068 1167 SHR Dead 41635413
79 REC 24287 21812710 1167 SHR Dead 41635417
71 REC 24290 21812713 1167 SHR Dead 41635409
67 REC 24303 21812726 1167 SHR Dead 41635405
46 REC 24315 21812738 1167 SHR Dead 41635294
76 REC 32109 28357409 1167 SHR Dead 41635415
69 REC 32740 28287751 1167 SHR Dead 41635407
78 REC 34630 28289641 1167 SHR Dead 41635416
66 REC 41780 28367080 1167 SHR Dead 41635404
72 REC 42572 28367872 1167 SHR Dead 41635410

Record Locking Table:
Usr Name Chain # Rec-id Table Lock Flags Tran State Tran ID
74 REC 48302 28373602 1167 SHR Dead 41635412
62 REC 49744 28375044 1167 SHR Dead 41635400
51 REC 53100 28378400 1167 SHR Dead 41635188
48 REC 62724 28388024 1167 SHR Dead 41635166
56 REC 62864 28388164 1167 SHR Dead 41635187
63 REC 62928 28388228 1167 SHR Dead 41635401
55 PURG 140633 29189231 1167 NOLK P Dead 41635361
 

TomBascom

Curmudgeon
You apparently have the table number and recid above.

The translate table number to table name:

find _file n-lock where _file-number = 1167 no-error.
if available _file then display _file-name.

You can then either write a static query like thus (using "fileName" as the table name):

find fileName no-lock where recid( fileName ) = 28378400.

or write a (more complex) dynamic query to do it all at once.
 
You apparently have the table number and recid above.

The translate table number to table name:

find _file n-lock where _file-number = 1167 no-error.
if available _file then display _file-name.

You can then either write a static query like thus (using "fileName" as the table name):

find fileName no-lock where recid( fileName ) = 28378400.

or write a (more complex) dynamic query to do it all at once.

After finding the recid, what should the next line be to display more information about this recid?

thanks,

--tj
 

TomBascom

Curmudgeon
The table 1167 is the LicUser table. Why would this cause my App servers to run out?

I can only guess that you have a coding problem related to how licUser is being accessed. At a guess I would say that someone has, under at least some circumstances, expanded the scope of the record and a transaction that updates it. Perhaps during the startup of an app server, and that this is causing app servers to wait rather than make themselves available for the next request.
 
I've identified our App Servers max out in table 1167 (LicUser) when our accountant runs a very intense crystal reports.

--tj
 

TomBascom

Curmudgeon
Re: Hi altered here

That sounds as if your reporting is using SQL-92 and you have not defined it as a read-only, no-lock connection and that it is, therefore, locking all records (just in case!) when it queries data. What isolation level did you choose when you installed the drivers?
 
Top