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

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

программа для работы с базой IB в длинной сети [D6, IB6.x]


Novice ©   (2007-06-29 08:54:00) 

Доброго времени суток.
Внешний вид проблемы таков:
Есть программа, написанная не мной (но есть ее исходники). Работа с базой данных на Interbase (IBDatabase, IBQuery, etc.). Сервер баз данных - FireBird. Файл базы - один, состоит из нескольких таблиц - две основных, остальные - справочники. Файл находится серверной машине. Сама программа валяется на другой машине. На остальных машинах только ярлыки на эту программу. Когда запускается программа, то при просмотре всего лишь трех-пяти записей программа зависает - не реагирует ни на что и только выбивается диспетчером задач из памяти. Есть мнение - все происходит из-за большой длины сети, ее запутанности, неправильной архитектуры, большой загруженности и т.д. Подскажите, возможно ли при запуске программы скэшировать этот файл данных, чтобы максимально исключить работу с сетью? Соответственно, при окончании работы вся скэшированная база данных, с которой происходили работы, сливалась на сервер. Возможны ли другие варианты решения проблемы?


SlymRO   (2007-07-04 06:01:00) [1]

Novice   (03.07.07 12:51) [14]
выбивать себе звание главного/ведущего спеца и коэфициент >1 к зарплате


Novice   (2007-07-03 12:51:00) [2]

1. >>2. Шило на мыло<< И это верно. А что делать, если начальство жмется платить профессиональным информатикам, нагружая вместо этого простого оператора пк, который программированием занимается от силы 7-8 месяцев... самостоятельно...


Anatoly Podgoretsky   (2007-07-03 08:43:00) [3]

> Novice  (03.07.2007 08:09:12)  [12]

2. Шило на мыло
4. Займись своим делом, а админ своим


Novice   (2007-07-03 08:09:00) [4]

1. >>Афигеть, об отладки, надо понимать, у вас ничего не слышали...<< Я - слышал, и не только - активно пользуюсь.

2. >>Съэкономили, взяли студента, теперь расхлёбываете.<< В точку. Делал студент. А я теперь исправляй.

3. >>Локально хоть пробывали запуска ? Работает ?<< Да.

4. >>А вот не "длинной" - проблемы :)<< Может быть. Но корявость сети точно влияет - половина рабочих групп, половина доменов, какая из машин выдает всем IP и доменные имена - даже админ не знает.

5. >>Запусти, наконец, под IDE, коль исходники есть.<< Посмотрел я уже все. После чего плюнул на исправления, выматерился и переписал все на трехзвенку. Все заработало. Тема, собственно, закрыта, всем спасибо.


ЮЮ   (2007-06-30 11:48:00) [5]


> Локально хоть пробывали запуска ? Работает ?

Даже на "короткой" сети работает:
( Я тестировал эту же самую программу на короткой сети из двух машин, сеть - стандартная рабочая группа, длина кабеля меньше 10 метров)

А вот не "длинной" - проблемы :)

Запусти, наконец, под IDE, коль исходники есть.

Неужели действительно полагаешь, что "длина сети"  имеет какое-то значение?


zz 5   (2007-06-30 11:01:00) [6]


> Novice   (30.06.07 08:17) [8]

Локально хоть пробывали запуска ? Работает ?


Плохиш   (2007-06-30 10:14:00) [7]


> 3. >>когда-то при такой "архитектуре" всё это работало.<<
> Это не работало никогда. Как запустили программу, так сразу
> все и пошло.

Афигеть, об отладки, надо понимать, у вас ничего не слышали...

> А по теории автора этого недоразумения - должно работать
> примерно для пяти-десяти машин.

При прочтении сего рыдал горючими слезами, тут таких аФФтаров по всем конференциям косяками ходят :-)) Съэкономили, взяли студента, теперь расхлёбываете. Автор вас разводит без зазрения совести.


Novice   (2007-06-30 08:17:00) [8]

Отвечаю по порядку:
1. >>А в какой момент происходит зависание ?<< При навигации по DBTreeView. Понажимал на два-три пункта, и все.

2. >>Вот это и есть бред. Необходимо на каждой клиентской машине иметь экзепляр программы.<< Прошу прощения за глупый вопрос, но чем это поможет? Точнее, в чем разница будет?

3. >>когда-то при такой "архитектуре" всё это работало.<< Это не работало никогда. Как запустили программу, так сразу все и пошло. Я тестировал эту же самую программу на короткой сети из двух машин, сеть - стандартная рабочая группа, длина кабеля меньше 10 метров, FireBird 1.5, все работает отлично.

4. >>И вообще, версия сервера какая ?<< FireBird 1.5....

5. >>Тем более, не известно, что, когда это работало, работало ли это для одного клиента<< Даже для одного - все равно не работает. А по теории автора этого недоразумения - должно работать примерно для пяти-десяти машин.

6. >>Проблему нужно решать, а не обходить.<< Решить я эту проблему самостоятельно могу только одним способом: взять MIDAS и перелопатить всю эту ересь на трехзвенку с тонким клиентом через DCOM/Socket соединения. Просто хотелось бы найти и другие пути.


Desdechado   (2007-06-29 12:47:00) [9]

>  возможно ли при запуске программы скэшировать этот файл
> данных, чтобы максимально исключить работу с сетью? Соответственно,
>  при окончании работы вся скэшированная база данных, с которой
> происходили работы, сливалась на сервер.
Теоретически да, но не в твоем случае.
Проблему нужно решать, а не обходить.


Johnmen   (2007-06-29 11:46:00) [10]


> ЮЮ ©   (29.06.07 09:38) [3]
> Возможно и бред, но разве
> он должен приводить в subj-евой проблеме?Тем более, наверняка,
>  когда-то при такой "архитектуре" всё это работало.

Я это допускаю. Тем более, не известно, что, когда это работало, работало ли это для одного клиента.


PEAKTOP   (2007-06-29 10:48:00) [11]


> Сама программа валяется на другой машине

На фиг ? Скопровать программу на каждую машину.


> то при просмотре всего лишь трех-пяти записей программа
> зависает

1) Клиентская библиотека gds32.dll от той версии Firebird, которая крутиться на серваке ?

2) Сам сервак ниже версии 2.0.1 ? Если выше, то новая версия скомпилина при помощи M$ Visual C++ 8.0, следовательно необходимо на клиентские тачки скопировать библиотеки msvcp80.dll и msvcr80.dll и убить старые msvcp71.dll и msvcr71.dll.

3) Сервак не использует UDF ? Воможен конфликт менеджеров памяти в случае, когда сервак скомпилен с msvcp80.dll и msvcr80.dll, а UDF скомпилена со старыми msvcp71.dll и msvcr71.dll. Надо пересобирать UDF.

И вообще, версия сервера какая ?


Сергей М.   (2007-06-29 10:24:00) [12]


> Novice   (29.06.07 08:54)


Проблема наверняка в ошибке в 17-й строке


ЮЮ   (2007-06-29 09:38:00) [13]

> [2] Johnmen ©   (29.06.07 09:18)

Возможно и бред, но разве он должен приводить в subj-евой проблеме?
Тем более, наверняка, когда-то при такой "архитектуре" всё это работало.
Проблемы, как всегда, ИМХО, в 17-ой строке. Баги редко проявляются сразу, иначе бы их не было.


Johnmen   (2007-06-29 09:18:00) [14]


> Сама программа валяется на другой машине. На остальных машинах
> только ярлыки на эту программу.

Вот это и есть бред.
Необходимо на каждой клиентской машине иметь экзепляр программы. И его уж запускать.


zz 5   (2007-06-29 09:10:00) [15]

А в какой момент происходит зависание ? Отладчиком не пробывали поймать ? Может и не в сети проблемы ?


Наверх

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