Info Window
JD Edwards Вы здесь: » JDE IDea » Новости JDE +7 (499) 322-7407 | Контакты | Служба поддержки
Изменения в процессе построения пакетов
09.12.2014
В процесс построения серверных пакетов внесены существенные изменения. Удалось полностью отказаться от этапа построения клиентской части пакета, что существенно ускорило доставку изменений на сервера JDE.

Ранее процесс построения серверного пакета состоял из двух стадий. Сначала строился клиентский пакет, а затем уже потом наступала стадия построения самого серверного пакета.

Этап построения клиентского пакета состоял из следующих шагов:
  • В локальную базу данных пакта копировались спецификации из центрального хранилища объектов.
  • Генерировались исходные файлы С-кода из NER бизнес-функций.
  • Бизнес-функции компилировались и результирующие директории сжимались.
Построение серверного пакета выглядел так:
  • Спецификации объектов копировались из локальной базы данных клиенского пакета, сформированной на первом этапе, в основную базу данных (с указанием имени пакета).
  • Исходные файлы бизнес-функций копировались с Deployment сервера на сервер приложений и там компилировались.
  • Если в файле jde.ini было указано сжимать директории бизнес-функций, происходил процесс сжатия.

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

В настоящий момент внесены изменения в порядок построения пакетов, а процессы по построению спецификаций объектов и генерации файлов С-кода из NER бизнес-функций перенесены на сервер приложений.

Для использования данной функциональности кроме обновления ядра системы (Tools Release) до версии 9.1.5 необходимо установить послдение ESU для планировщика (Planner ESUs) для JDE 9.0 или 9.1.

Изменения в объектах

ESU для планировщика включает следующие измененные и новые объекты:

Ядро системы:

  • На клиенте
    • Jdekrnl.dll
    • Jdepkgbld.dll
  • На сервере (на примере Windows)
    • Jdekrnl.dll
    • genner.exe - новое приложение
    • datautils.dll - новая библиотека
    • compiler.dll - новая библиотека
    • er_util.dll - новая библиотека

Следующие объекты были модифицированы:

  • P9601, P9621, P9622
  • R9621, R9622
  • B9600186, B9800186, B9600196

Новые объекты:

  • R9621S - Пакетное приложение для построения серверного пакета
  • R9622C - Пакетное приложение для построения клиентского пакета
  • Элементы словаря данных
    • 96B01
    • 96B02
    • PCKSTA
    • PCKCLT
    • PCKSVR
    • PCKSVRS

Изменения в процессе построения серверных пакетов

Построение полного пакета
  • Запускается новое пакетное приложение R9621S и инициирует построение серверного пакета.
  • Система копирует .c и .h файлы бизнес-функций с deployment сервера (из расположения check-in) на сервер приложений. Это сделано для исключения изменений этих файлов в процессе построения пакета.
  • Система генерирует C-код (файлы .c и .h) из NER бизнес-функций на сервере приложений. Эти .c и .h файлы компилируется с файлами С-бизнес-функций.
  • Перед генерацией файлов .c и .h для NER бизнес-функций система блокирует все серверные процессы, удаляет файлы спецификаций ddict, ddtext, glbtbl (.xdb и .ddb), разблокирует процессы и начинает генерацию файлов .c и .h для NER бизнес-функций.
  • Система копирует спецификации объектов непосредственно из центрального хранилища объектов среды построения (Central Objects) и помещает их в таблицы спецификаций пакета (<имя_таблицы>_<имя_пакета>, например, F98710_DV910FA) в базе данных. В этом процессе локальные спецификации клиентского пакета более не используются. Построение спецификаций теперь происходит на сервере приложений, в то время как раньше этот процесс происходил на клиенте или Deployment сервере, строящем пакет.
  • В приложении "Определение пакета" теперь есть опции, задающие необходимость сжатия серверного и (или) клиентского пакетов. Файл jde.ini для этого уже не нужен.
  • Система копирует серверный лог-файл (svrpkgbuild.log) с каждого сервера на Deployment сервер. Копируются, также, на Deployment сервер файлы из директории "text".
  • Теперь серверный лог-файл построения пакета доступен в приложении "История построения пакетов".
Построение пакета обновления
  • Запускается новое пакетное приложение R9621S и инициирует построение серверного пакета.
  • Копируются файлы .c и .h бизнес-функций, входящих в пакет обновления.
  • На сервере приложений происходит генерация файлов .c и .h для NER бизнес-функций, входящих в пакет обновления.
  • Если в пакете присутствуют NER бизнес-функции, то система сначала блокирует все серверные процессы, удаляет файлы спецификаций ddict, ddtext, glbtbl (.xdb и .ddb), разблокирует процессы и начинает генерацию файлов .c и .h для NER бизнес-функций.
  • Из центрального хранилища объектов среды построения (Central Objects) копируются спецификации объектов и помещаются в таблицы спецификаций пакета (<имя_таблицы>_<имя_пакета>, например, F98710_DV910UP) в базе данных.
  • C каждого сервера приложений на Deployment сервер копируется серверный лог-файл (svrpkgbuild.log). Копируются, также, на Deployment сервер файлы из директории "text".
  • Теперь серверный лог-файл построения пакета доступен в приложении "История построения пакетов".

Изменения в процессе построения клиентских пакетов

Построение полного пакета
Если строится серверный и клиентский пакеты
  • Запускается новое пакетное приложение R9621S и инициирует построение серверного пакета.
  • Затем запускается новое пакетное приложение R9622C и инициирует построение клиентского пакета. Построение клиентского пакета происходит только, если в приложении выбрана соответствующая опция.
  • Все файлы .c и .h бизнес-функций копируются с сервера приложений в директорию пакета на Deployment сервере.
  • Генерация файлов .c и .h NER бизнес-функций на клиенте больше не происходит.
  • Система компилирует .c файлы.
  • Спецификации объектов копируются из таблиц спецификаций пакета (<имя_таблицы>_<имя_пакета>, например, F98710_DV910FA) в базе данных и помещаются в локальную базу данных спецификаций пакета.
Если строится только клиентский пакет
  • Запускается новое пакетное приложение R9622C и инициирует построение клиентского пакета.
  • Построение происходит так же, как и до этого обновления.
  • С Deployment сервера копируются файлы .c и .h бизнес-функций.
  • Генерация файлов .c и .h NER бизнес-функций происходит на клиенте.
  • Компилируются бизнес-функции.
  • Спецификации объектов копируются из центрального хранилища объектов среды построения (Central Objects) и помещаются в локальную базу данных спецификаций пакета.
  • Если после построения клиентского пакета в определение пакета будет добавлен сервер, то пакет будет построен, предполагая, что клиентский пакет до этого не был построен. То есть, все файлы .c и .h бизнес-функций на Deployment сервере будут перезаписаны с сервера приложений, кроме того, будут заново перестроены все спецификации.
Построение пакета обновления
Если строится серверный и клиентский пакеты
  • Запускается новое пакетное приложение R9621S и инициирует построение серверного пакета.
  • Затем запускается новое пакетное приложение R9622C и инициирует построение клиентского пакета.
  • Все файлы .c и .h бизнес-функций, входящих в пакет, копируются с сервера приложений в директорию пакета на Deployment сервере.
  • Генерация файлов .c и .h NER бизнес-функций на клиенте больше не происходит.
  • Система компилирует .c файлы.
  • Спецификации объектов копируются из таблиц спецификаций пакета (<имя_таблицы>_<имя_пакета>, например, F98710_DV910UP) в базе данных и помещаются в локальные файлы спецификаций (TAM) на Deployment сервере.
Если строится только клиентский пакет
  • Запускается новое пакетное приложение R9622C и инициирует построение клиентского пакета.
  • Построение происходит так же, как и до этого обновления.
  • С Deployment сервера копируются файлы .c и .h бизнес-функций, входящих в пакет.
  • Генерация файлов .c и .h NER бизнес-функций, входящих в пакет, происходит на клиенте.
  • Компилируются бизнес-функции.
  • Спецификации объектов копируются из центрального хранилища объектов среды построения (Central Objects) и помещаются в локальные файлы спецификаций (TAM) на Deployment сервере.
Если после построения клиентского пакета в определение пакета будет добавлен сервер, то пакет будет построен, предполагая, что клиентский пакет до этого не строился. То есть, все файлы .c и .h бизнес-функций на Deployment сервере будут перезаписаны с сервера приложений, кроме того, будут заново скопированы все спецификации из таблиц спецификаций пакета (<имя_таблицы>_<имя_пакета>, например, F98710_DV910UP) в базе данных и помещены в локальные файлы спецификаций (TAM) на Deployment сервере.

Новые особенности

Основной сервер

Основной сервер - это сервер, куда копируются все файлы .c и .h бизнес-функций, где происходит генерация файлов .c и .h NER бизнес-функций и где протекает процесс обновления таблиц спецификаций объектов. Если выбран только один сервер приложений, то все серверные процессы построения пакета выполняются на этом сервере. Если же в процессе определения пакета были выбраны несколько серверов приложений, то пользователю будет предложено указать основной сервер. После генерации файлов .c и .h NER бизнес-функций этот основной сервер пересылает файлы бизнес-фукнций на другие серверы приложений. Основной сервер получает сообщения от других серверов приложений о завершении процесса построения. После этого на Deployment сервер копируютс все лог-файлы (общий, генерация NER, компиляция бизнес-функций), файлы из поддиректории "text".

Флаг (значение "1"), ообзначающий основной сервер, проставляется в поле HBHPKGBULFUT4 таблицы F96021 и в поле HHPKGBULFUT4 таблицы F96215. Пакет обновления наследует информацию об основном сервере от родительского полного пакета.

Изменения в JDE.INI

allowedFileExtensions

Ключ allowedFileExtensions находится в секции JDENET. Он определяет типы файлов, которые могут передаваться через процессы jdenet. Этот ключ введен по соображениям безопасности. Он должен быть добавлен в jde.ini файлы на deployment сервере, на всех серверах приложений и в шаблон файла jde.ini, находящийся по адресу <deployment server>\One World ClientInstall\misc\jde.ini. Возможное значение ключа:

[JDENET]
allowedFileExtensions=.c;.h;.hxx;.ddb;.xdb;.cab;.Z;.log;.imp;.txt;.spc;.gif;.bmp;.jpg;.avi;.ico;.h_old;.c_old;.inf;.sts;.err;.tpl;.png; NONE;
DoCompression

Ключ DoCompression в секции "BSFN BUILD" клиентского файла jde.ini более не используется.

For IBMi

Для серверов IBMi сервер менеджер должен добавить следующую информацию в jde.ini. Если эта информация отсутствует, то генерация файлов .c и .h NER бизнес-функций на сервере может проходить с ошибками.

[INSTALL]
LocalCodeSet=US_EBCDIC
Unicode Conversion Codepage=ibm-37