Feedback
Did this article resolve your question/issue?

   

Article

What is PROQUIET NOLOCK?

« Go Back

Information

 
TitleWhat is PROQUIET NOLOCK?
URL NameP112492
Article Number000151909
EnvironmentProduct: Progress
Version: 9.1E02
Product: OpenEdge
Version: 10.0B03, 10.1A and later
OS: All supported platforms
Other: PROQUIET NOLOCK
Question/Problem Description
What is PROQUIET NOLOCK?
How is PROQUIET nolock different from a PROQUIET without nolock?
What additional considerations are needed when a database is quiescenced with the nolock feature?
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
The PROQUIET utility was enhanced in 9.1E02, 10.0B03, and 10.1A to support a quiet point that stops all write activity in the database within 15 seconds without requiring a latch.  

This feature is useful when there is a latch contention issue in the database and an OS copy is needed. When users are holding shared or update TXE latches, without the nolock feature, the PROQUIET could wait for an indeterminate time before acquiring an exclusive TXE latch necessary for suspending all activity, although this is unlikely to happen and not expected.  As a result, the intent of raising a quiescent in the database, usually to take a non-Progress backup, will be delayed. Refer to Article: When a PROQUIET nolock is requested:
  • All write activity to the database will be suspended by checking a shared memory variable set by the Broker to indicate the current write is pended.  
  • The Broker will then wait 15 seconds for all the processes currently writing to complete their current block write and then stop write activity.
  • Online PROBKUP will not be allowed to operate during the active quiet point with nolock, because before-image buffers are not flushed. 
  • It will not guarantee the stopping of microtransaction activity, some initial activity may occur as processes are notified on the quiet nolock activity.  
  • Since microtransaction activity can occur during a PROQUIET nolock, the user will be notified (if after imaging is enabled) as to which ai extent is in use and that ROLL FORWARD with the retry option must be used to roll forward this ai file.
AI considerations when using PROQUIET nolock:

Unlike PROQUIET without nolock, the PROQUIET nolock feature will not switch the after image file, when after imaging is enabled.

When After Imaging is used it is advisable to issue a ‘RFUTIL -C aimage new’ as a background task immediately after the PROQUIET nolock is issued, so that the request will be queued to switch to the next AI file when the quiet nolock is eventually disabled.
 
$   proquiet <dbname> enable nolock &
$   rfutil <dbname> -C aimage new &

The aimage new command will be pending trying to write to the ai extent during the quiet nolock.  As soon as the quiet point is lifted the ai extent will switch. This extent must be rolled forward using the “RFUTIL -C roll forward retry” option on the restored target.  

Use of the nolock option to PROQUIET enable does not guarantee that a microtransaction might not be started shortly after the quiet nolock was issued but fully took effect.  The microtransaction may be recorded in the current AI file and when using the above methodology of instructing an ai switch immediately after the PROQUIET nolock, it may be necessary to roll forward some portion of the next after image file to pass beyond the microtransaction point.

Rolling forward these extents without the retry option may result in block update counter errors. The target database will not be corrupt at this point as long as the roll forward operation is resumed with the retry option to avoid further error.

Database Log entry example:
 
11:33:06 QUIET 11: Quiet point request login by <user> on batch. (5569)
11:33:07 Usr 13: Login by <user> on batch. (452)
11:33:21 BROKER 0: Quiet Point enabled while ai extent <path>/<dbname>.a<n> is in use. [New Message]

[New Message] Enhanced further in OpenEdge 10.1A02 and 10.1B to include the sequence number:
Quiet Point enabled while ai extent <path>/<dbname>.a<n> is in use, file number is <sequence number>

11:33:21 BROKER 0: Use Roll Forward Retry with Quiet Point nolock. [New Message]
11:33:21 BROKER 0: Quiet Point Nolock has been enabled by the Broker.
11:33:21 BROKER 0: Quiet point has been enabled by the Broker. (5583) [Message for backwards compatibility with existing scripts]
11:33:22 QUIET 11: Logout by <user> on batch. (453)

Both types of quiet points (with and without the nolock feature) will generate the disable messaging when the Broker lifts the quiescence:
 
11:38:50 QUIET 15: Quiet point request login by <user> on batch. (5569)
11:38:51 BROKER 0: Quiet point has been disabled by the Broker. (5584)
11:38:51 QUIET 15: Logout by <user> on batch. (453)
Workaround
Notes
Progress Article:

 What are Database Quiet Points?  
Last Modified Date11/20/2020 7:39 AM
Attachment 
Files
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.