Показать сообщение отдельно
Старый 03.03.2009, 00:09   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от 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'а.
За это сообщение автора поблагодарили: Ivanhoe (2).