Specifies the amount of time that another connection can block on the current connection's row and table locks before the current connection is rolled back.
This option can be used to prevent a low priority task from blocking other connections for longer than the specified time.
Integer, in milliseconds
0
PUBLIC role | For current user | For other users | |
---|---|---|---|
Allowed to set permanently? | No | No | No |
Allowed to set temporarily? | Yes, with SET ANY PUBLIC OPTION | Yes (current connection only) | No |
When this option is set to 0, other connections can block on the current connection for an indefinite period of time.
If another connection is blocked on the current connection for longer than the number of milliseconds specified by this option, the current connection is rolled back. If the current connection is in the middle of a request, the request is interrupted. An error is returned if the connection was rolled back. The error can be returned twice if a request must be interrupted. If the connection was idle, the connection is rolled back immediately. The application must be prepared to fail or retry after a delay if it is rolled back.
Locks created by LOCK TABLE table-name WITH HOLD are rolled back. Once a connection receives an error indicating that an operation was rolled back because of a blocking_others_timeout error, that connection receives the error on every request until the connection disconnects.