AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2006, 08:11   #1  
dik_imported is offline
dik_imported
Участник
 
43 / 10 (1) +
Регистрация: 17.12.2004
суть решаемой проблемы: создать актуальную копию БД на физически другом компьютере для построения ресурсоемких отчетов и экспериментов пользователей если не уверены в правильности действий.

Ресурсы:
основная БД - NAvision 3.60A 4 Gb SQL, SQL server 2000 enterprise + SP4, OS Windows 2000 server в терминальном режиме +SP3 + Citrix Metaframe. Клиенты работают кто терминально кто со своих компьютеров локально.

Реплика - расположена пока на админском компьютере. Windows XP Pro incl SP2, SQL server 2000 developers edition + SP4.

Оба компьютера в одном домене. Поднят DNS, WINS.

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

Проблема:
В первый раз все стартует нормально, отабатывает первичный SnapShot и данные переносятся из дистрибоутора в подписчика, при дальнейшем изменении данных (для упрощения эксперимента взял только одну статью - таблицу Employee) на исходной бд дистрибутор (точнее Distribution Agent) ругается что не может выполнить процедуры на подписчике "Syntax error or access violation
(Source: ODBC SQL Server Driver (ODBC); Error number: 37000)"


если более подробно то какая то белиберда типа: "{CALL sp_MSdel_ООО _Аутдор Центр_$Employee ('INTANT', '', '', 'интант25', '', '', 'INTANT', '', '', '', '', '', '', '', '', '', 1753-01-01 00:00:00.000, 1753-01-01 00:00:00.000, NULL, 1753-01-01 00:00:00.000, '', '', '', 0, '', '', '', '', 1753-01-01 00:00:00.000, 0, 1753-01-01 00:00:00.000, '', 1753-01-01 00:00:00.000, '', '', '', '', 2006-11-16 00:00:00.000, '', '', '', '', '', '', '', 0, '', '', 0, '', 0.00000000000000000000, 0, 0, 0, 0, 1753-01-01 00:00:00.000, 0, '', 1753-01-01 00:00:00.000, '', 0, 175
Transaction sequence number and command ID of last execution batch are 0x000000D8000043E5000100000000 and 1."


такое впечатление что не может выполнить хранимую процедуру на подписчике. Проверял, там такая процедура есть. Уже третью неделю роюсь, начал учить TSQL ну ничего не могу поделать. Подскажите п-та решал ли кто такие проблемы? Это связано со структурой данных БД Navision или это SQL-ные заморочки?
Старый 17.11.2006, 10:01   #2  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
1. Версии объектов (читай структура таблиц) на паблишере и подписчике одинаковы?
2. Сравните порядок колонок на паблишере и подписчике.
Если для удаления/вставки/модицификации на подписчике используются хранимые процедуры, то Вам придется накатывать обновления на подписчике в том же порядке что и на паблишере, для того чтобы порядок полей при выполнении хранимок не слетал.
3. При создании БД ставили галку поддерживать связи? Если да, то может ругаться на отсутствие внешнего ключа.
Старый 17.11.2006, 10:22   #3  
dik_imported is offline
dik_imported
Участник
 
43 / 10 (1) +
Регистрация: 17.12.2004
1 Да версии одинаковые. БД на подписчике сделана из БД паблишера. через процедуру BackUp и Restore средствами клиента Navision
2 абсолютно одинаковый. Я специально сделал статью из одной таблицы для экспериментов чтобы все совпадало
3 не помню, скорее всего не ставил т.к. не ругается на внешний ключ но посмотрю на всякий случай

еще раз проверил что происходит при изменении данных в исх БД. Агент чтения транзакций находит изменение и заносит его в спец таблицу, (получается 3 операции), агент дистррибучения лезет в эту таблицу и пытается применить эти транзакции через хранимые процедуры на подписчике (хранимые процедуры на подписчике были созданы визардом) передавая им нужные данные и после чего и получается сообщение об ошибке см сабж.
Старый 17.11.2006, 10:25   #4  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Скорее всего из-за BLOB полей (Picture).
Исключите поле из репликации
Старый 17.11.2006, 10:37   #5  
dik_imported is offline
dik_imported
Участник
 
43 / 10 (1) +
Регистрация: 17.12.2004
Спасибо за поддержку. Я тоже думаю нехорошо на BLOB поле. Ща попробую поэкспериментировать без него
Старый 17.11.2006, 11:06   #6  
dik_imported is offline
dik_imported
Участник
 
43 / 10 (1) +
Регистрация: 17.12.2004
исключил BLOB поле из статьи ничего не помогло. Та же самая ошибка. :-((((
просто капец какой то. Делал все по книжке SQL Server 2000 руководство администратора и ничё не получается. Все мозги уже набекрень свернул
Старый 27.11.2006, 15:02   #7  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Проблема в пробеле в названии компании. И соответственно в имени хранимой процедуры
Старый 11.12.2006, 14:22   #8  
sergeypp is offline
sergeypp
Ищу людей. Дорого.
Аватар для sergeypp
 
433 / 174 (6) ++++++
Регистрация: 08.11.2003
Адрес: Казань
Вы чего??? Тут и так все понятно )).. Канечно ничего работать не будет)) .
CALL sp_MSdel_ООО _Аутдор Центр_$Employee - типа ошибка, а если внимательней??? CALL sp_MSdel_ООО _Аутдор - это первый оператор
Центр_$Employee - второй оператор )
Пробелс.. мешает..
Короче все по порядку..
Во-первых.. Пробелов в названии фирмы быть не должно
во-вторых.. Будет лучше если фирма будет называться по английски.. так не будет проблем с кодировкой.. Это конечно можно все избежать, если ручками поменять названия хранимок и в тригерах на табличках.. помоему еще где то, но я не помню уже.. нужно копать

Далее... в навижинских табличках есть поле типа timestamp.. Репликация транзакциями не поддерживает этот тип. .При первом снапшоте например оно создаст тип поля binary.. Этот тип любит мердж.. без него он не работает..
Я лично дописывал специальные хранимые процедуры, что бы при снапшоте добавлялось это поле
А при создании реплики.. поле timestamp нужно исключать из списка реплицируемых полей..
А можно вообще без снапшота.. ручками синхронизируешь, а потом подписка без инициализации..
__________________
Внедрение, развитие и поддержка DAX и RPA
spp16rus | sergeypp@gmail.com
За это сообщение автора поблагодарили: mira (1).
Старый 12.12.2006, 14:53   #9  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от spp16rus Посмотреть сообщение
Вы чего??? Тут и так все понятно )).. Канечно ничего работать не будет)) .
CALL sp_MSdel_ООО _Аутдор Центр_$Employee - типа ошибка, а если внимательней??? CALL sp_MSdel_ООО _Аутдор - это первый оператор
Центр_$Employee - второй оператор )
Может просто в кавычки имя таблицы заключить...

Цитата:
Сообщение от spp16rus Посмотреть сообщение
Во-первых.. Пробелов в названии фирмы быть не должно
во-вторых.. Будет лучше если фирма будет называться по английски..
У нас фирма называется по-русски - с двумя пробелами.... вроде все в порядке... (правда у нас и репликации нет)
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:50.