[ОТВЕТИТЬ]
Опции темы
07.09.2011 22:13  
Zhalex
Связка: СМ 1.028.1 + Oracle 10g. Базы: 1 ЦО + 4 подчиненных магазина (МХ).
Процессы: С МХ операторы в терминальной сессии на ЦО создаются новые карточки товаров (карт.т.) и автоматом рассылаются на МХ + оператор на ЦО редактирует карт.т. (в.т.ч. и групповой обработкой)

Проблема: созданные на ЦО карт.т. не появляются на МХ
В почтовике ЦО куча ошибок вида: ORA-02291: нарушено ограничение целостности (SUPERMAG.SMCCARD_IDSPIRITCODE) - исходный ключ не найден

При обнаружении проблемы увидел в почтовике ЦО, что не хватает места под таблицы, через консоль Оракла создал доп. пространство как на ЦО, так и на МХ.
В почтовике ЦО переотправил (отменил и они создались заново) пакеты с ошибками.
Не помогло. Что делать дальше не представляю... ХЕЛПМИ.
 
07.09.2011 22:29  
Zhalex
Также на почтовике ЦО в отправке куча пакетов в статусе создан и без отметок о ошибках. На 3 из 4МХ в почтовиках в приемке куча ошибок ORA-02291: нарушено ограничение целостности (SUPERMAG.SMCCARD_IDSPIRITCODE) - исходный ключ не найден. И только на 1 из 4МХ репликация работает.
 
07.09.2011 22:42  
OlegON
Чтобы место не кончалось в стиле "на пути канала внезапно построили дом", рекомендую поставить оптимайзер. Суть ошибки - что-то не разослал. Вариант первый - все пакеты закинуть заново из ЦО вниз и повторить эту процедуру несколько раз и сверху и снизу, пока очередь полностью не рассосется (вариант чреват боком из-за возможных обгонов старых пакетов более новыми), вариант второй - залезь в ограничения (constraints) и посмотри на что ссылается SUPERMAG.SMCCARD_IDSPIRITCODE. Я что-то не помню такого. Если сам не сообразишь - назови табличку, подскажем, для чего она. Самому лезть некогда. Если найдешь - напиши, что переразослал, чтобы последователи нашли.
 
07.09.2011 23:26  
Zhalex
Цитата:
Сообщение от OlegON
Вариант первый - все пакеты закинуть заново из ЦО вниз и повторить эту процедуру несколько раз и сверху и снизу, пока очередь полностью не рассосется (вариант чреват боком из-за возможных обгонов старых пакетов более новыми), вариант второй - залезь в ограничения (constraints) и посмотри на что ссылается SUPERMAG.SMCCARD_IDSPIRITCODE
1. не понял. заново разослать карт.т. (smcard)? или имеется ввиду переотсылка уже висящих в отправке пакетов в статусе создан с отметками ошибка и с отметками без ошибок.
2. constraints SUPERMAG.SMCCARD_IDSPIRITCODE -
smcard.saspiritcode <--> saspiritcode.id (доп. алгокольный классификатор для отчетности - реалии РБ). Вчера днем создавал (выполнял sql скрипты) на ЦО и всех МХ. Репликация работала до момента нехватки места в базах. Сегодня оператор на ЦО заполнял этот класификатор пользуясь групповой обработкой ---> вероятно рассылка шла большая ---> забилось место в базах.
Что сейчас править не соображу.
 
07.09.2011 23:53  
Zhalex
косяк обнаружил:
на ЦО и 1 беспроблемном МХ - таблица saspiritcode заполнена одинаково,
а на 3 промлемных МХ - таблица пустая.
сейчас при повторном запуске скриптов по созданию этого класификатора на проблемных МХ почемуто не заполняется saspiritcode (и скрипт вроде простой)
update supermag.smcard
set supermag.smcard.IDSpiritCode = null;

delete from SASpiritCode;
create or replace procedure LoadSpiritCode is
procedure InsTbl(
id in SASpiritCode.Id%type,
Code in SASpiritCode.Code%type,
Title in SASpiritCode.Title%type
) is
begin
insert into SASpiritCode
(ID, Code, Title)
values (ID, Code, Title);
end;
begin
-- Продовольственные товары
InsTbl(1, '1', 'Водка');
InsTbl(2, '2', 'Ликеро-водочные изделия');
InsTbl(3, '3', 'Вина виноградные');
InsTbl(4, '4', 'Напитки винные виноградные');
InsTbl(5, '5', 'Вина плодово-ягодные');
InsTbl(6, '6', 'Напитки винные плодово-ягодные');
InsTbl(7, '7', 'Шампанское, вина игристые');
InsTbl(8, '8', 'Коньяк');
InsTbl(9, '9', 'Бренди');
end;
/
begin
LoadSpiritCode;
end;
/
drop procedure LoadSpiritCode;
commit;
 
08.09.2011 07:22  
Mtirt
А разослать этот справочник из ЦО нельзя?
 
08.09.2011 07:36  
OlegON
А что это за код духа?
 
08.09.2011 07:57  
Mtirt
Цитата:
Сообщение от Zhalex
косяк обнаружил:
на ЦО и 1 беспроблемном МХ - таблица saspiritcode заполнена одинаково,
а на 3 промлемных МХ - таблица пустая.
сейчас при повторном запуске скриптов по созданию этого класификатора на проблемных МХ почемуто не заполняется saspiritcode (и скрипт вроде простой)
update supermag.smcard
set supermag.smcard.IDSpiritCode = null;

delete from SASpiritCode;
create or replace procedure LoadSpiritCode is
procedure InsTbl(
id in SASpiritCode.Id%type,
Code in SASpiritCode.Code%type,
Title in SASpiritCode.Title%type
) is
begin
insert into SASpiritCode
(ID, Code, Title)
values (ID, Code, Title);
end;
begin
-- Продовольственные товары
InsTbl(1, '1', 'Водка');
InsTbl(2, '2', 'Ликеро-водочные изделия');
InsTbl(3, '3', 'Вина виноградные');
InsTbl(4, '4', 'Напитки винные виноградные');
InsTbl(5, '5', 'Вина плодово-ягодные');
InsTbl(6, '6', 'Напитки винные плодово-ягодные');
InsTbl(7, '7', 'Шампанское, вина игристые');
InsTbl(8, '8', 'Коньяк');
InsTbl(9, '9', 'Бренди');
end;
/
begin
LoadSpiritCode;
end;
/
drop procedure LoadSpiritCode;
commit;
Этот код может не выполняться, если в структуре таблиц базы данных нет таблицы SASpiritCode.
Где-то еще должен быть скрипт на её создание.
 
08.09.2011 07:58  
akonev
Цитата:
Сообщение от Zhalex
...сейчас при повторном запуске скриптов по созданию этого класификатора на проблемных МХ почемуто не заполняется saspiritcode (и скрипт вроде простой)
ты его из под пользователя supermag запускаешь?
 
08.09.2011 08:02  
akonev
и что скажет, если сделать просто
Код:
insert into SASpiritCode (Id,Code,Title) values(1, '1', 'Водка');
commit;
?
 
 


Опции темы



Часовой пояс GMT +3, время: 15:07.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.