Число подключенных клиентов к Dcom-серверу

Тема в разделе "Delphi - СОМ", создана пользователем V88, 4 авг 2011.

  1. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    Всем доброго времени суток! :(
    Есть сервер на основе технологии DCOM. И ести клиент, который подключается посредством SocetConnection. Ответьте мне пожалуйста каким образом можно узнать число одновременно подключенных клиентов, а также узнать когда клиентов стало больше или меньше. Я пробовал делать следующим образом (как описано в статье http://www.delphimaster.ru/articles/ado_com/index.html ):
    Но сервер на этапе TSrvApp.RemoteDataModuleCreate зависает намертво :unsure: . Путем многих проб и усилий выяснилось, что сервер зависает из-за обращения из RemoteDataModule к форме Form1 сервера. Что делать? :please:

    P.S. Гуглил два вечера :) , ничего стоящего кромеме выше представленнлй статьи не нашел.
     
  2. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    у вас явно какая-то элементарная ошибка.

    если еще актуально - присоедините проектик.
     
  3. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    Да. Элементарная ошибка. Не знаю почему, но для Label1.Caption надо было обязательно присвоить 0 (или какое-нибудь другое значение целого типа). И все же после подключения 9-го клиента сервер зависает. Может где-то ставиться лимит подключенных клиентов?
    Сам проект весит много. Во вложении простой пример без лишнего кода. Для его работы необходимо на диске C:\ создать файл 111.txt
     

    Вложения:

    • ______.rar
      Размер файла:
      749,4 КБ
      Просмотров:
      8
  4. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    ... Поторопился с выводами...
    Число подключаемых клиентов я думаю не ограничено по умолчению. Оказывается все дело в компоненте TLabel. Абсолютно не знаю почему :( , но на сервере TLabel.Caption отказывается принемать значение больше 9. Потестил с TEdit - он вообще не принемает никакие значения, сервер просто зависает. Потом решение нашлось с компонентом TPanel. Все работает на ура... пока что. Не знаю как с другими компонентами. Буду тестить.
     
  5. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    Думаю, что проблема, кроется именно в вашем дополнительном коде.
    Проект, который вы приложили, ничего из себя не представляет, обычный пример с использованием 3-х звенки.
    Количество отображается нормально.

    Главное в таких случаях четко понимать какая потоковая модель и т.д у Вас используется на сервере.
    Необходимо помнить, что в ряде случаев один и тот же код могут пытаться выполнить несколько клиентов и если код не
    рассчинан на это, то ошибок и сбоев не избежать.
     
  6. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    Все, я разобрался. Тему можно закрыть. :)
    Как я писал выше, все дело было в компоненте TLabel, вместо него просто я использовал TDBText и проблема решилась.
    P.S. В примере, выложенным выше мною, также использовался TLabel. Там счетчик может только инкрементировать только до 9 почему-то. Я не стал разбирать почему. Кто знает объясните, просто ради интереса.
     
  7. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    >>вместо него просто я использовал TDBText и проблема решилась.
    это существенно.

    >> Там счетчик может только инкрементировать только до 9 почему-то. Я не стал разбирать почему.

    запускал я ваш пример 12 раз и счетчик показал 12....
     
  8. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    Может у меня просто Delphi, отличной чем у вас версии. У меня Delphi 7. Пробовал также запускать этот же пример на другом компе - тоже самое. На другом компе тоже был установоен Delphi 7. У вас какая версия?
     
  9. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    Вообще от версии Delphi не особо должно зависеть, как мне кажется.
    Запускал на работе, либо на 2010 или на XE , точно не помню.
     
  10. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    Какая разница какая версия ) Главное, что у меня все зароботало как надо. И все. Тему можно закрыть, ОДНОЗНАЧНО.
    Зачем себе мозг забивать))))
     
Загрузка...

Поделиться этой страницей