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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.06.2006, 16:59   #1  
Hidden is offline
Hidden
Участник
 
199 / 15 (1) ++
Регистрация: 25.03.2004
Адрес: Moscow
Аксапта выдает AsciiIo объект не инициализирован?
Пакетно каждый час запускается преобразование текстовых файлов, и иногда по непонятным причинам выдает что "AsciiIo объект не инициализирован'. Это здорово мешает, так как процедура не выполнена и плюс все пакетные задания виснут в ожидании. В чем может быть причина и как обойти проблему или разрешить?
Старый 08.06.2006, 17:04   #2  
lagr221374
Гость
 
n/a
Цитата:
Сообщение от Hidden
Пакетно каждый час запускается преобразование текстовых файлов, и иногда по непонятным причинам выдает что "AsciiIo объект не инициализирован'. Это здорово мешает, так как процедура не выполнена и плюс все пакетные задания виснут в ожидании. В чем может быть причина и как обойти проблему или разрешить?
Может что-то работает с файлом помимо Ax в этот момент?
Старый 08.06.2006, 17:08   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,505 / 2434 (89) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Hidden
Пакетно каждый час запускается преобразование текстовых файлов, и иногда по непонятным причинам выдает что "AsciiIo объект не инициализирован'. Это здорово мешает, так как процедура не выполнена и плюс все пакетные задания виснут в ожидании. В чем может быть причина и как обойти проблему или разрешить?
Скорее всего в момент инициализации объекта возникает ошибка.
1. Либо некорректный путь передан. - Тогда проверять его на корректность. WinApi ::fileExists()
2. Либо файл уже существует и переписать его поверх невозможно, так как он, например, открыт другим приложением на запись.
3. Может быть есть какие то ограничения в операционке на число открытых файлов. Учтите что файл после отработки кода может быть закрыт не сразу - из-за того что сборщик мусора не сразу убивает объект. Может быть тогда для файла AsciiIo принудительно вызывать Finalize() ?
Старый 08.06.2006, 17:18   #4  
Hidden is offline
Hidden
Участник
 
199 / 15 (1) ++
Регистрация: 25.03.2004
Адрес: Moscow
Цитата:
Сообщение от Logger
Скорее всего в момент инициализации объекта возникает ошибка.
1. Либо некорректный путь передан. - Тогда проверять его на корректность. WinApi ::fileExists()
2. Либо файл уже существует и переписать его поверх невозможно, так как он, например, открыт другим приложением на запись.
3. Может быть есть какие то ограничения в операционке на число открытых файлов. Учтите что файл после отработки кода может быть закрыт не сразу - из-за того что сборщик мусора не сразу убивает объект. Может быть тогда для файла AsciiIo принудительно вызывать Finalize() ?
Поробовал file2.finalize();
ТОгда пишет Метод объявлен как protected и может вызываться только из методов классов-наследников AsciiIo.
Старый 08.06.2006, 17:23   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,360 / 2080 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Можно создать класс наследник AsciiIO и использовать его вместо базового. А в нем перекрыть метод finalize() и уровень доступа сделать ему public
Старый 08.06.2006, 18:21   #6  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Есть ещё "железячная" проблема, когда файлы "зацепляются" операционкой. Типа файл используется, хотя он на самом деле не используется. Это наблюдается у нас когда за день создаются/удаляются по несколько тысяч файлов. NTFS. Лечим периодической чисткой и дефрагментацией.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 08.06.2006, 18:28   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,505 / 2434 (89) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от kashperuk
Можно создать класс наследник AsciiIO и использовать его вместо базового. А в нем перекрыть метод finalize() и уровень доступа сделать ему public
а еще можно объявить переменную типа Object присвоить ей наш файл и вызвать для Object метод Finalize()

Проверка на Protected Private происходит только на этапе компиляции и легко обходится при работе. Хотя это окнечно методологически неверно и правильнее делать через наследование как kashperuk указал.
Старый 09.06.2006, 09:30   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,550 / 2712 (100) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Записей в блоге: 5
WinApi ::fileExists() говорит, что занятые файлы не существуют, более корректная версия аfileExists2

Вместо finalize можно попробовать использовать io=null (хотя неизвестно точно когда его выкинет сборщик мусора, но на практике это прокатывало)
__________________
blog | twitter
Старый 09.06.2006, 12:05   #9  
Hidden is offline
Hidden
Участник
 
199 / 15 (1) ++
Регистрация: 25.03.2004
Адрес: Moscow
Всем спасибо! Попробую! Самое странное вылетает с такой ошибкой где то 1 раз из 50 запусков, т.е. 1 раз в два три дня.
Старый 10.06.2006, 13:47   #10  
Sasha is offline
Sasha
Участник
 
3 / 10 (1) +
Регистрация: 18.02.2005
Адрес: Москва
Можно еще добавить проверку инициализации объекта файла с выброской исключения, а в catch алгоритм перехода к следующему файлу (продолжения обработки далее).... и тогда пакетник останавливаться не будет, а при следующем запуске снова займется проблемными файлами...
__________________
Alexander
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Каков процент внедрений "стандартной" поставки системы Аксапта? coolibin DAX: Прочие вопросы 17 10.02.2009 12:45
Ошибка при инициализации AsciiIO объекта evv DAX: Программирование 3 10.05.2008 15:37
Запросы в Аксапта ibc DAX: Программирование 5 08.08.2005 22:47
Объект dictField не инициализирован DreamCreator DAX: Программирование 1 05.04.2005 14:36
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:02.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.