Тоже столкнулся с описанной топикстартером проблемой: сравнительно долгой установкой соединений при вызове из скрипта. Буквально сегодня обнаружил во встроенной в 1С:Предприятие справке замечательные свойства V81COMConnector, такие как MaxConnections, PoolTimeout и PoolCapacity. А ещё в той же справке пишут:
| Синтакс-помощник | COM-соединитель (COM connector) Connect (Connect) Синтаксис: Connect(<Строка соединения>) ... Создает соединение с информационной базой 1С:Предприятия 8.1. Устанавливает соединение с информационной базой 1С:Предприятия 8.1 и возвращает ссылку на объект COM-соединение. Установка соединения выполняется по следующему алгоритму: 1. COM-соединение с требуемыми параметрами ищется в пуле соединений. Если найдено, то используется оно. 2. Если COM-соединение с требуемыми параметрами не найдено, то анализируется не исчерпан ли лимит по числу одновременно существующих соединений. Если не исчерпан, то создается новое COM-соединение. 3. Если лимит исчерпан, но при этом в пуле имеются неиспользуемые COM-соединение, то соединение, дольше всех находящееся в пуле, удаляется и создается новое COM-соединение. 4. Если никаким способом найти подходящее или создать новое COM-соединение не удалось, то происходит ожидание освобождения COM-соединение другим потоком, после чего весь процесс повторяется, начиная с пункта 1. |
В каталог с моими скриптами положил файлик global.asa со следующим содержимым:
<object runat="server" scope="application" id="objV81COMConnector" progid="V81.COMConnector"></object>
<script language="vbscript" runat="server">
sub Application_OnStart
objV81COMConnector.PoolCapacity = 2
objV81COMConnector.PoolTimeout = 60
objV81COMConnector.MaxConnections = 4
end sub
</script>
И теперь, во время соединения с сервером приложений 1С:Предприятие, производится поиск уже существующего, и новое устанавливается только если подходящее соединение не найдено.
Dim V81Connection
Dim V81ConnectionString
Set V81COnnectionString = "Srvr=""appservername"";Ref=""dbname";Usr=""username"";Pwd=""userpassword"""
Set V81Connection = objV81COMConnector.Connect(V81ConnectionString)
http://blog.rk2.ru/24.12.2008/1 |