Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 ... 7 ОтправитьПечать
Очень популярная тема (более 25 ответов) Сервер приложений для v7 (число прочтений - 24190 )
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервер приложений для v7
Ответ #30 - 16. Мая 2007 :: 11:58
Печать  
...

Цифры какие-то неровные... Вроде как у меня в тесте достигается 16K USER объектов и 8K GDI на все процессы.

К сожалению, я не помню, менял ли я что-то на этой машине, или здесь все стандартно.
В предыдущих тестах, как я помню, для лимитов получал ровные цифры в 10000 на всех там и там на стандарте.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Sergey
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #31 - 16. Мая 2007 :: 12:06
Печать  
Объясните плз как организовать взаимодействие между 2 1С-ми. Или это не для этого применяется?
Получается что кроме пользователей которые работают у меня еще N экземпляров 1С будет?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #32 - 16. Мая 2007 :: 12:19
Печать  
Цитата:
Или это не для этого применяется?

ага
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервер приложений для v7
Ответ #33 - 16. Мая 2007 :: 12:34
Печать  
steban писал(а) 16. Мая 2007 :: 12:19:
ага

Хорошо сказал Очень довольный

Степ, ты не заметил такого прикола с нашим сервером: в компонентс сервисез нажимаем правой на v7AppServer, делаем shut down.
А половина рабочих процессов 1cv7 не гаснет (остается активной), но больше сервером не используется и могут даже по таймауту не завершиться.

Может, я что-то не понимаю?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Sergey
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 135
Зарегистрирован: 18. Октября 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #34 - 16. Мая 2007 :: 12:35
Печать  
Это хорошо  Улыбка
Но все таки зачем лишние процессы 1С?. Неужели пользовательские нельзя использовать?
Не врублюсь никак.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #35 - 16. Мая 2007 :: 13:00
Печать  
Господа, пора бы разьяснить "на пальцах" предназначение сего нововведения, а то получается узко-професиональный разговор проморгал ответы 4 и 6 (( Голова не тем забита.....
Я так понимаю, что это получается как-бы аналог OLE-подключения, только условно постоянное с разбросом нагрузки между подключениями. Можно спокойно использовать в WEB-е, отдавать "тяжелую" обработку данных серверу и т.п. Вроде так?

ПС1. Артем, а ты я надеюсь хороший админ, и знаешь че творишь....
ПС2. Для "0" для такой задачи 1С_7 нужно напильником обработать хорошенько, что-бы хотя бы 40-50 подключений на 1 комп тянула...
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервер приложений для v7
Ответ #36 - 16. Мая 2007 :: 13:14
Печать  
trdm писал(а) 16. Мая 2007 :: 13:00:
Господа, пора бы разьяснить "на пальцах" предназначение сего нововведения, а то получается узко-професиональный разговор.

см. ответ #4, #6

Цитата:
ПС2. Для "0" для такой задачи 1С_7 нужно напильником обработать хорошенько, что-бы хотя бы 40-50 подключений на 1 комп тянула...


Запустил 60 сессий в том же тесте, который привел вверху, на той же базе.
Ограничение примерно в 30K USER.

Сильно больше не получится, т.к. кучу "of the application desktop" в 24576 сделать можно, а в 32768 уже нельзя

Мои мысли закинул сюда: http://www.1cpp.ru/forum/YaBB.pl?num=1179319930

А вообще, 50 - это весьма много.
Ибо это реальный пул и при уничтожении объекта на клиенте, серверный воркер освобождается немедленно.
Если есть задачи, где 50 объектов держатся клиентами постоянно, это уже вопрос к дизайну или необходимость реализации сервера по другой технологии.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервер приложений для v7
Ответ #37 - 16. Мая 2007 :: 13:23
Печать  
trdm писал(а) 16. Мая 2007 :: 13:00:
Я так понимаю, что это получается как-бы аналог OLE-подключения, только условно постоянное с разбросом нагрузки между подключениями. Можно спокойно использовать в WEB-е, отдавать "тяжелую" обработку данных серверу и т.п. Вроде так?

Да вроде того.
OLE подключение, еще и кластеризуемое, как оказалось (пока правда не пробовал)

Насчет тяжелой работы - не знаю, я в свое время думал над работой легкой, но в распределенном виде через открытые сети.
А то, как это получилось у Степана - это другой вариант, как оказалось очень интересный именно для локального применения и создания скриптовых решений, которым нужен доступ к данным 1С извне.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #38 - 16. Мая 2007 :: 13:30
Печать  
Такой вопрос: а как именуется подключение.
Условный пример: Допустим крутится 2 базы ТиС и ТиС+Ремонт,
Для ТиС мне желательно распечатать договор на поставку, получив из из подключения с ТиС атрибуты фирмы и клиента, а для ТиС+Ремонт мне нужно таким же макаром распечатать другой документ...
Но обьект то у меня 1.
  
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #39 - 16. Мая 2007 :: 13:36
Печать  
trdm писал(а) 16. Мая 2007 :: 13:00:
Господа, пора бы разьяснить "на пальцах" предназначение сего нововведения

Допустим, пишешь ты веб-приложение для выполнения каких-нибудь операций с базой 1С.
Код, выполняющийся на веб-сервере, создает объект v77.Application, вызывает метод Initialize, ждет пока 1С запустится (5-10 секунд), выполняет какие-нибудь действия, и уничтожает ссылку на v77.Application (1С при этом закрывается).
Время работы скрипта=<время открытия 1С> + <время выполнения нужных действий>.
Для веб-приложения отклик 5-10 секунд неприемлем.
Скрипты на веб-сервере теряют свое состояние после завершения работы.
В IIS (ASP) для сохранения каких-либо ресурсов между вызовами можно использовать объекты Application или Session.
Если v77.Application создавать в Application (или Session), 1С будет запускаться 1 раз при старте сервера (или сессии).
А теперь представь, что на твой веб-сервер ломится десяток клиентов.
Если храним ссылку на v77.Application в объекте Application, то не смогут выполняться одновременные запросы (один объект на всех).
Если в Session, то для каждой сессии будет создаваться свой v77.Application, что тоже не есть хорошо, т.к. большую часть времени они будут простаивать.

А теперь самое интересное...
организуем пул из объектов v77.Application (Допустим минимум 5 и максимум 10).
5 адинэсок запущены и ждут запросов. Скрипт на сервере запрашивает ссылку из пула, выполняет с ней необходимые действия и возвращает её обратно в пул. Получается, что в твоем веб-приложении могут выполняться 5 одновременных действий с базой. Т.е. в зависимости от интенсивности запросов твое приложение может обслуживать десяток или больше пользователей. Если готовых к использованию объектов в пуле нет и верхний лимит объектов в пуле еще не превышен, то сервер приложений создает новый объект и по окончании работы возвращает его в пул. Если пул заполнен, то сервер в течении некоторого времени ждет освобождения объектов в пуле и если не дождался, то возвращает ошибку.
Вся эта кухня называется "пулингом ресурсов". Собственно пул содержится сервисом COM+. Компонент v7AppServer.Connection просто контейнер для v77.Application и еще удовлетворяет условиям сервиса COM+ для объектов, которые "can be pooled".

Кроме веб-приложений есть еще разные задачи, где этот механизм применим.
« Последняя редакция: 16. Мая 2007 :: 15:04 - steban »  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #40 - 16. Мая 2007 :: 13:42
Печать  
к предыдущему посту добавлю:
клиент просто создает объект v7AppServer.Connection и его не волнует, откуда он возьмется.
Подробности пулинга от клиента скрыты.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервер приложений для v7
Ответ #41 - 16. Мая 2007 :: 13:50
Печать  
Степан, а правда, как вторую базу подключить (как сделать второе соединение с другим конструктором). А? Круглые глаза
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #42 - 16. Мая 2007 :: 13:52
Печать  
Очевидных решений в голову не приходит.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервер приложений для v7
Ответ #43 - 16. Мая 2007 :: 13:54
Печать  
сори, голову не ломай, это я так, разведываю возможности Улыбка
Хорошая ветка получилась, думаю из её материала выйдет отличная статья, а если оснастить работающими примерами и хорошей инструкцией с удовольствием приму в свой МСДН Улыбка
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервер приложений для v7
Ответ #44 - 16. Мая 2007 :: 13:59
Печать  
steban писал(а) 16. Мая 2007 :: 13:52:
Очевидных решений в голову не приходит.

А если конструировать объект не сразу, а вызовом метода объекта v7AppServer.Connection?

Код
Выбрать все
	v7=CreateObject("v7AppServer.Connection"); // нет подключения
	v7.Connect("/d... /n... /p... /u..."); // собсно подключение
	Сообщить(v7.AppDispatch.EvalExpr("РабочаяДата()"));
 



как-то так
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 ... 7
ОтправитьПечать