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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.01.2010, 11:18   #21  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Что тоже не есть гуд.. Как я и говорил..

Счас актуально, передать парамметр, через коммандную строку.
И по поводу СОМ конектора, кто нить делал что то подобное? Я тут нашел на форуме что:
Цитата:
Axapta COM connector работает ТОЛЬКО с IIS
?!?!
Старый 14.01.2010, 11:30   #22  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Может быть Вам стоит просто ограничить максимальное количество строк в одном журнале? Скажем, не более 500..1000 строк.

Как мне кажется, выполнять разноску в пакетном режиме не есть хорошая идея. Т.е. сегодня журнал создали, ночью попытались разнести, вылезла ошибка разноски, исправили, следующей ночью опять попытались разнести, вылезла другая ошибка разноски,... И сколько дней Вы будете пытаться повторять попытку разноски? Ах, у Вас не будет ошибок разноски? Ну-ну..

Как Вам уже неоднократно намекали, основная проблема разносок - это взаимные блокировки. И распаралеливание процессов Вам вообще никак не поможет. По сути, Вы просто повторите ту ситуацию, которая происходит сейчас. Когда Вы пытаетесь разнести в процессе работы такой огромный журнал вся работа встает. Другой пользователь (процесс) не может ничего сделать из-за наложенных процессом разноски блокировок. И в чем разница, если в качестве другого пользователя будет выступать другой процесс разноски?

Единственные путь решения проблемы без существенной переделки кода - это банальное ограничение количества строк журнала.

Ну, сделают пользователи не один мега-журнал, а 10..20 небольших журналов. Например, просто копируя строки из предварительно созданного мега-журнала. Это и контролировать будет проще и обрабатывать...
За это сообщение автора поблагодарили: Andrey Peganov (1).
Старый 14.01.2010, 11:54   #23  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
То что вы описали (с ночными ошибками) это как раз вариант с пакетами..
Ограничение строк журналов будет однозначно.

Я все таки хочу попробовать, о результатах отпишусь.

Последний раз редактировалось Вата; 14.01.2010 в 11:58.
Старый 14.01.2010, 12:08   #24  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Вата Посмотреть сообщение
То что вы описали (с ночными ошибками) это как раз вариант с пакетами..
Ограничение строк журналов будет однозначно.

Я все таки хочу попробовать, о результатах отпишусь.
Еще раз, почему Вы хотите запустить паралельный процесс? ЗАЧЕМ? Что Вы хотите этим добиться? Какую проблему решить?

Еще раз, подумайте над таким вопросом: чем отличается запуск разноски через запуск еще одной копии Axapta, от включения в работу еще одного пользователя? Это не одно и то же? Если нет, то ЧЕМ отличается?
Старый 14.01.2010, 12:17   #25  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Вата Посмотреть сообщение
Успешный бизнес он наверное от того и успешный, что пытается из всего выжать максимум
Вы похоже смайлик в моем сообщении не заметили
Цитата:
Да и подход "купите новый продукт, так как старый не делает того, что должен был делать" весьма сомнительный аргумент.
"Должен" по отношению к программному продукту тоже аргумент весьма спорный. Он никому ничего не должен. У него есть свои особенности (фичи) и недостатки (баги), иногда одно достаточно трудно отличить от другого Фича в разноске больших и очень больших журналов ГК заключается в том, что время разноски растет не линейно в арифметической прогрессии от числа строк, а по экспоненте. Так что у Вас всегда есть выбор: понять особенность продукта и решить проблему штатно (ограничением максимального количества строк и запуском дополнительных пакетных серверов) либо продолжать рожать ежиков (COM Connector и пр.)
__________________
-ТСЯ или -ТЬСЯ ?
Старый 14.01.2010, 12:18   #26  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от Вата Посмотреть сообщение
И по поводу СОМ конектора, кто нить делал что то подобное?
Да. Без IIS прекрасно работает.

Пример:

файл TestAOS.vbs

Цитата:
'Имя аоса к которому подключаемся
AOSName = "Axapta-AOS"

'Имя конфигурации аос клиента
ConfigurationClientName = "Real"

'Имя аос клиента под которым выполняем логин (для него настроена доменная авторизация)
AxaptaClientName = "aos1"

On Error Resume Next

' WScript.Sleep 120000

set ax=CreateObject("AxaptaCOMConnector.Axapta2.1")
Err = Ax.Logon (AxaptaClientName, "", "", ConfigurationClientName)
Ax.Logoff
if Err = 0 Then
WScript.Echo Err
ELSE
WScript.Echo Err
End If

Set ax = Nothing
Старый 14.01.2010, 12:45   #27  
3oppo is offline
3oppo
Участник
Аватар для 3oppo
 
222 / 32 (2) +++
Регистрация: 30.06.2005
Цитата:
Сообщение от Вата Посмотреть сообщение
Счас актуально, передать парамметр, через коммандную строку.
Cоздай свою команду загрузки, см. SysStartupCmd::construct()
Старый 14.01.2010, 12:53   #28  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Может быть Вам стоит просто ограничить максимальное количество строк в одном журнале? Скажем, не более 500..1000 строк.
Это понятно, и это одназначно будет делаться..

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Как Вам уже неоднократно намекали, основная проблема разносок - это взаимные блокировки. И распаралеливание процессов Вам вообще никак не поможет. По сути, Вы просто повторите ту ситуацию, которая происходит сейчас. Когда Вы пытаетесь разнести в процессе работы такой огромный журнал вся работа встает. Другой пользователь (процесс) не может ничего сделать из-за наложенных процессом разноски блокировок.
Другой пользователь ничего не сможет сделать с тем же журналом! А с другим сможет.. Много времени ухожит именно на обработку кучи АХ классов разноски, а не обращение к БД. Вот на этом времени я и хочу выиграть.
Старый 14.01.2010, 16:52   #29  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Вата Посмотреть сообщение
Другой пользователь ничего не сможет сделать с тем же журналом! А с другим сможет..
Это Вам так кажется. Впрочем, зависит от версии Axapta.

Например, до 3.0 включительно, в процессе разноски была блокировка InventSum. Это значит, что другой пользователь не сможет выполнить никаких операций с тем же самым артикулом по той же складской аналитике. Ни заказ отфактуровать, ни закупку оприходовать.

В 4.0 механизм блокировки InventSum в операциях разноски переделали (блокируют не в начале операции, а в конце). Т.е. с этой стороны опасности вроде нет. Но возможно, там возникают ли какие-нибудь другие блокировки.

Цитата:
Сообщение от Вата Посмотреть сообщение
Много времени ухожит именно на обработку кучи АХ классов разноски, а не обращение к БД. Вот на этом времени я и хочу выиграть.
Вы хронометраж делали? Ну, или трассировку?

Операции в памяти (обработка классов) - самые быстрые. На них "по определению" не может тратится времени больше, чем на запросы к базе данных.

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

Распаралеливанием процессов путем запуска еще одной копии Axapta Вы никакого выигрыша не получите. Скорее, лишние проблемы и тормоза.
Старый 14.01.2010, 17:18   #30  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Насчет блокировок в 3.0 я был не совсем прав. Если включен IMTS, то их может и не быть. Но, вроде бы, никто не советует его включать из-за возникающих дополнительных рисков. Есть очень хорошая статья, насчет того, кто и что блокирует

Dynamics AX 4 и IMTS

Так что, далеко не факт, что в процессе разноски одного журнала другой пользователь сможет разнести другой журнал. Как повезет...
Старый 15.01.2010, 15:25   #31  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Это значит, что другой пользователь не сможет выполнить никаких операций с тем же самым артикулом по той же складской аналитике.
Да это понятно.. Но я планирую разбивать данные таким образом чтобы скл. аналитика не пересекалась.
Старый 15.01.2010, 15:40   #32  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Вата Посмотреть сообщение
Но я планирую разбивать данные таким образом чтобы скл. аналитика не пересекалась.
Это как?

В InventSum сливаются модификации от складских журналов, заказов и закупок. Каким образом Вы предполагаете "развести" эти разные типы документов по разным складским аналитикам? В смысле, чтобы в один и тот же момент времени они не использовали одинаковые складские аналитики по одним и тем же артикулам?

Да даже и в рамках только складских журналов. Каким образом Вы собираетесь "развести" разных пользователей по разным складским аналитикам?

Т.е. один пользователь создал журнал, а второй не может ничего делать, поскольку ему НАДО (ну, вот надо и все тут!) создать строку с той же складской аналитикой. А Вы запрещаете!

Мне кажется, это еще хуже, чем создать журнал, но не смочь его разнести...
Старый 15.01.2010, 16:18   #33  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Это как?
Каким образом Вы предполагаете "развести" эти разные типы документов по разным складским аналитикам? В смысле, чтобы в один и тот же момент времени они не использовали одинаковые складские аналитики по одним и тем же артикулам?
.
Очень просто.. ночью, когда работает только один пользователь..
Старый 15.01.2010, 18:29   #34  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Вата Посмотреть сообщение
Очень просто.. ночью, когда работает только один пользователь..
Т.е. у Вас с Axapta работает один пользователь и Вы хотите паралельно запускать "скрытую" копию Axapta? А что, пользователь не начнет тут же создавать другой журнал (заказ, закупку) по тем же складским аналитикам? И как Вы ему объясните, что "нельзя"? Почему собственно?

Вы можете хотя бы самому себе объяснить ЗАЧЕМ Вам надо автоматически запускать некий скрытый процесс? Почему пользователь не может это сделать самостоятельно?
Теги
ax3.0, запуск, конфигурационная утилита, параметры

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Остановка и запуск сервера из командной строки KiselevSA DAX: Администрирование 13 17.11.2006 14:37
Как открыть ax32.exe из командной строки без ввода пароля? Morpheus DAX: Администрирование 6 16.11.2006 14:57
Как отпроцессить куб из командной строки? slava09 DAX: Программирование 6 01.06.2006 13:51
Параметры командной строки конфигурации listener DAX: Администрирование 3 18.12.2004 00:21
При создании строки в закупке статус строки становится "Отменено" AlexUnik DAX: Функционал 4 27.09.2004 16:05

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

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

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