How the System Builds Full Server and Client Package from the Web with Net Change Objects (Release 9.2.9)
This section provides an overview of how the JD Edwards EnterpriseOne system builds a full server and client package from the web with net change objects.
- Web: Server Package UBE (R9621S) initiates the server package build.
- Web: UBE (R9621S) calls the BSFN program B9600196 on the Enterprise Server which calls into the package kernel code.
- Web Enterprise Server: The system gets the primary server name and sends a jdenet message to the primary server to start the package.
- Web Enterprise Server: The system does not wait for a response but goes into a
continuous loop checking the status of the build, F96021->
bhbldsts
, until it is finished. - Primary Server: Receives the message to start the package build.
- Primary Server: Initializes the Primary Server.
- Checks if the Net Changed Objects Mode. Opens F9603 and checks
F9603->
phpkg4=1
. If set to1
, sets flag to Net Changed Objects Mode. - Primary Server: Creates the package build directories on the Primary Enterprise server.
- Primary Enterprise Server: If client populated the F98780R/F98780H, then the system checks the specs F98710 (package name) for the object name F98780R. If these specs are not there, then the system gets the specs from the central objects path code and inserts them into the live specs tables, F98710, F98711, F98712, and F98713.
- Primary Server: Checks the F00942T->
emdbsrcflg
value for1
. If the value is0
or blank, the objects have not been inserted into the F98780R table. If the value is1
, then the objects have been inserted. - Primary Server: Checks the F00942T-
emenvfu2
value for1
. If the value is0
or blank, then the include and source files in the F98780R/R98780H have not been converted to 64-bit. If the value is1
, then theinclude
andsource
files have been converted toinclude64
andsource64
and uploaded into the F98780R/ R98780H tables. - Primary Server: If the files need to be inserted into the repository, the system sends a jdenet message to the Deployment Server to initialize.
- Deployment Server: Initializes the Deployment Server and creates the package directories.
- Primary Server: Sends a message to the Deployment Server to insert the records into the repository and waits for it to finish.
- Deployment Server: Receives the message from the primary server to insert records into the repository.
- Deployment Server: Inserts all the records into the repository once. If F00942T ->
emdbsrcflg
value is0
or blank and the F00942T->emenvfu2
value is0
or blank, then the system sets the F00942T ->emdbsrcflg=2
for processing.The system does a fetch from F9860 for all objects that are not system code 88. The system checks if there is a file associated with the object on the Deployment Server pathcode. If there are files then the system creates a par file for the object and insert the record with the par file into the F98780R/F98780H. If the foundation selected for the package is 32-bit, then for business functions and tables, the par file will only include the
source
andinclude
files. The system sets the object record in the F9860->sigtffu =1
to indicate there are files for this object.When the process is complete, the system sets the F00942T->
embdsrcflg=1
for completion. It leaves the F00942T->emenvfu2
as0
or blank as this indicates that the conversion of theinclude
andsource
files into 64-bit files is not done. If the foundation selected for the package is 64-bit, then for business functions and tables, the system converts the include and source into 64-bit files and places them in temporaryinclude64
andsource64
directories. The system creates the par file with all four directories and inserts the record into the F98780R/F98780H.The system sets the object record in the F9860->
sigtffu=1
to indicate there are files for this object. When the process is complete, the system sets the F00942T>embdsrcflg=1
for completion. It also sets F00942T->emenvfu2 =1
, which indicates that the conversion of the include and source files into 64-bit files is done. - Deployment Server (Converts 32-bit to 64-bit): This is a one-time process. If
F00942T ->
emdbsrcflg
value is1
, the F00942T->emenvfu2
value is0
or blank, and the foundation selected for the package is 64-bit, then the system sets F00942T ->emenvfu2 =2
for processing. The system does a fetch from F9860 for all objects that have F9860->sigtffu=1
and that are not APPL, GT, or DSTR, and not system code 88. For each fetch, the system retrieves the par file from the F98780R, expands the par file, converts the include and source files to 64-bit and places them in temporaryinclude64
andsource64
directories. The system creates the par file with all four directories and inserts it into the repository. When complete, the system sets the F00942T->emenvfu2 =1
to indicate the files are converted to 64-bit. - Deployment Server: When finished, returns to the Primary Server.
- Primary Enterprise Server: Initializes all other servers. Sends message to each server to initialize.
- Primary Enterprise Server: Opens the F96511 to get active package for the primary server using port, server, and pathcode.
- Primary Enterprise Server: Opens F96215 and from active package, gets the last date and time stamp of the active package.
- Primary Enterprise Server: Opens F96225 of active package, date, time, and
pkgOper=04
. For all the selected records with error, the system inserts objects into F96225 of the new package: date, time,pkgOper=04
, object name, and status of 01/not built. - Primary Enterprise Server: Opens F9861 and queries on all records with date greater
than or equal to the date the active package was built. For each record which is
business function, table, UBE with
.h
file, and business view with.h
, the system inserts object into F96225 with new package: date, time,pkgOper=04
, object name, and status of 01/not built. These are all the net changed objects. - Primary Enterprise Server: Sends a message to the Deployment Server to initialize the Deployment Server.
- Deployment Server: Sets Net Change Objects mode flag.
- Deployment Server: Retrieves name of active package and creates the directories on the Deployment Server if not already created.
- Deployment Server: Builds the list of objects from the F96225 table.
- Deployment Server: If Business Services is selected, the system retrieves the Business Service files from the repository.
- Deployment Server: If Business Services is selected, the system starts the Business Service thread.
- Deployment Server: Starts to copy the files from the active package to the new
package:
bin64, lib64, obj, include, source, include64, source 64
, andwork
directories. - Primary Enterprise Server: Builds the list of objects from the F96225 table.
- Primary Enterprise Server: Windows/UNIX builds specs on a separate thread (IBM i
will not build on thread) on the Primary Enterprise Server from central objects,
placing the results in the package's spec tables,
<table name>_<package name
> (for example,F98710_DV920FA
) in the database. There are 17 tables that are copied from one location to the other. Also, the manifest table is created which holds the name of the package. The Primary Enterprise Server creates the tables F989999 and F989999 in Central Objects location with the nameF989999_<package name>
andF999999_<package name>
. - Primary Enterprise Server: Sends message to other servers to begin the copy of the
files from the active package to the new package. The files to copy are
bin64
,lib64
,object
,include
, andsource
. - Primary Enterprise Server: Starts to copy the files from the active package to the
new packages. The files to copy are
bin64
,lib64
,object
,include
, andsource
. - Primary Enterprise Server: From the list of objects in F96225, retrieves the files
for the business function, table, UBE with files, and business view with file.
The system opens the F98780R and retrieves each F96225 object from F98780R which inserts the files into the Primary Enterprise Server directories,
checkin\source
(.c
files),checkin\source64
(.c
files), (.h
files), andcheckin\include64
(.h
files).The system validates each BSFN, TBLE, UBE, and BSVW if there is a record in the F98780R table, the record has a par file and if the
.h
, and/or.c
file exist incheckin\source
(.c
files),checkin\source64
(.c
files),checkin\include
(.h
files), andcheckin\include64
(.h
files). -
Primary Enterprise Server: If the validation fails and the Repair Repository flag is set, then the system inserts a record into the F96225 table with package name, pathcode, primary server name, object name, version = “
REPAIR
”, and operation = “11
”. -
Primary Enterprise Server: If the Repair Repository flag is set and there are REPAIR records inserted in F96225, then the system sends a message to the Deployment Server Services to repair the objects.
-
Deployment Server: If the Repair Repository flag is set, then the system selects the F96225 records where package name, pathcode, primary server, operation=”
11
” and status =ERROR
. For each record, the system attempts to fetch the record from the F98780R table, evaluate what is missing and if the record is not in the F98780R table, recreates the par file and inserts the record back into the F98780R and F98780H tables. -
Primary Enterprise Server: If the Repair Repository flag is set, then the system selects the F96225 records where package name, pathcode, primary server, operation=”
11
”, and status =ERROR
. The system then retrieves and validates each record from the F98780R table if there is a.h
or/and.c
file. If the validation is successful, the system sets the F96225 record to status=SUCCESS
. -
Primary Enterprise Server: On the Primary Enterprise Server, the package build checks if there is a difference between the data dictionary items in the database and the data dictionary items in
ddict/ddtext
. Differences can exist between the type and length fields in the two locations. If there are any differences, then the system locks all the processes to prevent any UBE to run and waits for all UBEs to finish. It does not affect users on the web. When the locks are obtained,ddict/ddtext/glbtb
are deleted in the path code spec directory. -
Primary Enterprise Server: Generate NER: Only the Named Event Rules (NERs) in the list of the F96225 are generated in the
checkin\source64
andcheckin\include64
. -
Primary Enterprise Server: Waits for the client build to finish copying the client active files to the new files.
-
Primary Enterprise Server: Moves
checkin\include64
,checkin\source64
,checkin\include
, andcheckin\source
to the Deployment Server. -
Deployment Server: Starts busbuild to build the business functions on the Deployment Server.
-
Primary Enterprise Server: Moves client or server and server-only
.c
and.h
files (if 32-bit system moves thecheckin\include
andcheckin\source
, if 64-bit system moves thecheckin\include64
andcheckin\source64
) to thesource
andinclude
directories respectively on the Primary Enterprise Server. -
Primary Enterprise Server: If there is more than one server, then the Primary Enterprise Server moves the
.c
and.h
files from the source and include directories to other Enterprise Servers under thesource
andinclude
directories. -
Primary Enterprise Server: Compiles business functions on the Primary Enterprise Server to generate
.dll
,.so
,.sl
, or.SRVPGM
files. -
Primary Enterprise Server: A new unique library
IBMi
is created in which you can create the SVRPGM, MODULES, and FILES. This unique library name is created with the first two letters and the last two letters of the package, and the job number. For example, if the package is DV920FA, then the unique library is created as "DVFA000340
". This name is stored in the F9603 file inphpkgdeffut3
. -
Primary Enterprise Server: If there are multiple servers, the Primary Enterprise Server sends a message to the other servers to start the build of business functions.
-
Primary Enterprise Server: If the client package was also selected, the Primary Enterprise Server transfers the files from the
checkin\source, checkin\source64, checkin\include, checkin\include64
andcheckin\res
to the Deployment Server Packageinclude
,source
,include64
,source64
, andres
directories. -
Primary Enterprise Server: Checks the status of the build and checks if BSFNs are complete. The Primary Enterprise Server checks the status of other servers if BSFNs are complete.
-
Primary Enterprise Server: When the dll and specs are finished, if the compress feature for server is enabled, it compresses the
.dll
,.so
,.sl
, and.SRVPGM
files on the Primary Enterprise Servers. The Primary Enterprise Server sends a message to all the other servers to compress. -
Other Enterprise Servers: Sends the compressed files to the Primary Enterprise Server under
<packagename>/<machine type>
directory. -
Primary Enterprise Server: Transfers the compressed files and the
compress.inf
file back to the Deployment Server if initialization was successful under the<packagename>/<machine type>
directory. -
Deployment Server: When business function and business services are complete, the system starts the compression on the Deployment Server.
-
Primary Enterprise Server: Under the deployment location, creates the package name under the
bin64
andspecs
folder in these paths, respectively:<pathcode>\bin64\<package name>
and<pathcode>\spec \<package name>
. -
Primary Enterprise Server: Copies the package
bin64
directory to the<pathcode>\bin64\<package name>
directory. -
Primary Enterprise Server: Under
<pathcode>\spec\<package name>
, creates thespec.ini
file with the database datasource location for Central Objects DV920_DataSource=Central Objects – DV920 -
Primary Enterprise Server: Checks the
jde.ini
for entry[PACKAGE MANIFEST] CreateJAR=Y
and/or checks the F96215->
PKGBULFUT3
= "Y
" which is set when you select Compress Application Component in the Compress Options tab.If this entry is in
jde.ini
or F96215 with'Y'
, then the system creates aE1_APP_xxxx.jar
file under the package name directory on the Enterprise Server. This jar file contains thebin64
directory and thespec.ini
is populated with the package name. The jar file is used by the Server Manager to create a new Enterprise Server Instance. -
Primary Enterprise Server: Transfers the server log (
svrpkgbuild.log
) from each server to the Deployment Server under<packagename>\serverLogs
directory. -
Primary Enterprise Server: Transfers the files located under the
text
directory on the each Enterprise Server to the Deployment Server under<packagename>\serverlogs\<server name>\text
. -
Primary Enterprise Server: Transfers the files located under the
CompileLogs
directory on the each Enterprise Server to the Deployment Server under<packagename>\serverlogs\<server name>\CompileLog
. -
Primary Enterprise Server: Transfers the files located under the
GenerateNER_logs
directory on the Primary Enterprise Server to the Deployment Server under<packagename>\serverlogs\GenerateNER_logs
. -
Primary Enterprise Server: If this is a server-only package, the process is complete. However, if client is selected, the system waits for the client to finish with the compression of the directories into CAB files.
-
Primary Enterprise Server: The system checks the status of the client build and the spec build to wait for them to complete. When complete, the process is done.