Did this article resolve your question/issue?



How to view the contents of after image files?

« Go Back


TitleHow to view the contents of after image files?
URL NameP46080
Article Number000147709
EnvironmentProduct: Progress OpenEdge
Version: All supported versions
OS: All supported platforms
Question/Problem Description
How to view the transaction note content recorded in binary after image files?
How to view the content recorded in after image files?
What is the command to look at the verbose output of the after image file
What command extracts a binary after image extent in readable format?
How to use aimage scan verbose?
What is the content of aimage scan verbose output useful for?
How to read or view AI file content
How to generate readable output from an After Image file
Can I see the transaction note content in an ai file?
Is there a way to read the contents of the AI and BI files?
​Does Progress offer a utility that could be used to view BI file notes?
How to see what transaction notes were written to a bi file?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number

To review the contents of an ai file:  

The RFUTIL command with the aimage scan verbose Option can be used to review the contents of an AI file. 

There is no similar tool to view the contents of the Before Image (BI) files. However, the before-image transaction note information written to the BI file is also written to the AI file as after-image transaction notes. When there is an implicit need to review what is being written to a BI file, configure a database to make use of After Imaging (AI).

Reviewing the contents of an ai file contains an abundance of information including:
The transaction number, the username, when a transaction was started and ended, what operation modified the DBkey/Area was in the transaction.

What is the content of aimage scan verbose output useful for?    

How to extract AI file content for review?    

The following command can be run against any database (empty, sports, etc) to review the notes recorded in an AI file. 

$   rfutil dbname -C aimage scan verbose -a aifilename > outputfilename
  • The database and/or its name does not have to be the same one that the AI file was generated against.  
  • The database needs to have the same AI and BI blocksize as the database that the AI files were produced against, otherwise 752 errors will result.  For further information refer to Article
This will output Progress specific reference notes which contain user ID's, times, area number, transaction ID and the compressed notes which denote the types of actions performed against the block within the database.

To understand the operation being recorded, refer to Article The following Article provides an example to analyse the content using the TRID and RL_RMDEL notes:  Example AISCAN VERBOSE output: 

After-image dates for this after-image file: (1633)
Last AIMAGE BEGIN Fri Jul 25 13:44:57 2003 (1640)
This file was last opened for output on Fri Jul 25 13:58:33 2003. (1643)
 code = RL_INMEM (1637)
 transaction index = 0 (1638)
 dbkey = 0 update counter = 0 (1639)
 code = RL_LSTMOD (1637)
 transaction index = 0 (1638)
 area = 6 dbkey = 32 update counter = 10 (9016)
 code = RL_TBGN (1637)
 transaction index = 1484 (1638)
 dbkey = 0 update counter = 0 (1639)
 Trid: 1484 Fri Jul 25 13:58:20 2003. (2598)
User Id: username. (2599)
 code = RL_CXREM (1637)
 transaction index = 1484 (1638)
 area = 10 dbkey = 2176 update counter = 4 (9016)
 code = RL_CXINS (1637)
transaction index = 1484 (1638)
area = 10 dbkey = 2176 update counter = 5 (9016)
code = RL_RMCHG (1637)
transaction index = 1484 (1638)
 area = 9 dbkey = 96 update counter = 11 (9016)
 code = RL_TEND (1637)
transaction index = 1484 (1638)
dbkey = 0 update counter = 0 (1639)
 Trid: 1484 Fri Jul 25 13:58:20 2003. (2598)
 7 notes were processed. (1634)
 0 in-flight transactions. (3785)
 1 transactions were started. (1635)
 At the end of the .ai file, 0 transactions were still active. (1636)
Last Modified Date11/20/2020 6:55 AM
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.