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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.05.2008, 20:49   #7  
Volodymyr is offline
Volodymyr
Участник
 
36 / 21 (1) +++
Регистрация: 03.11.2006
Адрес: Киев
TO Stich_MS: К сожалению когда один батч выполняет
PHP код:
select pessimisticLock firstonly trans
    where trans
.open == true

То второй батч при выборе этой же линии, ждет пока снимется лок сделаный первым батчем. Т.е. получается вообще плохо.
To Hyper: вот это подход я понимаю , но всетаки запуск больше двух батчей не приведет к ускорению работы.

Пришлось сделать так:
1) Добавить на таблицу поле Blocked
2) Переделать метод так:
PHP код:
run()
{
    
Trans trans;
    
Trans buffer;
    
boolean setBlocked(boolean _blocked)
    {
        if (
_blocked && trans.blocked)
            return 
false;
 
        
ttsbegin;
        
buffer Trans::find(trans.recIdtrue);
        
buffer.blocked true;
        
buffer.update();
        
ttscommit;
        return 
buffer.blocked;
    }
    try
    {
        while 
select trans where trans.open == true && trans.blocked == false
        
{
            if(
setBlocked(true))
            {
                
ttsbegin;
                
buffer Trans::find(trans.recidtrue);
                ...
                
buffer.open false;
                
buffer.update();
                
ttscommit;
                
setBlocked(false);
            }
        }
    }
    catch (
Exception::Error)
    {
        
setBlocked(false);
    }
    catch (
Exception::UpdateConflict)
    {
        
retry;
    }


Всех с Праздником!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Невозможно выполнить команду языка определения данных в () iHomer13 DAX: Программирование 8 18.07.2008 10:56
Стандартный импорт данных. Обновление sparur DAX: Функционал 0 24.03.2008 19:07
Распределенная база данных на основе View Владимир Максимов DAX: Программирование 27 04.09.2007 13:21
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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