08.08.2013, 19:42 | #21 |
Участник
|
Всем добрый вечер
есть следующая проблема : есть пакетник который в порядке очереди обрабатывает некие запросы, хотелось бы эту последовательную очередь распараллелить но при работе пакетника ничего не происходит при запуске X++: t.run(classnum(MyClass), staticmethodstr(MyClass, MyMethod)); точно проверено : пакетник работает (обрамлял t.run логированием) делал логирование в самом методе MyMethod (тут люди писали что, возможно, валится где то на IO или еще на чем то) - метод вообще не вызывается подскажите куда рыть ? Последний раз редактировалось Omeo; 08.08.2013 в 19:45. |
|
08.08.2013, 20:24 | #22 |
Участник
|
мне кажется вы не туда роете.
есть серия отличных статей про распараллеливание в пакете, класс thread тут не причем http://blogs.msdn.com/b/axperf/archi...x-part-ii.aspx |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
09.08.2013, 00:38 | #23 |
Участник
|
В подтверждение слов trud-а приведу ссылку, в которой пишут, что thread не работает в пакете:
http://dynamics-ax.blogspot.ru/2010/...-vs-batch.html Когда я писал класс-наследник от RunbaseBatch, то для распараллеливания процессов делал проверку на то как работает класс. Если в пакете, то применял Batch Parallelism, если нет - threads. Вроде все работает в итоге. |
|
09.08.2013, 02:36 | #24 |
Боец
|
Confirmed. Thread не работает в пакетном режиме, по крайней мере в AX2009.
А распараллеливание BatchHeader на BatchJobs мягко говоря неудобное решение, хотя и работает. |
|
29.11.2013, 01:43 | #25 |
Участник
|
Цитата:
Т.е. все пакетные обработчики - это Thread-ы от одной системной сессии с номером 2. Возможно, есть ограничение на запуск вложенных Thread. |
|
09.11.2015, 15:07 | #26 |
Участник
|
Цитата:
Оказывается они еще и ведут себя по разному. Сессия 1 считает что curExt() = "" ! Как следствие, если захочется что-то по логировать то для нее не получится это сделать (поймать момент старта аоса и записать в табличный лог). Тупо выдает ошибку Цитата:
Object Server XX: Dialog issued for client-less session 1: Cannot create a record in YYYYYYY (ZZZZZ).
Insert operations are not allowed across companies. Please use changecompany keyword to change the current company before inserting the record. |
|
09.11.2015, 15:30 | #27 |
Участник
|
Пологировать можно в таблицу с SaveDataPerCompany = No
|
|
09.11.2015, 15:43 | #28 |
Участник
|
Ну да.
Но стремно. Если такие базовые вещи не работают, то ходишь как по минному полю, не зная где еще что отвалится. |
|
10.11.2015, 13:07 | #29 |
Британский учённый
|
К теме использования Thread в AX.
Здесь можно скачать xpo - пример использования в SSRS отчете. Хотя автор пишет: Цитата:
The code is for demonstraction only. A more practical application to leverage this feature is in batch processing.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
Теги |
sysevent, thread |
|
|