|
|
|
Репликация
|
|||
|---|---|---|---|
|
#18+
ASA 9.0.2 SQL Remote Фрагмент схемы БД представлен на рисунке/ Публикация: Код: plaintext 1. 2. 3. 4. То есть удаленные базы подписаны по значению ID_REGION . Задача: Вводится новый тип документов, ну например id_doc_type = 50 . Записи из таблицы DOCUMENTS, где id_doc_type = 50 должны уходить всем удаленным базам (аналогично и соответствующие записи из таблицы DOC_STATUS_HISTORY ). А для документов других типов, все должно быть по старому.. Вот.... может посоветуете как это реализовать...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 11:43 |
|
||
|
Репликация
|
|||
|---|---|---|---|
|
#18+
Yurk0, Решение "в лоб": - Создать отдельную дополнительную публикацию для этих таблиц по условию where id_doc_type = 50 - реплицировать всюду - изменить репликацию с поля на функцию (или процедуру), и в функции уже решать что и кому отправлять, составлять список и т.д. Перечисленные решения в лоб плохи тем что нарушается общая логика репликации для вашей ИС (т.е. усложняется понимание и поддержка в будущем). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 12:38 |
|
||
|
Репликация
|
|||
|---|---|---|---|
|
#18+
v_smirnovYurk0, Решение "в лоб": - Создать отдельную дополнительную публикацию для этих таблиц по условию where id_doc_type = 50 - реплицировать всюду - изменить репликацию с поля на функцию (или процедуру), и в функции уже решать что и кому отправлять, составлять список и т.д. Перечисленные решения в лоб плохи тем что нарушается общая логика репликации для вашей ИС (т.е. усложняется понимание и поддержка в будущем). спасибо за советы. Я думаю вариант с использованием функции более универсален. Для тестирования, я создал новую базу данных, схема изображена на рисунке. Таблица D_REGION – справочник "регионов"(удаленных филиалов) Таблица D_DOC_TYPES – справочник типов документов. Если REP_ALL = 1 — документы етого типа должны отправляться всем "регионам". Процедура: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. Возникла проблема: Если документ создается в удаленной базе — тогда все в порядке(строки из DOCUMENTS и соответствующие из DOC_STATUS_HISTORY – передаются в консолидированную). Но если документ создается в консолидированной БД — на удаленные отправляются только строки из DOC_STATUS_HISTORY и соответственно возникает ошибка Код: plaintext Где здесь может быть ошибка...? Например для проверки использую следующий запрос(2 - значение подписки): Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2010, 12:12 |
|
||
|
Репликация
|
|||
|---|---|---|---|
|
#18+
Yurk0, Давайте в почту (e-mail есть в профиле). так будет оперативнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2010, 09:26 |
|
||
|
Репликация
|
|||
|---|---|---|---|
|
#18+
уточняющий вопрос как у вас формируется первичный ключ и что выбирается в (select id_region from DBA.sp_rep_doc(documents.id) ? Если вы строите запрос используя выборку из таблицы документов то новой строки там еще нет . select id_region from documents inner join d_doc_type where d_doc_type.in_repl = 1 and documents.id = @id этот запрос при добавлении новой строки ошибочен. по крайней мене если первичный ключ генерируется автоинкрементом, Если генерить другим способом не проверял , но думаю что результат такой же можно общеться и через почту моя PAND {АТ} ukr{тчк}net ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2010, 21:45 |
|
||
|
Репликация
|
|||
|---|---|---|---|
|
#18+
v_smirnov и pand , спасибо за помощь! Схема работает, если публикация выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2010, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=36633310&tid=2010648]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 503ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...