Особенности работы приложений с сервером 1С:Предприятия - Администрирование - 1С v.8.x - Каталог статей - Программирование в 1С
Программирование в 1СВоскресенье, 11.12.2016, 04:12

| RSS
Главная | Каталог статей
Меню сайта

Категории раздела
Обзор платформы [8]
Архитектура 1С Предприятия [4]
Средства разработки [8]
Работа пользователей с 1С Предприятием 8.0 [8]
Установка и настройка [10]
Особенности администрирования Windows XP SP2 [5]
Особенности использования HASP [5]
Особенности настройки SQL Server 2000 [9]
Администрирование [18]

Поиск

Поиск по сайту

Главная » Статьи » 1С v.8.x » Администрирование

Особенности работы приложений с сервером 1С:Предприятия
Информационная база 1С:Предприятия 8.0 может храниться как в специальном файле, так и в базе данных Microsoft SQL Server. В последнем случае приложение 1С:Предприятия взаимодействует с SQL-сервером посредством специального приложения - сервера 1С:Предприятия. Этот документ описывает некоторые детали взаимодействия клиентского приложения с сервером 1С:Предприятия. См., также "Вопросы установки и настройки 1C:Предприятия 8.0 в варианте "клиент-сервер"".
 
Консоль сервера 1С:Предприятия

Сервер 1С:Предприятия является COM+ приложением, не имеющем собственного пользовательского интерфейса. Простейшие действия по управлению сервером 1С:Предприятия (запуск, остановка) могут быть выполнены штатными средствами Windows, такими, как утилита Component Services. Для управления специфическими функциями сервера 1С:Предприятия предназначена утилита администрирования информационных баз в варианте "клиент-сервер" (консоль сервера 1С:Предприятия), описанная в соответствующем разделе книги "1С:Предприятие 8.0 клиент-сервер".
 
Консоль сервера 1С:Предприятия является подключаемым модулем (snap-in) штатного средства администрирования Windows - Microsoft Management Console. Ее регистрация выполняется автоматически программой установки 1С:Предприятия. Регистрация может быть выполнена и вручную. Для этого необходимо выполнить следующую командную строку:
 
regsvr32 <Каталог загрузочных модулей 1С:Предприятия>/RAdmin.dll
 
Например:
 
regsvr32 "C:/Program Files/1CV8/bin/RAdmin.dll"

Для иллюстрации описанных ниже механизмов будет полезно воспользоваться консолью сервера 1С:Предприятия для просмотра списка соединений информационной базы.
 
Соединение с сервером 1С:Предприятия

С сервером 1С:Предприятия помимо консоли сервера 1С:Предприятия могут работать еще 3 вида приложений:
  • 1С:Предприятие;
  • 1С:Предприятие в режиме конфигуратора;
  • Внешнее Соединение 1С:Предприятия.
Каждый экземпляр приложения 1С:Предприятия и каждый экземпляр внешнего соединения с информационной базой является отдельным клиентом сервера 1С:Предприятия и образует отдельное соединение с сервером 1С:Предприятия. Соединение с сервером реализуется механизмами COM/DCOM и обеспечивает удаленный доступ клиента к объектам, экземпляры которых созданы на сервере.
 
В отличие от соединения с консолью сервера 1С:Предприятия, соединение с 1С:Предприятием или Внешним Соединением ассоциируется с определенной Информационной Базой (на одном сервере 1С:Предприятия их может быть несколько) идентификатор которой задается в процессе соединения. Поскольку различные информационные на одном сервере 1С:Предприятия функционируют практически независимо, далее будем говорить именно о соединениях с Информационной Базой.
 
При запуске 1С:Предприятия соединение создается после выбора клиент-серверной информационной базы и режима запуска (1С:Предприятие/Конфигуратор) в диалоге "Запуск 1С:Предприятия" и разрывается при завершении приложения. Пронаблюдать за этим процессом можно при помощи консоли сервера 1С:Предприятия, задав в свойствах сервера автоматический опрос через 1 - 3 секунды, а затем выбрав ветку "Соединения" интересующей Вас информационной базы. При старте 1С:Предприятия в списке соединений будет появляться соответствующая запись, а при завершении 1С:Предприятия соответствующая ему запись будет пропадать.
 
Модуль Внешнего Соединения соединяется с сервером в процессе исполнения метода connect и получения указателя на созданный этим методом объект "внешнее соединение". Соединение будет разорвано при уничтожении объекта "внешнее соединение". Это происходит либо при выполнении метода Release интерфейса IUnknown на языке C/C++, либо при потере указателя на этот объект (например: присваиванием ему NULL или Неопределено, уничтожении локальной среды процедуры или функции и т.п.), либо после освобождения объекта "внешнее соединение" сборщиком мусора (Java, .NET). Например:
 
// Соединений нет.

МодульВнешнихСоединений = Новый COMОбъект("V8.COMConnector");

// Соединений нет.

Соединение1 = МодульВнешнихСоединений.connect("Srvr=ServerName;Ref=InfoBaseName");

// Одно соединение.

Соединение2 = МодульВнешнихСоединений.connect("Srvr=ServerName;Ref=InfoBaseName");

// Два соединения.

Соединение1 = Неопределено;

// Одно соединение.

Соединение2 = Неопределено;

// Соединений нет.
 
Важно иметь в виду, что при установке первого соединения с информационной базой сервер 1С:Предприятия выполняет чтение наиболее важных и часто используемых данных из информационной базы, которые в дальнейшем могут совместно использоваться несколькими соединениями. Поэтому установка первого соединения может выполняться несколько дольше, чем второго и последующих. Кроме того, если соединение является первым для всего сервера 1С:Предприятия после долгого бездействия, то сервер может быть остановлен механизмом COM+, выгружен из памяти и потребуется загрузка всех его компонент, что тоже может занять некоторое время.
 
Разрыв последнего соединения с данной информационной базой приводит к выгрузке из памяти всех данных этой информационной базы, а разрыв последнего соединения с данным сервером 1С:Предприятия - выгрузке большинства входящих в его состав компонент. При этом, если используются установки COM+ по умолчанию, то через 3 минуты после разрыва последнего соединения с сервером 1С:Предприятия он будет остановлен и выгружен из памяти.
 
О "зависших" соединениях

Каждое соединение с информационной базой требует незначительных ресурсов, однако в следующих случаях лишние соединения могут мешать нормальной работе:
  • Соединение с Конфигуратором не позволяет подсоединиться к информационной базе другим Конфигуратором.
  • Обновление конфигурации базы данных и некоторые другие операции, требующие монопольного доступа к информационной базе, не могут быть выполнены, если соединений с данной информационной базой больше одного.
  • Если в процессе работы 1С:Предприятия была начата транзакция, то эта транзакция ассоциируется с соединением сервера 1С:Предприятия с данным клиентским приложением 1С:Предприятия. Нештатное завершение клиентского приложения 1С:Предприятия в этот момент может привести к тому, что транзакция останется незавершенной вместе с неразорванным соединением. Незавершенная транзакция может быть препятствием для нормальной работы других клиентских приложений 1С:Предприятия.
  • При начале редактирования объекта или при выполнении метода <объект>.Заблокировать() на объект устанавливается блокировка. Все блокировки объектов также ассоциируются с соединением и сохраняются либо до момента снятия блокировки (окончание редактирования или выполнение метода <объект>.Разблокировать()) или до разрыва соединения. Неснятые блокировки объектов также могут быть помехой для работы других клиентских приложений 1С:Предприятия.
В перечисленных случаях нежелательные соединения необходимо разорвать, для чего обычно достаточно завершить установившие их приложения. Если это затруднительно, то соединения можно разрывать при помощи Консоли сервера 1С:Предприятия. При этом установившие их приложения завершатся аварийно и все их несохраненные данные будут потеряны.
 
Отдельный случай представляют соединения, за которыми уже не стоят никакие приложения. Такие соединения могут остаться от приложений, завершившихся не штатно. Механизм COM+ следит за активностью приложения, установившего соединение с COM+ сервером, в большинстве случаев распознает соединения, оставшиеся без клиентских приложений и через 6-8 минут автоматически разрывает такие соединения. Если это соединение мешает продолжению работы то не дожидаясь автоматического разрыва соединения механизмами COM+ можно разорвать соединение при помощи консоли сервера 1С:Предприятия.
Категория: Администрирование | Добавил: Spacer (24.10.2009)
Просмотров: 6283
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Copyright 1C:Programmer © 2016
    Бесплатный конструктор сайтов - uCoz