- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: Please clarify what ENQLM is
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-08-2010 08:33 PM
тАО03-08-2010 08:33 PM
The System Manager's Manual vol 1 says of ENQLM (on Table 7.9, pg 244) ...
"Limits the number of locks a process (and its subprocesses) can own." (The v7.3-2 version of this manual said in table 7.8 that the default on Alpha is 2000.)
The documentation for AUTHORIZE says ...
"/ENQLM=value - Specifies the lock queue limit for the ENQLM field of the UAF record. The lock queue limit is the maximum number of locks that can be queued by the user at one time. The default is 200 on VAX systems and 4000 on Alpha and I64 systems."
The System Services manual says, under details for SYSCREPRC ...
"PQL$_ENQLM Lock request quota. This quota limits the number of lock requests that a process can queue."
and for SYS$GETJPI, ...
"JPI$_ENQLM - Returns the lock request quota of the process, which is a longword integer value."
and for SYS$GETUAI ...
"UAI$_ENQLM - Returns the lock queue limit"
QUESTIONS
1 - which definition is correct? (A limit on locks in the the ENQ and/or DEQ queue or the total number of locks that can be owned? - or are they the same?)
2 - What is the recommended default value on Alphas with plenty of memory?
3 - (Related question on lock processing) Why is it that in a loop that just does an SYS$ENQW and SYS$DEQ we see a continual increase in the number of locks being consumed rather than staying at a small number ((i.e. JPI$_ENQCNT decreasing)?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-08-2010 08:52 PM
тАО03-08-2010 08:52 PM
SolutionThe clearest definition for me is: "the total number of locks that can be owned". In what state they are (being ENQues, DEQued or CoNVerted is less relevant IMHO
2 - What is the recommended default value on Alphas with plenty of memory?
Although each locks consumes a little memory, this really has NOTHING to do (anoymore) with the total memory in the box. It has everything to do with the application usage of locks which 'depends'.
This is a 'quota' aka fools-guards.
You have to have enough. More then enough does not help or hinder.
Too little will likely cause the application to break.
Too much more may allow an errant application to consume too much resources but does not cost anything if the application behaves, so typically you want to err on the save side.
And example:
Application reading one record at a time from an indexed files. This will need 1 lock for the RMS record lock, but will also typically consume one lock for each RMS buffer used: typically 5 - 20. So on ENQLM of 100 or so will do (an extra one for the file lock, some other files, and so one)
Now an application which feels it needs to lock all records each holding for a customer. (it should probably just lock the customer record, not the holdings). It will need as many record locks as a customer may have holdings. 100? 1000? 10,000? Entirely up to the application. Nothing to do with memory.
Now it is _possible_ to design an application which for example caches as many records as it can get locks, or 1/10 of ENQLM or some such. Such application could get a perfomance benefit from an high ENQLM... but such application had batter document that behaviour.
>>> 3 - (Related question on lock processing) Why is it that in a loop that just does an SYS$ENQW and SYS$DEQ we see a continual increase in the number of locks being consumed rather than staying at a small number ((i.e. JPI$_ENQCNT decreasing)?
Because there is a coding error in the application. No if's or but's about it.
The applicaion is broken! Most likely on the DEQ side. Is the status checked?
Just use ANAL/SYS... SET PROC
Cheers,
Hein
3 - (Related question on lock processing) Why is it that in a loop that just does an SYS$ENQW and SYS$DEQ we see a continual increase in the number of locks being consumed rather than staying at a small number ((i.e. JPI$_ENQCNT decreasing)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-08-2010 09:13 PM
тАО03-08-2010 09:13 PM
Re: Please clarify what ENQLM is
Mostly what Hein said, except to point out that you can set ENQLM to "unlimited" for a process by setting it to 32767. On the other hand, if you haven't found the bug in your ENQ/DEQ test loop, that's probably not a good idea! Check passing mechanismsm and status codes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-09-2010 08:10 PM
тАО03-09-2010 08:10 PM
Re: Please clarify what ENQLM is
The person who has been working with the code that loops through SYS$ENQW and SYS$DEQ has been absent today. With any luck I'll have an update on the sitaution tomorrow.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-09-2010 10:06 PM
тАО03-09-2010 10:06 PM
Re: Please clarify what ENQLM is
Some foundational technologies (e.g., databases) do large amounts of locking for a variety of reasons.
I suspect that the historical reasons for the increase in values from VAX to Alpha is partially a reflection that these tools have become more prevalent on faster, larger memory capacity systems.
With regards to locks seeming to be consumed, I concur with checking the code and status returns. I also observe that SDA can extract the current state of the lock database.
- Bob Gezelter, http://www.rlgsc.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-10-2010 05:00 AM
тАО03-10-2010 05:00 AM
Re: Please clarify what ENQLM is
2: varies by application.
3: that's called a "bug" or (more specifically) a "leak".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-10-2010 07:54 PM
тАО03-10-2010 07:54 PM
Re: Please clarify what ENQLM is
The problem mentioned in item 3 was finally traced a bug in some in-house code that's about 5 years old. It was creating a new lock every time when it should have been reusing the one lock. It had never previously been stressed to the point of exceeding anyone's ENQLM, which is why this whole question arose.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-10-2010 11:11 PM
тАО03-10-2010 11:11 PM
Re: Please clarify what ENQLM is
Moral: locks may take up only a little memory but taking too many of them out will batter performance like an oversize baseball bat.