Kbase P131374: Is it possible to interrupt an offline IDXFIX operation?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  08/02/2011 |
|
Status: Unverified
GOAL:
Is it possible to interrupt an offline IDXFIX operation?
GOAL:
What are the side effects of pressing Ctrl+C during proutil -C idxfix?
GOAL:
Are the changes already performed by idxfix committed to the database when the process is interrupted?
FACT(s) (Environment):
Progress 9.x
OpenEdge 10.x
All Supported Operating Systems
FIX:
An offline proutil -c IDXFIX session can be interrupted by the user using Ctrl+C in the terminal running the command, or using SIGINT or SIGTERM on Unix.
An online proutil -c IDXFIX session should first be interrupted by disconnecting the user through promon or from the proshut cmd line since the operation is run SHARED-LOCK:
Example:
proshut dbname -C disconnect <usernum>
or
promon dbname
8. Shut Down Database
1 Disconnect a User
<enter the user number>
The user number can be obtained from either the database lg file
Example:
[2011/02/07@15:06:44.731+0100] P-5000 T-6012 I IDXFIX 5: (452) Login by uuser on batch.
[2011/02/07@15:06:44.736+0100] P-5000 T-6012 I IDXFIX 5: (7129) Usr 5 set name to Idxfix.
[2011/02/07@15:06:44.738+0100] P-5000 T-6012 I IDXFIX 5: (451) proutil -C idxfix session begin for uuser on batch
or from the promon screens itself, look for Type = IDXF
User Control:
Usr Name Type Wait Table Dbkey Trans PID Sem Srv Login Time
5 Idxfix IDXF -- 0 0 0 4604 0 0 02/07/11 15:07
Online or Offline, when the idxfix session is interrupted in ?report and fix mode? all changes caused by IDXFIX on the database up to the point of the interruption will be kept in the database. ie the committed changes will not be rolled back. In other words, interrupting an idxfix operation in ?report and fix mode?, should not cause corruption because changes performed by idxfix are logged in the before-image file (and in the after-image files, if after-imaging is enabled), so normal crash recovery will take place and any incomplete index changes will be undone.
When run online, ending the process will not however mean that idxfix will be ended immediately. It will backout the last idxfix transaction which, should be small - this is to ensure the data integrity. It is run SHARED-LOCK online, so when the operation is terminated while the idxfix user is waiting on a lock for example, the process will not end before idxfix gets that lock. Idxfix may then "seem to grind to a halt", while waiting on that lock.