Effects of using transaction controls

Transaction control calls (TransactionBegin, TransactionRollback and TransactionCommit) invoke powerful and sensitive processing within the Domino core. 

The calls affect the dynamic behavior of a central resource to Domino server operation, the transaction log. They can cause the log, which is usually circular, to fill and prevent database updates until a commit or rollback resolves the issue. More frequent commits and avoiding mass updates inside a transaction (for example, avoiding using the NotesDocumentCollection.StampAll method with a large number of documents) can help avoid the issue.

An application developer using these calls must be listed in the Sign or run unrestricted methods and operations field in the Security tab of the Domino Server document in the Domino directory.

Interactions of transaction controls with other Domino processing include:
  • LotusScript NotesView class can receive NotesException: The collection is busy exceptions due to uncommitted updates. To avoid this state, set AutoUpdate to false.
  • DQL query terms that are to be satisfied with view searches do not find uncommitted data but if they are satisfied with NSF scan, they do find uncommitted data. Also, the RefreshViews attribute has no effect on uncommitted data being included in views. To avoid the discrepancy with view versus NSF scanning, specify the NoViews attribute when executing or explaining queries, forcing the DQL engine to stay away from view access.
  • Transaction controls are incompatible with inline view updating. If a transaction is begun and an update performed, inline view updating is disabled for the database. Currently there is no solution but HCL plans to provide one in a future update.