Штатное поведение - это как раз создание новых записей, а не использование "свободных". Если сессию перестали использовать, то она должны быть закрыта (удалена запись) и никак иначе
Там же дальше в хранимке [dbo].[CREATEUSERSESSIONS] возвращает код ошибки
X++:
select @first = min(SESSIONID)
from SYSCLIENTSESSIONS WITH (UPDLOCK,READPAST)
where STATUS = 0
and SESSIONID > @maxClientId
and SESSIONID <> @masterId
if (select count(*) from SYSCLIENTSESSIONS where SESSIONID IN (@first)) > 0
begin
(...)
update (...)
(...)
select @sessionid = @first
end
else
begin
(...)
select @max_val = max(SESSIONID)+1
from SYSCLIENTSESSIONS WITH (UPDLOCK)
if (@max_val > 65535)
select @sessionid = -3
else
(...)
end
Т.е. может быть только одна запись с номером сессии 65535. Номер больше создать не даст. Будет ждать, пока не уменьшат количество сессий (я смотрел в dax2012, возможно, в dax2009 этого условия нет)
В хранимке [dbo].[CREATEUSERSESSIONS] использование этих сессий - это исключение. Попытка как-то исправить проблему, передав сессию пользователю в надежде, что по завершении работы эта сессия будет корректно закрыта
Не вполне ответ на Ваш вопрос, но
Закрыть AxaptaCOMConnector из AXAPTA
В принципе, вывод тот же, что и в обсуждении
https://community.dynamics.com/forum...9-a2de0b0dfa90
65535 - это предел. Максимум. Количество соединений должно быть меньше этого числа. Если соединения с номером больше этого числа вообще появились, то это ошибка. Их вообще надо отключать и сбрасывать и искать, почему такая ситуация возникла. Например, в обсуждении - это было подключение из-вне к Axapta. Ну и у меня по ссылке - тоже