|
|
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Доброе время суток! Организация разрабатывает проект средней величины, пользоваться которым будут 50 - 100 клиентов. По условию ввод в эксплуатацию будет осуществлен при написании 70% кода. Естественно, возникает проблема своевременного обновления клиентов. Делать собираюсь так: при соединении с базой клиент делает select из таблицы со следующими полями [Version, Valid, Note], если новых версий не появилось, то работает, если появились и поле Valid не запрещает работу в текущей версии клиента, то показывает юзеру Note (список изменений) и позволяет ему самому решать стоит ли апдейтиться. И, наконец, если Valid запрещает работу этой версии, то только апдейт. Получается очень удобно, стоит добавить одну строку и изменить другую в соответствующей таблице и всем клиентам, присоединившимся ПОСЛЕ этого будет предложено/предписано обновиться. ВОПРОС: А как быть с РАНЕЕ подключившимися? Можно каждые 10-30 минут повторять контроль версий, но 1) это неэстетично 2) при изменении структуры базы, старый клиент за 10-30 мин. сумеет ее основательно покалечить. Можно в каждого клиента посадить TCP-клиента (тавтология, однако), заставить при старте коннектиться к какому-нибудь серверу, что бы в нужный момент иметь возможность передать всем клиентам команду на апдейт. Вариант плох, т.к необходимо держать запущенный сервер, что не прибавляет надежности системе и , самое главное, бОльшая часть клиентов находится вне локальной сети. За файерволом. Некоторые не за одним. Зарежут. Хотелось бы прибегнуть к услугам самого Oracle. Неужели он не может послать Notification о каком либо событии определенным клиентам? Если не предусмотрено именно это , так может есть обходные пути? Заранее благодарен. ______ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 14:19:54 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
1.про инициализации соединения проверять версию клиента, если что - отвергать коннект 2. как вы собираетесь при работающих клиентах вносить изменения в базу? все равно будете это делать это в нерабочее время :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 14:36:22 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
По моему, вы пытаетесь подменить организационные меры - техническими... У Вас что, не будет тестового сервера или тестовой базы? Как то не вериться, что кому то может понравиться, когда у него вдруг начинает самопроизвольно устанавливаться новая версия программы, меняется интерфейс, сущности или что-нибудь другое, к чему уже привыкли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 14:42:26 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Была похожая ситуейшен. Бывший нач.проекта придумал следуещее Состоит ета идея из 3 частей, файла приложения,скрипта и настроечного xml. Действие на серваке делаеться папка куда кладеться настроечный xml для сервера,и версия проги,у клиента тоже настроечный xml ,скрипт и прога.Запускаеться все с ярлыка куда прписан вызов скрипта. Если версии в настроечном(сервер) xml не совпадвют с клиентским сначала переписываетьяс файл проги,а потом запускается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 14:43:08 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Решается ли проблема (по крайней мере, ее часть) отключением всех коннектов на время смены версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 14:55:28 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Если я правильно понимаю задачу, то на время обновления придется устраивать одну нехилую транзакцию(иначе возможны коллизии между объектами БД), после которой пользователи окунуться в мир незабываемых ощущений... Однозначно, клиентская часть НЕ СМОЖЕТ обновиться "на лету" - по-любому покинуть придется... Дык, тогда почему пользователей не выгнать до установки, ведь продолжать работать они не смогут по определению! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 15:29:56 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Не в тот форум запостил Х-) Но, что интересно, ответы получил. >По моему, вы пытаетесь подменить организационные меры - техническими... Боюсь что этими организационными мерами придется заниматься разработчикам. И мне в том числе. Посему попытался перевести проблему в техническую сферу. To dkstranger: При отключении у клиента выскакивает ошибка => звонок разработчикам*50=очень много времени и нервов. При частых отключениях может быть подана рекламация, они ведь не разбираются из-за чего выскакивает ошибка. Зачем мне лишняя головная боль? __________ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 15:49:25 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
В Oracle есть такие штуки как Alert Можно повесить Alert, когда изменится версия сообщить клиенту пора дорогой пора, вызвать прогу обновления и т.д. Можно конечно просто таймер повесить скажем проверять каждые 10 минут есть новая версия или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 16:02:44 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Вообще говоря, надо проверять версионность перед началом каждой судьбоносной операции на клиенте. Маленький запросик о версии. Или еще лучше - вызов SP, которую после стадии разработки можно изменить, чтобы всегда истину возвращала. Если не совпадает - окошко "обновляй" с кнопкой "Обновить". Тогда юзеры быстро привыкнут и вопить не будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 17:18:06 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
До чего люди на трудности падки... С шары запускать клиента не пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 19:21:13 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Такое не поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 20:14:14 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Зачем столько споров??? Релиз не выпускается раз в 10 минут. Нормальная ситуация - один раз в неделю, не чаще. Перед сиим действием народу пишется письмо: мол так и так, начинается выкладывание релиза, могут быть траблы в работе... После выкладывания - письмо: мол так и так, то-то изменено, то-то требует обновления (это не значит, что версионность проверять не надо...). А если вдруг глючок какой в процедуре подправить, так это можно тихонько сделать, никто и не заметит... ЗЫ Забыл сказать. Релиз нужно вечером выкладывать, когда юзерская активность - минимальна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2002, 20:53:55 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Масса пищи для размышлений. Огромное спасибо всем принявшим участие в решении проблемы! ______ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2002, 07:29:21 |
|
||
|
Оч-чень нетривиальный вопрос
|
|||
|---|---|---|---|
|
#18+
Делать собираюсь так: при соединении с базой клиент делает select из таблицы со следующими полями [Version, Valid, Note], если новых версий не появилось, то работает, если появились и поле Valid не запрещает работу в текущей версии клиента, то показывает юзеру Note (список изменений) и позволяет ему самому решать стоит ли апдейтиться. И, наконец, если Valid запрещает работу этой версии, то только апдейт. Впринципе нормальный подход. Можно каждые 10-30 минут повторять контроль версий Замените на Можно перед каждым вызовом SQL повторять контроль версий И всё заработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2002, 10:39:18 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32055504&tid=1819818]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 355ms |

| 0 / 0 |
