Previously there were a number of issues with running the IDXCOMPACT utility online, in particular an issue that resulted in excessive bi growth due to the scope of the IDXCOMPACT transaction being handled as a single transaction. The IDXCOMPACT transaction scope was fixed in OpenEdge 10.1C04, 10.2A01 Service Packs and 10.2B where idxcompact transaction scope is very tight, small transactions are initiated in groups during the compaction.
IDXCOMPACT only locks one to three index blocks at a time, for a short time, allowing full concurrency for other users whom can use the index simultaneously for read or write operation. It may however compete for system resources which may degrade performance for other clients sessions that therefore contribute to bi growth, but will not itself be responsible for bi growth and does not lock any record or table. For further information refer to Article
When to use IDXCOMPACT instead of IDXBUILD? The unexpected bi growth will have been caused by another long running transaction.