Consultor Eletrônico



Kbase 20177: Delayed Transaction Write Feature and SQL-89 ODBC Connection
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/16/2008
Status: Unverified

GOAL:

To demonstrate the delayed transaction write (to the .bi file) feature.

GOAL:

Delayed transaction write (to the .bi file) feature demostrated.

FACT(s) (Environment):

Progress 9.x
MERANT 3.70 32-BIT Progress SQL-89
MERANT 3.60 32-BIT Progress SQL-89
MERANT 3.50 32-BIT Progress SQL-89

FIX:

With Progress 8.x, a SQL connection causes an open transaction note to be written to the .bi file. No end statement is written until the SQL-89 user disconnects. This might cause the before-image file (BI) to eventually hit its 2 GB size limit.

Progress 9.x implements what is known as a delayed transaction write for SQL-89 ODBC connections. This is achieved by not actually writing a transaction begin note to the bi file until the user makes a change. Thus, if the user is performing read only operations (selects) the BI file will behave as though a transaction never started.

The following examples demonstrate the differences between how Progress 8.x and 9.x open a transaction in the .bi file when a user is connected via a SQL-89 ODBC connection. Follow these steps:

Version 8.x

1) Connect from WinSQL (or some other SQL client) to the database
via 8.3 OIB/OID.

2) Run: select * from benefits.

3) Run the following Program from the Procedure Editor:

DEF VAR I AS INTEGER.

REPEAT I = 1 TO 100000:
CREATE CUSTOMER.
ASSIGN SALES-REP = "BBB".
END.

4) Run PROMON against the database.

5) In PROMON's first screen, choose #5 - Activity.
Refresh every few seconds. Notice after 60 seconds, the
BI file continues to grow. Clusters are not being re-used.

6) After 10 minutes, disconnect ODBC connection. Notice the BI growth levels off.

Now, in Version 9.x

1)Connect from WinSQL (or some other SQL client) to the database
via 8.3 OIB/OID.

2) Run: select * from benefits.

3) Run the following program from the Procedure Editor:

DEF VAR I AS INTEGER.

REPEAT I = 1 TO 100000:
CREATE CUSTOMER.
ASSIGN SALES-REP = "BBB".
END.

4) Run PROMON against the database.

5) In PROMON's first screen, choose #5 -
Activity.
Refresh every few seconds. Notice after 60
seconds, the .bi growth starts to level
off. Clusters are being re-used.