19.01.2006, 20:35 | #1 |
Участник
|
Axapta 3.0 Kernel Rollup 1 Service Pack Release
Microsoft Axapta 3.0 Kernel Rollup 1 can be installed on customer sites running Microsoft Axapta 3.0 SP2, SP3 and SP4. The kernel rollup provides compatibility with Microsoft SQL Server 2005, Optimistic Concurrency Checking for Microsoft SQL Server 2000 & Microsoft SQL Server 2005, Enhanced SQL Tracing Utilities, Increased SQL Query Performance, AOS Enhanced Stability & Logging, AOS Abort if Listener Thread Fails, and a link to an application update for Enhanced Password Security, as well as other improvements. Supported platforms include: · Microsoft Windows 2000 Server SP4 Update Rollup1 · Microsoft Windows 2003 Server SP1 · Microsoft Windows XP SP2 · MDAC 2.8 SP1 (Client & Server) · Microsoft SQL Server 2000 SP4, 32-bit & 64-bit · Microsoft SQL Server 2000 Analysis Services with SP4 · Microsoft SQL Server 2005, 32-bit & 64-bit · Oracle 9i patched to version 9.2.0. (доступ для партнеров) https://mbs.microsoft.com/Cms/Templates/doc...printpage=false |
|
19.01.2006, 21:14 | #2 |
Участник
|
Будьте предельно внимательны.
Изменилась версия ktd-файла. Изменения незначительны. Но прежде, чем ставить обновление на рабочую базу - протестируйте. Если для вас надежность критична, подождите выхода российской версии. |
|
19.01.2006, 21:27 | #3 |
Участник
|
См. также Версии и билды
|
|
20.01.2006, 15:46 | #4 |
NavAx
|
На последнем клубе клиентов представители MS говорили, что этот сервиспак будет общедоступным, но, как обычно, выложили на партнерском сайте. У MS есть много общедоступных обновлений к Аксапте, про которые клиенты даже не знают, но все они доступны только партнерам - странная политика.
|
|
21.01.2006, 20:19 | #5 |
Участник
|
Цитата:
Я знаю про договор - право на обновления имеют те клиенты, которые имеют активную подписку на обновления. Я, например, ничего не знаю об изменении политики в отношении обновлений. Однако, практика бывает разная http://www.mibuso.ru/forum/index.php?showtopic=10519 Спросите у того, кто обещал. Лично. Получите ответ. Опубликуйте здесь. |
|
24.01.2006, 22:36 | #6 |
Участник
|
Совет Алексея Еременко
Как временное решение по локализации ktd файла можно предложить следующие изменения axsysru.ktd из 3.0SP4: 1. тэг #269 Между строками содержащими "Space()" и "1245" добавляется строка Apostrophe (') 2. тэг #1144 В конце тэга после строки с "MenuItemId" добавляется строка RecVersion 4. тэг #268 В конце тэга после строки с "Запись не может быть удалена. В таблице "%s" существуют проводки" добавляется строка Запись может не соответствовать настройкам защиты на уровне записей по таблице "%s". 3.Номер версии файла в самом начале изменить с 587 на 588 |
|
25.01.2006, 16:46 | #7 |
Administrator
|
А кто-нибудь пробовал уже его для работы с MS SQL 2005? Несколько раз перечитал readme, там как-то путано написано.
В моем вольном переводе: 1. После установки KR1 Axapta может быть запущена в compatibility- или native-режиме. 2. В compatibility-режиме MS SQL 2005 будет вести себя так же, как и MS SQL 2000. 3. В native-режиме Axapta не использует преимущества новой архитектуры MS SQL 2005. В связи с этим, вопрос: а какой смысл тогда в использовании KR1 и MS SQL 2005 с Axapta? И про Optimistic Concurrency Checking кто-нибудь может доходчиво объяснить, что имелось ввиду? Опять же, в моем переводе: 1. Раньше перед выполнением update, Axapta перечитывала запись с сервера, сравнивала ее с той, что хранилась в памяти и, если они были одинаковыми, строила новую запись и записывала ее в БД. 2. Теперь Axapta также перечитывает запись c сервера и, если она не изменилась, выполняет update. 3. Короче говоря, если нет конфликта, то выполняется только один запрос к БД. Вызывает интерес значение именно пункта 3: почему один-то, когда запись все равно перечитывается?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
25.01.2006, 18:08 | #8 |
Модератор
|
только локально, но руки чешутся накатить его на внутреннюю систему
Цитата:
Несколько раз перечитал readme, там как-то путано написано.
В моем вольном переводе: 1. После установки KR1 Axapta может быть запущена в compatibility- или native-режиме. 2. В compatibility-режиме MS SQL 2005 будет вести себя так же, как и MS SQL 2000. 3. В native-режиме Axapta не использует преимущества новой архитектуры MS SQL 2005. 2. версионность, например, в режиме совместимости уже работает, так что скорее всего не совсем "так же" 3. полагаю, имеется в виду то, что не используется native client Цитата:
В связи с этим, вопрос: а какой смысл тогда в использовании KR1 и MS SQL 2005 с Axapta?
- в режиме совместимости 90 можно смотреть красивые отчеты по базе в Management Studio - можно пользоваться секционированием (для приложения это ведь прозрачно) - новый механизм отслеживания deadlock-ов (с которым еще разбираться надо) Цитата:
И про Optimistic Concurrency Checking кто-нибудь может доходчиво объяснить, что имелось ввиду?
__________________
-ТСЯ или -ТЬСЯ ? |
|
25.01.2006, 19:25 | #9 |
Участник
|
Я - за!
|
|
26.01.2006, 10:54 | #10 |
Модератор
|
Цитата:
Настраивается или для всей системы сразу, или для каждой таблицы отдельно. (как свойство) К тому же, в 4ке у select появятся хинты "optimisticlock" и "pessimisticlock", разрешающие/запрещающие грязное чтение. С Уважением, Георгий |
|
04.02.2006, 14:14 | #11 |
Модератор
|
Отобрали, блин, у ребенка любимую игрушку - перестали работать настройки Hint flags в конфигурационной утилите
__________________
-ТСЯ или -ТЬСЯ ? |
|
07.02.2006, 11:29 | #12 |
Administrator
|
Цитата:
Понимаешь, логически мысля, я тоже предположил, что это грязное чтение. Только вот то, что написано в Readme, на алгоритм для грязного чтения не похоже как то. Или я не понимаю, что там написано.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
07.02.2006, 23:43 | #13 |
Модератор
|
Цитата:
Сообщение от Maxim Gorbunov
И про Optimistic Concurrency Checking кто-нибудь может доходчиво объяснить, что имелось ввиду? Опять же, в моем переводе:
1. Раньше перед выполнением update, Axapta перечитывала запись с сервера, сравнивала ее с той, что хранилась в памяти и, если они были одинаковыми, строила новую запись и записывала ее в БД. 2. Теперь Axapta также перечитывает запись c сервера и, если она не изменилась, выполняет update. 3. Короче говоря, если нет конфликта, то выполняется только один запрос к БД. Вызывает интерес значение именно пункта 3: почему один-то, когда запись все равно перечитывается? РАНЬШЕ: - запись перечитывалась по RecId (select * from myTable where DataAreaId = .. and RecId = .. - изменения, которые могли быть сделаны другими сессиями, merge-ились с изменениями в текущей сессии СЕЙЧАС: - запись не перечитывается, сразу выполняется update myTable where DataAreaId = .. and RecId = .. and RECVERSION = .. если кто-то уже изменил эту запись, поле RECVERSION имеет уже другое значение и фактически мы "пролетаем" с оператором UPDATE - количество обработанных записей (@@ROWCOUNT) = 0. Поэтому система перечитает запись по RecId и продолжит работу как ни в чем ни бывало (по старому алгоритму) Т.е. количество операций в среднем по системе таки должно уменьшаться и выигрыш вроде бы есть. Единственное НО: этот механизм работает только на формах (данные, которые отбираются для изменения из кода, уже заблокированы с select forupdate), а данные на формах (по моим ощущениям) вроде бы не особо интенсивно меняются. Стоило ли для это добавлять новое поле во все таблицы - ну, вендору виднее
__________________
-ТСЯ или -ТЬСЯ ? |
|
08.02.2006, 00:00 | #14 |
Модератор
|
Цитата:
Цитата:
Well, maybe if you wrote it in f*** English, I would f*** understand it
Это не грязное чтение. Это обновление по оптимистическому алгоритму - мы ПРЕДПОЛАГАЕМ, что запись не успели обновить до нас. Если это не так (кто-то влез с UPDATE перед нами), нам придется проделать дополнительную работу при повторной попытке выполнить обновление, в этом случае операция в целом будет дороже с точки зрения IO, чем при пессимистическом алгоритме. Если конфликты при обновлении случаются относительно редко, выигрыш с точки зрения ввода-вывода есть
__________________
-ТСЯ или -ТЬСЯ ? |
|
11.05.2006, 15:03 | #15 |
Участник
|
Давайте отделим божий дар и яичницу.
Под словом "версионник" понимают, что ядро СУБД: 1) хранит копию прочитанной записи, копию записанной записи, пока есть открытые курсоры. 2) при записи сравнивает версию прочитанной и записываемой записи. 3) В целом поднимает производительность, позволяя читать и писать одновременно (разным соединениям), до деедлока или "отбрасывания изменения". Мерджи технически невозможны ! http://rsdn.ru/article/db/yukonvers.xml http://msdn2.microsoft.com/en-US/library/m...90(SQL.90).aspx надо сказать, что еще стоит изучить - как и что использует Аксапта из этого, или руками "допилить" Оптимистическая блокировка отличается от пессиместической тем, что первая разрешает изменение прочитанной записи другим соединениям, а вторая - нет. Т.е. если клиент СУБД не должен нарваться на чухое изменение, то он пессиместичен. Но такие штуки являються узким местом конкурентного доступа. Трансакции должны бтыь как можно короче. Механиз кеширования аксапты на уровне AOS (если я правильно понял) сами по себе должны быть связанны теми же "правилами конкурентного доступа", что и СУБД. Посему стоит отличать механизм реализации конкурентности кэша АОС и самой СУБД (про толстого клиента не знаю, пока не существенно). Говорят, что есть кеш 1-го уровня и 2-го. У каждого свой протокол. Таким образом, думаю, что: 1) RECVERSION относиться только к реализации "конкурентности" кеша AOS, который может держать образ записей без соединения с базой. Конструкция "update myTable where DataAreaId = .. and RecId = .. and RECVERSION = " может быть использована только в этом случае (из интерфейса). ТОлько в таком случае для версионника (когда выбрали, отключились от базы, опять подключились и делаем изменение) может быть касус с потерей данных (мердже, как некоторые называют) Я так понял, кеш AOS-а работает только для интерфейса. 2) Тогда логично про замечание, будто запросы из коды сразу с Update блокировкой - в данном случае вообще не используеться кеш Аксапты, а напрямую поддержка версионностив СУБД. 3) Вероятно, должно быть время "обновления" кеша АОС-а, не всегда же показывать "тутфту" пользователю. Надо сказать, выглядит вполне продумано (в Аксапта). Даже не к чему придраться. Главно, чтобы работало так как надо. |
|
11.05.2006, 17:22 | #16 |
Участник
|
2 Torin
Спасибо за ссылки, получил удовольствие. Но вы ведь не думаете всерьез, что кеш Аксапты реализует хоть какие-то функции СУБД, не говоря уже о совмесном доступе (версионном или блокировочном)? Как я понимаю, просто новое поле позволяет принимать более гибкие решения при выполнении операций чтения и записи, реализующих ту самую стратегию (Optimistic Concurrency Checking). Не более, того. А то что введение этого новшества совпало с выходом SQL 2005, это что-то вроде ненавязчивого совпадения, имеющего маркетинговый подтекст. С уважением, itfs. |
|
11.05.2006, 23:45 | #17 |
Модератор
|
Цитата:
Сообщение от Torin
Таким образом, думаю, что:
1) RECVERSION относиться только к реализации "конкурентности" кеша AOS, который может держать образ записей без соединения с базой. Конструкция "update myTable where DataAreaId = .. and RecId = .. and RECVERSION = " может быть использована только в этом случае (из интерфейса). ТОлько в таком случае для версионника (когда выбрали, отключились от базы, опять подключились и делаем изменение) может быть касус с потерей данных (мердже, как некоторые называют)
__________________
-ТСЯ или -ТЬСЯ ? |
|
12.05.2006, 12:03 | #18 |
Участник
|
Цитата:
Сообщение от itfs
2 Torin
Но вы ведь не думаете всерьез, что кеш Аксапты реализует хоть какие-то функции СУБД, не говоря уже о совмесном доступе (версионном или блокировочном)? Как я понимаю, просто новое поле позволяет принимать более гибкие решения при выполнении операций чтения и записи, реализующих ту самую стратегию (Optimistic Concurrency Checking). Не более, того. А то что введение этого новшества совпало с выходом SQL 2005, это что-то вроде ненавязчивого совпадения, имеющего маркетинговый подтекст. С уважением, itfs. Уверен (хотя еще проверять - просто я и сам так делал в решениях и много изучал эту тему), что: 1) Кеш Акспаты всегда отключен от базы данных, но переодически обновляется 2) При редактировании записи в интерфейсе (так как нет кнопки "открыть на изменения" - он проверяет версию записи сам, по полю RECVERSION. Других способов нет, в его случает. Свойства же "версинника" Юкона проявляется на других операциях - паралельные транзакции из кода , или возможность строить отчеты, например, и при этом что-то менять в базе. "Блокировочник" Шилон - просто зависал на них. Все эти операции имеют одно отличие от списков в интерфейсе - от начала и до конца операции они работают через постоянное соединение с базой. Цитата:
Сообщение от Vadik
Цитата:
Сообщение от Torin
Таким образом, думаю, что:
1) RECVERSION относиться только к реализации "конкурентности" кеша AOS, который может держать образ записей без соединения с базой. Конструкция "update myTable where DataAreaId = .. and RecId = .. and RECVERSION = " может быть использована только в этом случае (из интерфейса). ТОлько в таком случае для версионника (когда выбрали, отключились от базы, опять подключились и делаем изменение) может быть касус с потерей данных (мердже, как некоторые называют) При постоянном подключении к базе, так в Юконе сделать нельзя ;-) |
|
17.07.2007, 12:23 | #19 |
Участник
|
Здравствуйте
а подскажите пожалуйста с каким обновлением появляется поле RecVersion после какого сервис пака устнавливали sp4 нет изменений потом установили sp5 ругется что нету поля RecVersion :-( |
|
17.07.2007, 16:21 | #20 |
Модератор
|
SP5 ставит KR1
__________________
-ТСЯ или -ТЬСЯ ? |
|