EXPLANATION: Process being freed while holding dataserver semaphore.
OK.
I received an explanation on this WARNING from a very reliable and trusted source.
See how you can utilize this response to continue researching this warning message, however I have stopped because:
1. We are moving to SQL 7.0 very soon.
2. It is not a critical warning according to this source. However there could always be an exception and thus reason to continue researching this warning.
OK here it goes...
[SQL Server keeps track of locks and activities by storing the connection
specific information within a structure -- This structure is called PSS
Structure.]
Dataserver semaphores are used by the SQL engine to control access and
concurrency to SQL Server's data. They limit the maximum amount of
concurrent access to a particular piece of information. [Bottom line, think of it as if it were a lock.]
When you get an AV (and that is the most common cause for the warning you
are seeing), SQL Server traps the exception and invokes a cleanup task. This
task tries to free all the resources held by the session (= connection)
which caused the exception. The information about what and how many
resources your session is (was) holding is stored in its PSS structure.
In case the SQL engine is not able to release all the dataserver semaphores
(or locks, which are one particular kind of resource tracked in the PSS
structure) it will write the warning you are seeing into the error log.
As mentioned before, the most common reasons for this to happen are
exceptions like an access violation because this is the most common reason
for the cleanup task to be invoked. But you might get this warning in other
cases as also whenever the cleanup task experiences difficulties to release
the resources for a specific session.
[Reasons for those difficulties are usually unexpected behavior causing
resource allocations to interfere with each other. Also memory corruption
may lead to such warnings. If, for example, the PSS structure gets
corrupted, its containing dataserver semaphore references might be damaged
and make no further sense to the operating system. In such case an API call
for their release would return an error and the SQL engine could not
guarantee that the semaphore has either been released correctly or its
reference was a result of the corruption and therefore a semaphore never
existed to begin with. Since it actually does not disturb the continuation
of SQL Server a warning is all you get. You might end up with orphaned
resources which will not be recovered till you cycle the service.]
Hope this is helpful.
EXPLANATION: Process being freed while holding dataserver semaphore. (reply)
thank you.
------------
Frank Garcia at 3/12/99 9:49:18 AM
OK.
I received an explanation on this WARNING from a very reliable and trusted source.
See how you can utilize this response to continue researching this warning message, however I have stopped because:
1. We are moving to SQL 7.0 very soon.
2. It is not a critical warning according to this source. However there could always be an exception and thus reason to continue researching this warning.
OK here it goes...
[SQL Server keeps track of locks and activities by storing the connection
specific information within a structure -- This structure is called PSS
Structure.]
Dataserver semaphores are used by the SQL engine to control access and
concurrency to SQL Server's data. They limit the maximum amount of
concurrent access to a particular piece of information. [Bottom line, think of it as if it were a lock.]
When you get an AV (and that is the most common cause for the warning you
are seeing), SQL Server traps the exception and invokes a cleanup task. This
task tries to free all the resources held by the session (= connection)
which caused the exception. The information about what and how many
resources your session is (was) holding is stored in its PSS structure.
In case the SQL engine is not able to release all the dataserver semaphores
(or locks, which are one particular kind of resource tracked in the PSS
structure) it will write the warning you are seeing into the error log.
As mentioned before, the most common reasons for this to happen are
exceptions like an access violation because this is the most common reason
for the cleanup task to be invoked. But you might get this warning in other
cases as also whenever the cleanup task experiences difficulties to release
the resources for a specific session.
[Reasons for those difficulties are usually unexpected behavior causing
resource allocations to interfere with each other. Also memory corruption
may lead to such warnings. If, for example, the PSS structure gets
corrupted, its containing dataserver semaphore references might be damaged
and make no further sense to the operating system. In such case an API call
for their release would return an error and the SQL engine could not
guarantee that the semaphore has either been released correctly or its
reference was a result of the corruption and therefore a semaphore never
existed to begin with. Since it actually does not disturb the continuation
of SQL Server a warning is all you get. You might end up with orphaned
resources which will not be recovered till you cycle the service.]
Hope this is helpful.
ADDITION: Process being freed while holding dataserver semaphore. (reply)
There are known issues with NT SP4 and applications written in C. SQL Server 6.5 is written in C.
Hope this helps.
------------
Gregory at 3/12/99 10:35:11 AM
thank you.
------------
Frank Garcia at 3/12/99 9:49:18 AM
OK.
I received an explanation on this WARNING from a very reliable and trusted source.
See how you can utilize this response to continue researching this warning message, however I have stopped because:
1. We are moving to SQL 7.0 very soon.
2. It is not a critical warning according to this source. However there could always be an exception and thus reason to continue researching this warning.
OK here it goes...
[SQL Server keeps track of locks and activities by storing the connection
specific information within a structure -- This structure is called PSS
Structure.]
Dataserver semaphores are used by the SQL engine to control access and
concurrency to SQL Server's data. They limit the maximum amount of
concurrent access to a particular piece of information. [Bottom line, think of it as if it were a lock.]
When you get an AV (and that is the most common cause for the warning you
are seeing), SQL Server traps the exception and invokes a cleanup task. This
task tries to free all the resources held by the session (= connection)
which caused the exception. The information about what and how many
resources your session is (was) holding is stored in its PSS structure.
In case the SQL engine is not able to release all the dataserver semaphores
(or locks, which are one particular kind of resource tracked in the PSS
structure) it will write the warning you are seeing into the error log.
As mentioned before, the most common reasons for this to happen are
exceptions like an access violation because this is the most common reason
for the cleanup task to be invoked. But you might get this warning in other
cases as also whenever the cleanup task experiences difficulties to release
the resources for a specific session.
[Reasons for those difficulties are usually unexpected behavior causing
resource allocations to interfere with each other. Also memory corruption
may lead to such warnings. If, for example, the PSS structure gets
corrupted, its containing dataserver semaphore references might be damaged
and make no further sense to the operating system. In such case an API call
for their release would return an error and the SQL engine could not
guarantee that the semaphore has either been released correctly or its
reference was a result of the corruption and therefore a semaphore never
existed to begin with. Since it actually does not disturb the continuation
of SQL Server a warning is all you get. You might end up with orphaned
resources which will not be recovered till you cycle the service.]
Hope this is helpful.