|
ASA 11 Работа репликации + триггеры.
|
|||
---|---|---|---|
#18+
Добрый день всем. Прошу помощи следующем вопросе. ASA 11.1.2527 У меня есть консолидированная БД + 24 удаленных. Обмен через dbremote. Есть таблица остатков. Вот ее структура CREATE TABLE "DBA"."OSTAT" ( "FIRM" SMALLINT NOT NULL, "STORE" SMALLINT NOT NULL, "TCODE" INTEGER NOT NULL, "PART_TYPEOP" SMALLINT NOT NULL, "PART_NUMBER" INTEGER NOT NULL, "PART_NUMSTR" INTEGER NOT NULL, "PART_CCODE" INTEGER NOT NULL DEFAULT 0, "REZERV" DECIMAL(13,3) NULL, "QUANT" DECIMAL(13,3) NULL, "PRICE" DECIMAL(13,2) NULL, "SUMMNDS" DECIMAL(13,2) NULL, "SUMM" DECIMAL(13,2) NULL, "SPRICE" DECIMAL(13,2) NULL, "SUMMNP" DECIMAL(13,2) NULL, "RSSUMM" DECIMAL(13,2) NULL, "nalog1" DECIMAL(5,2) NULL, "nalog2" DECIMAL(5,2) NULL, "summ_actiz" DECIMAL(13,2) NULL, PRIMARY KEY ( "FIRM" ASC, "STORE" ASC, "TCODE" ASC, "PART_TYPEOP" ASC, "PART_NUMBER" ASC, "PART_NUMSTR" ASC ) ) ; Данная таблица добавлена в репликацию aa с условием sybcsribe by firm Есть cash, который пишет в БД чеки с ККМ и модифицирует остатки, и есть пользователь gremis с правами remote. Логика реализована на триггерах, в БД пишется чек, пользователь cash его пишет, затем меняет статус проведения чека и триггером создается документ реализации и модифицируются остатки. Но иногда случаются непонятные моменты. На остатках товара остается не правильно кол-во. Стал копать. создал таблицу ostatlog и стал туда писать любые изменения с таблицей ostat. Вот какая загогулина у меня получилась "pk_key" "dt" "dbuser" "FIRM" "STORE" "TCODE" "PART_TYPEOP" "PART_NUMBER" "PART_NUMSTR" "PART_CCODE" "REZERV" "QUANT" "PRICE" "SUMMNDS" "SUMM" "SPRICE" "SUMMNP" "RSSUMM" "nalog1" "nalog2" "summ_actiz" 576742012-11-14 10:58:32.325'cash'16213015411103139156381.00010.0005.6511.3056.508.5014.1685.0020.0020.000.00576752012-11-14 10:58:32.328'cash'16213015411103139156380.0009.0005.6510.1750.858.5012.7476.5020.0020.000.00576762012-11-14 10:58:32.328'cash'16213015411103139156380.0009.0005.6510.1750.858.5012.7576.5020.0020.000.00576772012-11-14 10:58:32.340'cash'16213015411103139156381.0009.0005.6510.1750.858.5012.7576.5020.0020.000.00576782012-11-14 10:58:32.343'cash'16213015411103139156380.0008.0005.659.0445.208.5011.3368.0020.0020.000.00577112012-11-14 11:00:25.285'gremis'16213015411103139156380.0009.0005.6510.1750.858.5012.7476.5020.0020.000.00 Смотрите пользователь Cash делает изменения. с остатками, логика отрабатывает нормально.(Смотреть по полю quant) Но потом через 2 минуты (последняя запись в таблице) почему-то происходит изменение таблицы остатков под пользователем gremis, который даже не имеет прав доступа на эту таблицу. Подскажите куда копать. Спасибо за внимание. Извините что много букв. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 19:31 |
|
ASA 11 Работа репликации + триггеры.
|
|||
---|---|---|---|
#18+
alexsmile, Действия триггеров я так понимаю реплицируются. В триггере, который пишет в остатки проверяется удаленный ли пользователь? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 20:00 |
|
ASA 11 Работа репликации + триггеры.
|
|||
---|---|---|---|
#18+
это я к тому про содержимое триггера, что при такой логике, когда пишут триггером в таблицу, обычно делают так 1) или эту таблицу не реплицируют вообще. Т.е. подразумевая что в каждой нужной точке экземпляр триггера сработает по приходу записи и запишет нужные данные. Т.е. таблица не реплицируется, а данные в ней везде одинаковые 2) Или таблицу реплицируют, но тогда в каждой точке проверяют в триггере удаленный пользователь или нет, чтобы не допустить повторной записи в таблицу. Ведь запись, которую создал триггер в первой точке придет по репликации. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 20:13 |
|
ASA 11 Работа репликации + триггеры.
|
|||
---|---|---|---|
#18+
antand, Да. действие триггеров реплицируются. В каждом триггере есть условие if current remote user is null then .... код для обновлений остатков end if dbremote запускается с ключем -t Я может не внятно объяснил ситуацию. Вышеуказанное действие происходит в удаленной БД. Пожалуйста подкиньте идею куда копать. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 23:05 |
|
ASA 11 Работа репликации + триггеры.
|
|||
---|---|---|---|
#18+
alexsmile, Не.. все понятно. Тогда , если вы уверены что в удаленной базе никто не правил, то проверяйте кто в консолидированной базе может корректировать запись, ведь именно оттуда изменение пришло ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2012, 23:37 |
|
|
start [/forum/topic.php?fid=55&fpage=13&tid=2010046]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 148ms |
0 / 0 |