powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение метаданных при работающих пользователях
34 сообщений из 34, показаны все 2 страниц
Изменение метаданных при работающих пользователях
    #38552435
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно предполагаю, что это можно безопасно делать только когда нет активных транзакций?
Думаю повесить лок в "on transaction start" и ждать завершения других транзакций в течение непродолжительного времени (мониторя mon$transactions). И в случае успеха буду менять метаданные как хочу. А потом отпущу лок, и все продолжат свою работу :)
Такое сработает?
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552442
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeДумаю повесить лок в "on transaction start"Как насчет isql -nod трататата, которую ( теоретически !) может кто-то из твоих коллег по цеху ввести ?
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552443
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeЯ правильно предполагаю
неправильно
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552448
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeЯ правильно предполагаю, что это можно безопасно делать только когда нет активных транзакций?
Меняется, но эффект проявляется только для "новых", начатых после этого момента транзакций.
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552458
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrNickDeeЯ правильно предполагаю
неправильно
Какие действия необходимо и достаточно произвести не сервере, кроме отключения всех пользователей, чтобы можно было менять метаданные?
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552460
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeКакие действия необходимо и достаточно произвести не сервере, кроме отключения всех пользователей, чтобы можно было менять метаданные?Не делай этого, мы уже сделали пару раз (индекс, что ли создавали или дропали - не помню уже). Было больно и плохо.
Отрубай всех. Если система поддерживает оповещение юзеров - предупреди за 10 минут и отрубай.
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552465
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

во-первых, изменения метаданных бывают разные. Во-вторых, классик или супер? В третьих, что именно понимается под безопасностью?
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552466
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и в четвертых - идея с триггером и локом бредовая независимо от ответов на предыдущие вопросы
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552495
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrво-первых, изменения метаданных бывают разные. Во-вторых, классик или супер? В третьих, что именно понимается под безопасностью?
Я продумываю как бы мне перенести среднее звено трёхзвенки в UDR, чтобы клиенты цеплялись не к серверу приложений, а напрямую к Firebird. Вроде почти всё продумал (главное - RPC и обновление серверных dll с клиента), а вот как быть с изменением метаданных - непонятно.
В трёхзвенке я просто отцепляю весь пул коннектов, держа пользователей на локе. И нет проблем. А вот тут что-то не могу сообразить. Исходя из своих ограниченных пониманий, думал что отсутствия транзакций должно было быть достаточно для изменения любых метаданных. А ты говоришь - нет. Но не говоришь почему :)
Изменения самые разные - почти весь DDL, включая дропание. Продумываю и для классика и для супера.
Под безопасностью понимается, что ничего не поломается в других коннектах. Ну и иногда DDL не срабатывают в одной транзакции, и приходится дробить. Т.е. хочется уверенности что в тонкий процесс применения DDL никто не вмешивается.
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552498
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrну и в четвертых - идея с триггером и локом бредовая независимо от ответов на предыдущие вопросы
Может я неверно выразился... я бы поставил транзакции на ожидание в очередь (секунд на несколько), и самое интуитивно-подходящее для этого место - триггер.
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552501
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeИсходя из своих ограниченных пониманий, думал что отсутствия транзакций должно было быть достаточно для изменения любых метаданных. А ты говоришь - нет. Но не говоришь почему :)
метаданные кешируются коннектом, а не транзакцией. Блокируют метаданные запросы, а не транзакции.

NickDeeИзменения самые разные - почти весь DDL, включая дропание.
о дропании таблиц при подключенных юзерах можешь забыть

NickDeeПродумываю и для классика и для супера.
там есть отличия в поведении. Без переподключения всех юзеров в классике ты (в ряде случаев) не заставишь их увидеть измененные метаданные.

NickDeeПод безопасностью понимается, что ничего не поломается в других коннектах.
гарантией является только шатдаун базы
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552502
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeИзменения самые разные - почти весь DDL, включая дропание. Продумываю и для
классика и для супера.
Под безопасностью понимается, что ничего не поломается в других коннектах.
Забей, делай изменения на ходу. В других коннектах ничего не поломается. А если изменения
обломаются с ошибкой "Object in use", значит ты решил изменить что-то нужное и лучше тебе
пойти и передумать его изменять.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552509
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr> гарантией является только шатдаун базы

Да ладно уж так сурово-то.

Лично я делал галочку "всем выйти вон из БД",
менял метаданные, а потом снимал галочку.
И никаких проблем, всё работало.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552511
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrметаданные кешируются коннектом, а не транзакцией. Блокируют метаданные запросы, а не транзакции.
Ok. Тогда остаётся только грохать коннекты. А на клиенте писать код для переконнекта.
И придётся научиться ставить входящие коннекты в очередь. Это ведь можно сделать в "on connect"-триггере? Или там уже поздно?
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552512
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

полной гарантией является не только отключение всех коннектов, но и предотвращение новых. Галочка не защитит от isql-я или gbak-а, которые в этот же момент были запущены кроном. Сетевой сервер гасить слишком сурово, да и не защитит от embedded-коннектов. Шатдаун во всех смыслах правильнее. Мое дело предложить - ваше дело отказаться :-)
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552517
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамЛично я делал галочку "всем выйти вон из БД",
менял метаданные, а потом снимал галочку.
И никаких проблем, всё работало.

Представь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :)
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552521
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается
в твою работу! :)
А вот твоя фантазия совсем не мешает тебе изменять метаданные, которыми пользователь как
раз сейчас пользуется... Экий ты... двуличный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552524
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :)Если это происходит 1 раз в день (но не каждый день), то потерпят. Если чаще, то... а может, есть смысл сначала проработать всю схему, а затем накатывать ? Чего она у тебя такая... "мутирующая" ?
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552526
Фотография kgb ussr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeГаджимурадов РустамЛично я делал галочку "всем выйти вон из БД",
менял метаданные, а потом снимал галочку.
И никаких проблем, всё работало.

Представь себя на месте пользователя :) Какой-то там админ вдруг вмешивается в твою работу! :)

А я плавающее полупрозрачное окошко у клиентов вешал. Что-то вроде: "Пожалуйста, завершите работу. До автоматического завершения осталось ... секунд."
И разными цветами переливается. Пользователям нравится. :)
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552536
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr> Галочка не защитит от isql-я или gbak-а,
dimitr> которые в этот же момент были запущены кроном

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

> Мое дело предложить - ваше дело отказаться :-)

Я ж не про это. Я про то, как малой кровью. :)
Вон человек выше независимо от меня к этому
же пришёл, да ещё переливающееся окошко
нарисовал, чтобы юезрам стресс снимать -
значится, мысль дельная.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552537
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kgb ussr> А я плавающее полупрозрачное окошко у клиентов вешал.
kgb ussr> И разными цветами переливается. Пользователям нравится. :)

Спасибо за идею. :) Не забудь в топике интерфейсов скриншот засветить. :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552548
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovNickDeeПредставь себя на месте пользователя :) Какой-то там админ вдруг вмешивается
в твою работу! :)
А вот твоя фантазия совсем не мешает тебе изменять метаданные, которыми пользователь как
раз сейчас пользуется... Экий ты... двуличный.

Дак я делаю это прозрачно для пользователей. Могу таблицу переименовать - пользователь даже не заметит (если алиас останется тем же) :)
Конечно дроп полей он ощутит. Переоткроет окошко.
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552551
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeДак я делаю это прозрачно для пользователей.
В таком случае одно из двух: или никакие активные транзакции и коннекты тебе вообще не
должны мешать изменять метаданные, или...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552553
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrШатдаун во всех смыслах правильнее.
Надо попросить чтобы в IBExpert исправили ошибку при манипуляции с метаданными :) Все пишут как им удобнее, блин :) Без всякого уважения к тому, как задумано Джимом :)
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552558
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> или...

Или придумывание проблемы там, где её нет, как обычно.

NickDee> Надо попросить чтобы в IBExpert исправили
NickDee> ошибку при манипуляции с метаданными :)

Ась?

Ошибку в Windows, отображающую
сообщение, не надо исправить, нет?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552582
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамNickDee> Надо попросить чтобы в IBExpert исправили
NickDee> ошибку при манипуляции с метаданными :)
Ась?

Ну вон же чуть выше dimitr сказал как правильно: 15531117 - правильно сначала базу в шатдаун :)
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552591
Фотография kgb ussr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeГаджимурадов РустамNickDee> Надо попросить чтобы в IBExpert исправили
NickDee> ошибку при манипуляции с метаданными :)
Ась?

Ну вон же чуть выше dimitr сказал как правильно: 15531117 - правильно сначала базу в шатдаун :)
Что творится. Эдак всех юзеров придется из-под sysdba/masterke выводить...
:)
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552612
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee> Ну вон же чуть выше dimitr сказал как правильно:
NickDee> 15531117 - правильно сначала базу в шатдаун :)

Он такого не говорил. Перечитай пост ещё раза три, до просветления.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552619
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамNickDee> Ну вон же чуть выше dimitr сказал как правильно:
NickDee> 15531117 - правильно сначала базу в шатдаун :)

Он такого не говорил. Перечитай пост ещё раза три, до просветления.

Я понимаю так:
Делать безопасно только при одном-единственном коннекте. Дальше только следствия:
- если к базе есть только наш коннект и новых коннектов нет и быть не может, то всё будет ok.
- если к базе есть только наш коннект и могут появиться новые коннекты, то shutdown, и всё будет ok.
- если к базе есть несколько коннектов и новых коннектов нет и быть не может, то отрубаем все параллельные коннекты, и всё будет ok.
- если к базе есть несколько коннектов и могут появиться новые коннекты, то отрубаем все параллельные коннекты и shutdown, и всё будет ok.
Во всех остальных случаях "ok" не гарантируется.
А ты как понимаешь?
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552625
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee> Во всех остальных случаях "ok" не гарантируется.

Ну, похоже ты просто не понимаешь, что такое "ок",
что такое "не ок", и что ты вообще хочешь получить.

> А ты как понимаешь?

Так я же уже описал не просто понимание, а
работающий механизм. Разжёвывать надо?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552634
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамNickDee> Во всех остальных случаях "ok" не гарантируется.

Ну, похоже ты просто не понимаешь, что такое "ок",
что такое "не ок", и что ты вообще хочешь получить.

> А ты как понимаешь?

Так я же уже описал не просто понимание, а
работающий механизм. Разжёвывать надо?

Ты написал про свою программу, а мы с тобой начали перетирать про IBExpert, причём с твоей подачи: 15531278
Ты ещё говоришь что описал работающий механизм. Я конечно же это помню. И у меня тоже есть работающий механизм, без прерывания работы, и я писал об этом тут.
Ты немного из контекста беседы вылетел :) Или возвращайся или давай её закроем, на сегодня :)
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552641
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee> Ты написал про свою программу, а мы с тобой
NickDee> начали перетирать про IBExpert, причём с твоей подачи: 15531278

И? Это что-то меняет? У меня пользователи
в IBE к БД не лазят, знаешь ли. А у тебя ?
Так что это ещё вопрос, кто откуда вылетел.

> Или возвращайся или давай её закроем, на сегодня :)

Закрыть - это завсегда можно, я не против.
Хоть на сегодня, хоть сразу на завтра.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552655
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамNickDee> Ты написал про свою программу, а мы с тобой
NickDee> начали перетирать про IBExpert, причём с твоей подачи: 15531278

И? Это что-то меняет? У меня пользователи
в IBE к БД не лазят, знаешь ли. А у тебя ?

Я не говорю про тебя и твоих пользователей. Я говорю про IBExpert вообще. Хм.
...
Рейтинг: 0 / 0
Изменение метаданных при работающих пользователях
    #38552665
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё раз, для особо непонятливых.

Если к БД кто-то соединён через IBE (и вообще как-либо мимо АРМов) -
это не пользователи, это либо разработчики, либо "службы".

Если это разработчики, то о них можно не думать.
А службы у меня по своему желанию сами в БД
не лезут, да и если лезли бы - ничего страшно.
Не говоря же о том, что их легко можно научить
проверять тот же флаг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение метаданных при работающих пользователях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]