Feedback
Did this article resolve your question/issue?

   

Article

How to find if a transaction is still open and who owns it?

Information

 
TitleHow to find if a transaction is still open and who owns it?
URL NameP50334
Article Number000156494
EnvironmentProduct: Progress
Version: 9.x
Product: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Question/Problem Description
How to find if a Transaction is still open and who owns it?
How to find which transactions are still running?
How to find which transaction is causing the bi file to grow?
How to find which transactions in the BI file are still open?
How to identify long running transactions with PROMON, VST's or AIMAGE VERBOSE SCAN ?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
There is no explicit tool available for BI file parsing. However the information written to the BI file is also written to the AI file. When there is an implicit need to see what transaction activity is being written to a BI file, one could configure a database to make use of After Imaging (AI).  Refer to example in Article: Open transactions can be found online by using:

1. The PROMON utility through the R&D options:
1. Status Displays > 4. Processed/Clients > 3. Active Transactions.

Any transaction that is Active and has a "transaction start time" that infers that the transaction has been running for longer than 10 minutes, is considered worth further investigation.

2. VST tables, _Trans and _Connect can be employed to give more explicit detail through customization to your particular needs. Below is an example of how this may be constructed.

/* test1 run against sports database*/
 
CREATE customer.
UPDATE NAME.

/* the transaction that test1 above has just started */
 
FOR EACH _trans WHERE _Trans._Trans-State EQ "Active"
BY  _Trans._Trans-Duration DESCENDING:

   FIND _Connect WHERE _Connect._Connect-id = _Trans._Trans-Usrnum + 1.
       DISP
           STRING(TIME,"HH:MM:SS") LABEL "TIME NOW"
           _Trans._Trans-Txtime FORMAT "X(40)"
           _Connect._Connect-Name FORMAT "X(20)"
           _Connect._Connect-PID FORMAT 99999
           _Trans._Trans-Usrnum
           _Trans._Trans-Num.
END.
Against a production situation, the transaction at the top of the list will be the longest running one. The above example code can be further modified to fit requirements by adding the _Lock VST for example. Refer to the example ABL code in Article:
Workaround
Notes
Last Modified Date11/20/2020 7:07 AM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.