The admins of my current assignment routinely monitor the highest session id and when it comes near the 60k mark they reboot the AOS so that the numbering starts from scratch. Rather inconvenient since this happens during operation hours.
The reason for this is that apparently the lights go out when the session id hits 65k: AOS crashes.
So, if I interpret SP CREATEUSERSESSIONS correctly, then it does appear to increment session ID's until it hits the magical number of 65535 (FFFF), after that it no longer returns a session ID, but returns -3 which I assume is an error-code.
All fine and dandy, but if this was the case then I surely would have encountered it before and at least half the community here would show up on Microsoft's parking lot with torches and pitch forks. So I'm sure I'm missing something here (please don't say SQL skills!) and my interpretation of the SP falls short.
Now the FFFF-doom scenario only occurs when
- if (select count(*) from SYSCLIENTSESSIONS where SESSIONID IN (@first)) > 0
- @first is the lowest session ID that is greater than @maxclientId and not the @masterid
- @sessionid = -1 or @licenseType = 0
I guess I could write these parameters to a temp table, but at the moment I only have access to the PRD environment and there are limits to my level of confidence.
So my questions:
1. Does anyone know what the parameters @maxclientId and @licenseType represent?
2. Does anyone know why the AOS would crash upon session ID -3?
3. WTF? Why does it not reuse available session ID's? (two questions, but please only answer the 2nd one)
*This post is locked for comments