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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.09.2008, 00:29   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Ax3sp3 vs Ax4sp2 на примере
Решил зафиксировать результаты небольших опытов, проведенных на приложениях Ax3sp3 и Ax4sp2 подключенных к серверу MS SQL2005 с БД в режиме 90.

В опытах принимают участие: табличка
aTable с полями
Id - int с уникальным индексом
Value - int без индекса

и 2 жобика
X++:
static void Job_b1(Args _args)
{
    aTable  aTable;
    ;

    ttsbegin;
    aTable = aTable::find(12, true); // такая запись есть
    aTable.Value = timenow();
    aTable.update();
    ttscommit;
}

static void Job_b2(Args _args)
{
    aTable  aTable;
    ;

    select aTable
        where aTable.Value == 200; // такой записи нет

    ttsbegin;

    select aTable
        where aTable.Value == 200;

    aTable = aTable::find(12, true);
    aTable.Value = timenow();
    aTable.update();

    ttscommit;
}
Опыт 1
Запускаем 2 клиента аксапты.
В одном из них ставим точку останова на строке aTable.update(); первого джобика и выполняем.
Во втором выполняем джобик2 по шагам.
Ax3sp3 - джобик2 вешается на строке aTable = aTable::find(12, true); до тех пор пока не закончится джоб1.
Ax4sp2 - джоб2 отрабатывает до конца, однако при попытки продолжить джоб1 получаем ошибку:
Невозможно отредактировать запись в aTable (aTable).
Возник конфликт обновления из-за того, что другой пользовательский процесс выполняет удаление записи или изменение одного или нескольких полей в записи.


Опыт 2
Запускаем 2 клиента аксапты.
В одном из них ставим точку останова на строке ttscommit; первого джобика и выполняем.
Во втором выполняем джобик2 по шагам.
Ax3sp3 - на этот раз джобик2 вешается на строке select aTable where aTable.Value == 200; (которая после ttsbegin) до тех пор пока не закончится джоб1.
Ax4sp2 - теперь и здесь джоб2 вешается, но на строке aTable.update(); до тех пор пока не закончится джоб1, а потом выдает туже ошибку:
Невозможно отредактировать запись в aTable (aTable).
Возник конфликт обновления из-за того, что другой пользовательский процесс выполняет удаление записи или изменение одного или нескольких полей в записи.

Последний раз редактировалось Wamr; 30.09.2008 в 00:33.
Теги
производительность, ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Зачем нужен BP если ему не кто не следует? на примере NetBus DAX: Программирование 18 20.11.2008 07:53
Формирование цены товара с учетом скидок и дисконтов на примере заказа на продажу rusalaudinov DAX: Программирование 3 21.03.2008 13:39
Тестирование прав доступа в Ax 4.0 Ivanhoe DAX: Администрирование 27 14.12.2007 17:55
Как реализовать Query или View на примере такого T-SQL запроса для OLAP? sao DAX: Программирование 9 07.10.2005 18:57
Конфигурир Спецификац на примере Ахапки Alex_R2 DAX: Функционал 4 27.07.2005 15:40

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

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

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