powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение метаданных при работающих пользователях
25 сообщений из 34, страница 1 из 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
25 сообщений из 34, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Изменение метаданных при работающих пользователях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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