Цитата:
Сообщение от
Ivanhoe
X++:
Object Server 01: Fatal SQL condition during login. Error message:
"[Microsoft][Диспетчер драйверов ODBC] Связь используется"
Вроде по-буржуйски это должно быть "Connection in use" (
SQLSTATE 08002).
Вот тут вот пишут, что это значение SQLSTATE может, в частности, устанавливаться после вызова SQLConnect:
Код:
RETCODE SQLConnect(hdbc, szDSN, cbDSN, szUID, cbUID, szAuthStr, cbAuthStr)
The SQLConnect function accepts the following arguments.
Type Argument Use Description
HDBC hdbc Input Connection handle.
...
Error Description
Connection in use (DM) The specified hdbc had already been used to establish a connection with a data source and the connection was still open.
Цитата:
Сообщение от
Ivanhoe
После этого много-много ошибок (2):
X++:
Object Server 01: RPC error: Exception 3221225495 occurred in session 1
Как правило, после многих ошибок (2) AOS либо сам останавливается с ошибкой, либо перестает отвечать и приходится его перезапускать.
Если верить
[MS-ERREF] Windows Error Codes, RPC error 3221225495, она же 0xC0000017, - это STATUS_NO_MEMORY:
Цитата:
Not enough virtual memory or paging file quota is available to complete the specified operation.
Цитата:
Сообщение от
Ivanhoe
В логах SQL сервера никаких проблем нет. Нагрузка на АОС небольшая, пользователей человек 20 максимум. Использование памяти достаточно большое - около 1,5 Гб в пике.
Если 1-я ошибка (в ODBC) возникает на стороне АОСа в ODBC Driver Manager при попытке создания нового соединения, то до SQL сервера там дело не доходит. А на счет использования 1.5Гб в пике - может, и правда указанная RPC-ошибка вылезает из-за нехватки памяти, но не факт.
В качестве workaround можно попробовать
использовать рецепт, некогда рекомендовавшийся для связки AX3+Oracle: настроить AOS так, чтобы он оставлял неиспользуемые соединения с БД, не закрывая их по таймауту, и, таким образом, минимизировать число соединений, создаваемых за все время работы AOS'а.