![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TOracleSession опасна для сервера !!! [D5, D6]
YDV © (2003-04-18 13:50:00)Доброго Вам времени суток !
У Вас возникала ситуация когда есть много юзеровских программ на одной машине, которые работают с одним и тем же сервером ORACLE ?
В этом случае на сервере для каждой сессии выделяется память, а если прог много, а компьютеров в сети ну очень много, то время от времени сервер захлебывается от нехватки памяти.
Можно ли создать главную прогу с одной OracleSession, а остальнымы прогами использовать ее для связи с сервером(в этом случае получается всего лишь одна активная сессия, а остальные или DataSet-ы или Query), при чем формовый вариант не подходит - на разных компах могут быть только свои программы(их несколько и запускать их в виде одного приложения в виде кучи форм невыгодно - памяти на клиентской машине мало !)...
заранее спасибо за ответ !
id_privin (2003-04-21 15:50:00) [1]1) SharedServer - настройка Oracle
2) ApplicationServer - как прослойка между Oracle и клиентом. Как раз та сессия которую совмесно пользуют.
3) Просто памяти побольше, а памяти под одну сессию поменьше
pl_quad (2003-04-21 10:07:00) [2]а лучше на сервак поставить памяти ведро - не так уж и дорого это сейчас
pl_quad (2003-04-21 10:04:00) [3]напиши свою DLL, которая будет создавать TOracleSession при первом обращении, а всем остальным подпихивать уже существующую.
Все проги коннектятся через эту DLL. И, таким образом, получаем кол-во сессий = кол-во клиентских машин. Правда, с транзакциями придется повозиться и USERNAME на каждой машине может быть только 1.
Внук (2003-04-21 09:55:00) [4]От себя добавлю - можно сделать и одну сессию на все приложения. Только вот сначала очень серьезно подумайте, как Вы будете разруливать транзакции в этом случае. А TOracleSession - оно рулез, форева...
ak111 (2003-04-21 09:48:00) [5]а может не в железе дело и не в oracle, а в том, что ты все формы создаешь при запуске программы? так этого делать не обязательно.
makdi (2003-04-21 09:27:00) [6]Если возникла такая проблема, тогда не лучше рассмотреть вариант: поставить какой-нить Application Server(можно и Оракловский) и работать через него? И конектов будет не много...
Sergey13 (2003-04-21 08:58:00) [7]2YDV (18.04.03 13:50)
>TOracleSession опасна для сервера !!!
8-) Смело, очень смело. Но спорно. Ибо обычно кривые руки опасны. И не только для сервера.
Для таких утверждений неплохо бы посмотреть цифири. Сколько памяти, сколько сессий, настройки и т.д. и т.п... наконец версию Оракла.
BlackTiger (2003-04-20 09:28:00) [8]Это азбука.
И касается она всех баз данных, а не только Оракула. В идеале должно быть так - подключился-забрал-отключился. Как раз это сейчас продвигается в .NET и dbExpress. (В .NET, правда, нет других вариантов :( ).
YDV (2003-04-19 21:01:00) [9]>а не передерутся они при одновременной работе?
не должны - программы запущены, а работают не все одновременно, поэтому и приходится наварачивать ...
Desdechado (2003-04-18 16:11:00) [10]> одна активная сессия, а остальные или DataSet-ы или Query
а не передерутся они при одновременной работе?
CbIH (2003-04-18 15:01:00) [11]Можно еще внимательно посмотерть на connection pool сервера... Возможно, не стоит на каждый реквест открывать соединение? Диспетчеров поставить нормальное количество... ;)
Anatoly Podgoretsky (2003-04-18 13:56:00) [12]Это не TOracleSession виноват, а слабые характеристики машины, вы ее перегрузили, заставили делать больше, чем она способна.
Надо не с последитвиями бороться, а с причиной. Поставить больше памяти, более мощный процессор, другую операционку, то есть пивести среду в соответсвие с задачей.