DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Клиентские приложения ODI и использование памяти (Heap Size).

Сегодня хочу рассказать об одной неудачной попытке произвести импорт рабочего репозитория. Попытка эта, кроме всего прочего, была вызвана нехваткой памяти, о чем приложение Дизайнер честно и сообщало мне после нескольких часов работы:
Во время работы клиентских приложений ODI, которые написаны на Java, в правом нижнем углу каждого из них отображается небольшой график, показывающий общее количество выделенной и используемой в данный момент памяти для текущего приложения:
Для начала, я увеличил объем памяти, который выделяется виртуальной машине, на которой у меня проинсталлирована версия ODI подключенная к MS SQL server как репозиторию.
Это не помогло. Oracle Data Integrator, в лице Дизайнера, напрочь отказывался брать больше 256 Мбайт памяти. Причем некоторое время выделенная и используемая память были достаточно близки по значению, в эти моменты, видимо, сборщик мусора Java пытался освободить ненужные куски памяти из кучи, но минут через 5 все заканчивалось сообщением о нехватке памяти.
В поисках настроек, которые Java выделяет программам, я нашел параметры, определяющие количество выделяемой приложению памяти в перечне дополнительных параметров настроек Java Control Panel. Выглядеть должно было все примерно так:
К сожалению, это так же не помогло. Искушительная мысль переинсталлировать "всё" постоянно маячила на горизонте, маня простым, понятным, неправильным решением, которое, как известно, есть у каждой проблемы.
Решение обнаружилось в файле параметров odiparams.bat, который используется, в том числе, для определения параметров коннекта агента к репозиторию.
Итак, в данном файле, в разделе других настроек (Other Parameters) необходимо подправить переменную ODI_MAX_HEAP, установив для нее необходимое количество памяти.
Теперь Дизайнер во время импорта рабочего репозитория выделял себе достаточное количество памяти. Жаль, но репозиторий, в конце концов, так и не был загружен, но уже не по причине нехватки памяти.







jAntivirus