Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создать несколько сервисов из одного [D6, Win2k]


Страницы:   1 2

msgipss ©   (2004-12-29 07:20:00) 

Не совсем понятно из названия, сорри. Задача в следующем:
Я сделал сервис winnt, при запуске он читает конфигурационыый файл и работает в соответствии с ним.
А я хочу запустить его еще раз с др.файлом конфигурации, чтобы работал тоже. Т.е. в принципе сервисы одни и те же (код один и тот) но работают они по разному в соответствии с конфигурацией. И управлять ими соответственно можно по отдельности.
Например при регистраци сервиса, он читает описание и регистрируется под тем именем что прочитал в описании.
Как это можно сделать - или никак ???


DiamondShark   (2004-12-29 18:20:00) [1]


> Суслик ©   (29.12.04 17:25) [33]
> Что значит выражение?

Не правильно сказал. "Подпустить дурочку".
Это ещё у Райкина было.


> Cobalt ©   (29.12.04 17:54) [35]
> 2 DiamondShark ©
> А вы используете InterBase или FireBird?

Sybase ASA.
Я про него говорил.


Digitman   (2004-12-29 17:54:00) [2]

и вновь крайним окажусь я ?.. и "кишиневские" намеки лупят таки по=моему "сранолюбию" ...


Cobalt   (2004-12-29 17:54:00) [3]

2 Digitman ©
Ну, писать сервис, который предназначен только для того, что бы в зависимости от параметров, стартует другой сервис (с различными параметрами) - на это моя фантазия явно неспособна ;-)

2 DiamondShark ©
А вы используете InterBase или FireBird?


Sandman25   (2004-12-29 17:46:00) [4]

[33] Суслик ©   (29.12.04 17:25)

Причем это не кишиневский диалект русского языка, я такую фразу тоже впервые слышу :)


Суслик   (2004-12-29 17:25:00) [5]


> [31] DiamondShark ©   (29.12.04 16:59)
> Началось "пускание дурочки".

Что значит выражение?

Яндекс ответа не дал :)


Digitman   (2004-12-29 17:08:00) [6]


> Cobalt ©   (29.12.04 16:44) [30]


> Насколько я понял из ещё [13]


не очевидно.

если ув.DiamondShark сотворяет свой собственный сиквел-сервис, то это, imho, - из другой оперы)


DiamondShark   (2004-12-29 16:59:00) [7]

Началось "пускание дурочки".
Ню-ню. Развлекайся...


Cobalt   (2004-12-29 16:44:00) [8]

2 Digitman ©   (29.12.04 15:45) [29]
Насколько я понял из ещё [13]
экз-р сиквэл-сервера с теми или иными параметрами - и есть тот самый сервер-сервис в одном лице.


Digitman   (2004-12-29 15:45:00) [9]


> возражение о "дополнительных ресурсах" было от тебя. Причём,
> обосновать ты его не потрудился


мне потрудиться привести монстрообразные структуры KPROCESS, KTHREAD и все те что с ними неразрывно связаны ? мне объяснять тебе, что все эти структуры требуют ресурсов ?


> UDF


UDF исполняется в АП того процесса, что ее грузит и задействует .. и это не имеет никакого отношения к процессу твоего сервиса, стартующего экз-р сиквэл-сервера с теми или иными параметрами


DiamondShark   (2004-12-29 15:25:00) [10]

Ещё один пример. Всё тот же SQL-сервер.
Он допускает установку внешних UDF. В принципе, любая UDF может свалить процесс сервиса.
Я хочу запустить две БД для разных задач, но изолировать их, чтобы критическая ошибка в одной не выбивала другую.


DiamondShark   (2004-12-29 15:13:00) [11]


> Digitman ©   (29.12.04 14:54) [26]

А должны?

В 13 -- пример сервиса, в котором не нужно усложнения с реализацией независимых наборов настроек в одном процессе.
Есть возражения? Можешь обосновать, что этот продукт спроектирован неграмотно?

А 18, ты уж извиняй, но возражение о "дополнительных ресурсах" было от тебя. Причём, обосновать ты его не потрудился. Я что-то не правильно сказал? Ну так скажи как правильно! Тебе ведь известно, какие ресурсы расходуются, перечислить же не трудно.
А ты хернёй маешся... Намёки какие-то намекаешь.


Digitman   (2004-12-29 14:54:00) [12]


> DiamondShark ©   (29.12.04 14:52) [25]


тем что [13] и [18] не вяжутся пока никак


DiamondShark   (2004-12-29 14:52:00) [13]


> Digitman ©   (29.12.04 14:36) [23]

Чем тебе приведённый пример не нравится?


Digitman   (2004-12-29 14:43:00) [14]


> msgipss   (29.12.04 13:31) [17]


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

constructor TMyThread.Create(..)
begin
 // .. здесь ..
 inherited Create(..);
end;

следует лишь осознавать факт, что констр.метод исполняется в контексте вызывающего трэда, а посему все то что подразумевается под ".. здесь ..", будет исполненно именно в контексте вызывающего трэда


Digitman   (2004-12-29 14:36:00) [15]


> DiamondShark ©   (29.12.04 14:27) [21]


> Иди в пень


Сударь, ты - хам. Твердолобый причем. Смысл твердолобости еще понятен, но хамства - увы .. кажется, дискуссия не выходила пока за рамки ...

Тебе был простейший намек (вовсе не подкол !) - приведи конкретныефакты (пусть даже по своей ситуации), а не домыслы, коих у всех у нас достаточно !


Суслик   (2004-12-29 14:36:00) [16]


> constructor TMyThread.Create;
> begin
>  inherited Create(true); // создаём в "подвешенном" состоянии
>  // инициализация
>  Resume;
> end;


в рамках дельфи6 (может и более ранних) делать resume в конструкторе не есть хорошо: если поток отработает очень быстро, то долго можно ошибки искать. Деталей не помню, но возможно, что такое может быть при FreeOnTerminate = true. А может и нет (не помню). В любом случае в рамках d6 можно написать

constructor TMyThread.Create;
begin
  inherited Create(false); // создаём в "подвешенном" состоянии
  // инициализация
end;


разницы никакой, т.к. все равно resume в aftercontruction будет.

-----------------
По поводу многоликости сервиса, поддерживаю Акуличева. Он привел реальный пример.


DiamondShark   (2004-12-29 14:27:00) [17]


> это отолько твое imho ?

Имеешь другое ho -- излагай. А не фразочками бросайся.


> оперируешь опять же своим imho, а не фактами

Иди в пень. Я тебе пример привёл. Реального продукта.


Digitman   (2004-12-29 14:16:00) [18]


> Собственно, доп.ресурсы -- это ресурсы на копию процесса


это отолько твое imho ?


> ресурсы, требуемые на исполнение прикладной задачи в несколько
> раз превышают ресурсы на создание процесса


оперируешь опять же своим imho, а не фактами

Ы ?


> А усложнение может обойтись дороже


А чесать репу насчет потенциального расширения функц-ти будущего сервиса, согласись уж, нужно вовсе не тогда, когда все уже слеплено-продано-впарено и денюжки за это оплаченные съедены-пропиты до копейки, а именно тогда когда верстается и утверждается ТЗ (неважно в каком виде)

Ку ?


DiamondShark   (2004-12-29 14:04:00) [19]


> А если мне нужно подождать с выполнением Execute (например
> подготовить внутренние структуры), я в начале метода Execute
> пишу код.

Лучше в конструкторе:

constructor TMyThread.Create;
begin
 inherited Create(true); // создаём в "подвешенном" состоянии
 // инициализация
 Resume;
end;

А если подготовкой занимается другой поток, то почему бы просто не создавать новый поток, пока всё не готово?


DiamondShark   (2004-12-29 13:54:00) [20]


> + .. но требовать при этом от системы ощутимые доп.ресурсы

Собственно, доп.ресурсы -- это ресурсы на копию процесса.
В приведённом примере ресурсы, требуемые на исполнение прикладной задачи в несколько раз превышают ресурсы на создание процесса.
К чему эта ловля блох?

А усложнение может обойтись дороже.

В любом случае, как выяснилось, это вовсе даже не однозначно "не умно", а совсем даже предмет анализа и решения.
Ы?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо