Symmetricds динамически меняет исходный базовый каталог для синхронизации файлов.

У нас есть корпоративный узел и множество узлов хранения для синхронизации файлов. У нас есть файлы синхронизации с каждого узла магазина на узел корпорации. Исходный каталог может быть разным в разных магазинах.

Можем ли мы изменить базовый каталог динамического триггера файла, используя что-то вроде сценария оболочки bean-компонента или любое расширение. т. е. исходный базовый каталог файлового триггера будет отличаться в разных хранилищах.


person Binyamin Melepat    schedule 04.03.2014    source источник


Ответы (1)


Исходный базовый каталог указан в группе узлов. Поскольку это исходная настройка, ее нельзя изменить, как можно изменить целевые настройки.

Возможны два решения...

  1. Создайте отдельную группу узлов для каждого клиента. Клиенты, которые совместно используют один и тот же базовый каталог, могут, очевидно, использовать одну и ту же группу узлов.
  2. Вы можете использовать преобразования для изменения конфигурации при ее отправке клиенту. Это хак, так что пробуйте на свой страх и риск. Вы должны создать BSH или преобразование поиска в таблице sym_file_trigger. Вы можете найти базовый каталог из таблицы, используя идентификатор клиентского узла. Я использовал этот подход для разных частей SymmetricDS, но никогда не использовал синхронизацию файлов.

Это похоже на обычную ситуацию. Я создал запрос функции как часть выпуска 3.6. У нас должно быть более чистое решение для вас в ближайшие несколько месяцев. Вы можете отслеживать проблему здесь...

http://www.symbolds.org/issues/view.php?id=1623

person Austin Brougher    schedule 04.03.2014
comment
В данном решении 2 есть ли необходимость в создании пользовательского триггера и строки trigger_router для таблицы sym_file_trigger? - person Binyamin Melepat; 11.03.2014
comment
Да, вам нужно будет создать 1 общий файловый триггер и связать этот файловый триггер с маршрутизатором. Убедитесь, что ваше преобразование использует ту же групповую ссылку, которую использует ваш маршрутизатор. Я не уверен, что вы подразумеваете под пользовательским триггером. Вам нужен только один триггер, который трансформируется для каждого клиента. - person Austin Brougher; 11.03.2014
comment
Спасибо. Мне нужна одна помощь. Когда я использую bsh для запроса базы данных с использованием кода engine.getSqlTemplate().queryForString(мой запрос выбора) в sym_transform_column, я получаю сообщение об ошибке, подобное этому: Попытка разрешить метод: getSqlTemplate() на неопределенном имя переменной или класса: engine : at Line: 2 : in file: встроенная оценка: ``transform_1820655272() { return engine.getSqlTemplate().queryForString(select i . . . '' - person Binyamin Melepat; 11.03.2014
comment
Engine не привязан к интерпретатору в преобразовании столбца, но 'sqlTemplate'. Попробуйте... sqlTemplate.queryForString (мой запрос выбора) - person Austin Brougher; 11.03.2014
comment
@AustinBrougher есть какие-либо обновления на symbolds.org/issues/view.php?id =1623 ? Я также хотел бы изменить базовую переменную каталога в зависимости от клиентского узла. - person user2179059; 01.12.2017