MSSQLSERVER_1204
Details
Product Name |
SQL Server |
Product Version |
10.0 |
Product Build Number |
10.00.0000.00 |
Event ID |
1204 |
Event Source |
MSSQLSERVER |
Component |
SQLEngine |
Symbolic Name |
LK_OUTOF |
Message Text |
The instance of the SQL Server Database Engine cannot obtain a LOCK resource at this time. Rerun your statement when there are fewer active users. Ask the database administrator to check the lock and memory configuration for this instance, or to check for long-running transactions. |
Explanation
SQL Server cannot obtain a lock resource. This can be caused by either of the following reasons:
SQL Server cannot allocate more memory from the operating system, either because other processes are using it, or because the server is operating with the max server memory option configured.
The lock manager will not use more than 60 percent of the memory available to SQL Server.
User Action
If you suspect that SQL Server cannot allocate sufficient memory, try the following:
If applications besides SQL Server are consuming resources, try stopping these applications or consider running them on a separate server. This will remove release memory from other processes for SQL Server.
If you have configured max server memory, increase max server memory setting.
If you suspect that the lock manager has used the maximum amount of available memory identify the transaction that is holding the most locks and terminate it. The following script will identify the transaction with the most locks:
SELECT request_session_id, COUNT (*) num_locks
FROM sys.dm_tran_locks
GROUP BY request_session_id
ORDER BY count (*) DESC
Take the highest session id, and terminate it using the KILL command.
Internal-Only
<xmrFileHeader><buildNo>9.00.1281.60</buildNo><component>SQLEngine</component><dsDbName></dsDbName><dsProjectName>SQLServer2005</dsProjectName><exportDate>2005-08-22T14:00:12</exportDate><importDate>2005-08-22T12:43:00</importDate><prodContact>pingwang</prodContact><prodName>SQL Server</prodName><prodVer>9.0</prodVer><sourceFileDepotPath></sourceFileDepotPath><sourceFileExt></sourceFileExt><sourceFileName></sourceFileName><userDefined></userDefined><xmrFilePath>.\sqlXMR.xml</xmrFilePath></xmrFileHeader><resourceString resourceStringGuid="de6ece78-79de-484d-9224-ca0f7645815f" resourceStringProxyID="MSSQL_ENG001204"><exportStatus>Do Not Export</exportStatus><importStatus>Unchanged</importStatus><inActive>No</inActive><inserts></inserts><message><cause>We're out of memory, either because we’ve used the maximum limit of 60% of visible memory that the lock manager will use, or because the server is under memory pressure and the lock manager can not get more memory.</cause><causeCorrectiveActionStatus>Dev Signed Off</causeCorrectiveActionStatus><correctiveAction>If the condition is caused by the lock manager using the maximum of 60% of visible memory that it is allowed, lock manager memory can be freed by finding a Tx that is holding a lot of locks and terminating it. “select request_session_id, count (*) num_locks from sys.dm_tran_locks group by request_session_id order by count (*) desc” Take the highest session id and terminate it using the KILL command. General memory pressure actions are also appropriate for this condition if the lock manager has not yet reached the 60% limit.</correctiveAction><error><exMsgBoxID></exMsgBoxID><exMsgBoxSource></exMsgBoxSource></error><event><eventCategory></eventCategory><eventFacility></eventFacility><eventLanguage></eventLanguage><eventSeverityType></eventSeverityType><eventType></eventType><momEvent>Yes</momEvent><momOwner>borisb</momOwner><winRegEventID>1204</winRegEventID><winRegEventSource>MSSQLSERVER</winRegEventSource></event><msuid></msuid></message><numericID>1204</numericID><owner>santeriv</owner><pssReview><pssComments></pssComments><pssDebugger>No</pssDebugger><pssEngineer></pssEngineer><PSSSupportability>No</PSSSupportability></pssReview><suspect>No</suspect><symbolicName>LK_OUTOF</symbolicName><text>The instance of the SQL Server Database Engine cannot obtain a LOCK resource at this time. Rerun your statement when there are fewer active users. Ask the database administrator to check the lock and memory configuration for this instance, or to check for long-running transactions.</text><type></type><ueReview><assignedTo></assignedTo><bugID></bugID><bugRequired>No</bugRequired><comments></comments><docStudio><dsTopicId></dsTopicId><export>Yes</export></docStudio><editor></editor><revisedStringText></revisedStringText><workStatus>Not Reviewed</workStatus><writer></writer></ueReview><userDefined><eventLoggingLevel></eventLoggingLevel></userDefined></resourceString>