How the System Builds a Full Server Package with Net Change Objects (Release 9.2.9)
The following section describes how the JD Edwards EnterpriseOne system builds a full server and client package with net change objects. The system builds all of the specs and the changed objects, business functions, tables, UBE with files, and BSSVW with files, since the last active package was built. The main files are copied from the active package to the new package and the changed objects are retrieved from the repository.
The beginning of each step states whether the process occurs on the Deployment Server or on the Enterprise Server. The client build uses the Deployment Server Services for the build.
-
Client: Server Package UBE (R9621S) initiates the server package build.
- Client: Creates the package build directories on the deployment machine.
- Client: If Build Net Change Objects is selected, sets the flag for net change mode.
- Client: 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. - Client: Checks the F00942T->
emenvfu2
value for1
. If the value is0
or blank, then the include and source files in the F98780R/R98780H tables have not been converted to 64-bit. If the value is1
, then the include and source files have been converted to include64 and source64 and uploaded into the F98780R/R98780H tables. - Client: This is a one-time process. If F00942T ->
emdbsrcflg
value is0
or blank and the F00942T-> emenvfu2 value is 0 or blank, then the system sets F00942T ->emdbsrcflg=2
for processing. It does a fetch from F9860 for all objects that are not system code 88.The client server checks if there is a file associated with the object on the Deployment Server pathcode
include
andsource
directories. If there are files in theinclude
andsource
directories, then the system creates a par file for the object and inserts the record with the par file into the F98780R/F98780H tables.If the foundation selected for the package is 32-bit, then for business functions and tables, the par file only includes source and include files. The system sets the object record in F9860->
sigtffu =1
to indicate there are files for this object. When the process is complete, it sets F00942T->embdsrcflg=1
for completion. The system leaves the F00942T->emenvfu2
as0
or blank since this indicates that the conversion of the include and source files into 64-bit files is not done. - Client: This is a one-time process. If F00942T ->
emdbsrcflg
value is0
or blank and the F00942T->emenvfu2
value is0
or blank, then the system sets F00942T ->emdbsrcflg=2
for processing. The system fetches from F9860 for all objects that are not system code 88. It checks if there is a file associated with the object on the Deployment Server pathcode include and source directories. If there are files in the include and source directories, then it creates a par file for the object and inserts the record with the par file into the F98780R/F98780H tables.If the foundation selected for the package is 64-bit, then for business functions and tables, it converts the include and source files into 64-bit files in temporary include64 and source64 directories. It creates the par file in all four directories and inserts the record into the F98780R/F98780H tables. It sets the object record in the F9860->
sigtffu =1
to indicate there are files for this object. When the process is complete, it sets the F00942T->embdsrcflg=1
for completion. It also sets the F00942T->emenvfu2 =1
, which indicates that the conversion of the include and source files into 64-bit files is done. - Client: This is a one-time process. If the F00942T ->
emdbsrcflg
value is1
, the F00942T->emenvfu2
value is0
or blank, and the foundation selected for the package is 64-bit, then it sets F00942T ->emenvfu2 =2
for processing. It does a fetch from the F9860 table for all objects that have F9860->sigtffu=1
and that are not APPL, GT, or DSTR, and not system code 88. For each fetch, it retrieves the par file from the F98780R table, expands the par file, converts the include and source files to 64-bit and places them in temporary include64 and source64 directories. It creates the par file in all four directories and inserts it into the repository. When the process is complete, the system sets the value F00942T->emenvfu2 =1
to indicate that the files are converted to 64-bit. - Client: Initiates the connection with the Primary Enterprise Server.
- Enterprise Server: Creates the directories on the Primary Enterprise Server and builds the list of objects from the F96225 table.
- Enterprise Server: If client populates the F98780R/F98780H tables, then the Enterprise Server checks the 'Live' specs F98710 <package name> for the object names F98780R, F98780H, and F00942T. If these specs are not there, then it get the specs from the Central Objects path code and inserts them into the 'Live' specs tables, F98710, F98711, F98712, and F98713.
- Client: Opens the F96511 table to get active package for the primary server using port, server, and pathcode.
- Client: Opens the F96215 table of the active package and gets the last date and time stamp of the active package.
- Client: Opens the F96225 table of active package and gets the date and time, and
pkgOper =04
. For all selected records, the system inserts date, time,pkgOper=04
, and object name into the F96225 table of the new package. - Client: Opens the F9861 table and queries on all records with date greater than or
equal to the date the active package was built. For each record, the system inserts
object into the F96225 table with new package, date, time,
pkgOper=04
, and object name. These are all the changed objects. - Enterprise Server: Initiates the client build.
- Deployment Server: Initializes the client build using the Deployment Server Services.
- Deployment Server: Sets the Net Change Objects mode for the client build.
- Deployment Server: Initiates the business services process.
- Deployment Server: Starts the copy of
bin64, lib64, obj, source, include, source64, include64, res
, andwork
from the active package to this current package. - Deployment Server: Waits for the Enterprise Server to complete the Enterprise Server copy of the files.
- Enterprise Server: Builds the object list of the records in the F96225 table.
- Enterprise Server: UNIX/Windows: Starts the Builds specs on a thread (IBM i will not be on a thread) on the Primary Enterprise Server from Central Objects, placing the results in the spec tables of the package, <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. This is running on a thread so the package can continue.
- Enterprise Server: Copies the bin64, lib64, include, source, and obj from the active package to the new package.
- Enterprise Server: Opens F96225 for package name where
pkgOper=04
. For each object, the system retrieves the files from the repository, validates each BSFN and TBLE that there is a record in the F98780R table, the record has a par file, and the.h
and/or.c
file exist in the par file. - Enterprise Server: Validates each UBE and BSVW with
F9860->
sigtffu1=1
if there is a record in the F98780R table, the record has a par file, and for each UBE and BSVW, if the.h
file exists in the par file and for an APPL, if a bitmap exists. - 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
”, operation = “11
”, and date and time. - Enterprise Server: Checks if any BSFN or TBLE does not have
F9860->
sigtffu1=1
and is checked in. If found, the system inserts a record into the F96225 table with package name, pathcode, primary server name, object name, version = “REPAIR
” and option = “11
”, and date and time. - Client: Compresses the res directory from the pathcode location
on the Deployment Server. The system transfers the
res.cab
file to the Primary Enterprise Server under thecheckin\res
folder. - Client: If the Repair Repository flag is set, then the system selects F96225 records
where package name, pathcode, primary server, operation="
11
", and status =ERROR
.For each record, the system attempts to get the record from the F98780R table, evaluate what is missing. If the record is not in the F98780R table, the system recreates the par file and inserts the record into the F98780R and F98780H tables.
- Enterprise Server: If the Repair Repository flag is set, 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 in the F98780R table if there is a .h or/and .c file. If successful, then the system sets the F96225 record to status=SUCCESS
. - Enterprise Server: If there are other servers, the Primary Enterprise Server will contact each Enterprise Server to start copying the files from the active package to the new package on that Enterprise Server.
- Enterprise Server: On the Primary Enterprise Server, the package build checks if there is a difference between data dictionary items in the database compared to what is in ddict/ddtext. The difference fields are the type and length. If there are any differences, then it locks all 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.
- Enterprise Server: Opens the F96225 table for package name and
pkgOper=04
. If object is named event rules (NERs), then it creates.c
and.h
files in the checkin\source64 and checkin\include64 directories (if the system on the Enterprise Server is 64-bit). - Enterprise server: If the client has finished copying, the Primary Enterprise Server transfers the files from the checkin\source, checkin\source64, checkin\include, checkin\include64 and checkin\res to the Deployment Server package directories.
- Enterprise Server: Moves server-only
.c
and.h
files in checkin\source, checkin\source64, checkin\include, checkin\include64 and checkin\ directory to the source and include directories respectively on the 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 the other Enterprise Servers under the source and include directories. - Enterprise Server: Compiles business functions on the Primary Enterprise Server to
generate
.dll
,.so
,.sl
, or.SRVPGM
files. If there are multiple servers, the Primary Enterprise Server sends a message to the other servers to start building the business functions. - Enterprise Server: A new unique library
IBMi
is created in which you can create the SVRPGM, MODULES, and FILES. This unique library 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 table inphpkgdeffut3
. - Enterprise Server: Checks the status of the other servers to see if BSFNs are complete. Checks its own status to see if BSFNs are complete.
- Enterprise Server: When the dll and specs are finished, if the compress feature for
server is enabled, the system compresses the
.dll
,.so
,.sl
, and.SRVPGM
files on the Primary Enterprise Servers. The Primary Enterprise Server sends a message to all other servers to compress. - Enterprise Server: Transfers the compressed files and the
compress.inf
file back to the Deployment Server under the <packagename>/<machine type> directory. - UNIX/Windows: Under the deploy location, creates the package name under the bin64 and specs folders in these paths, respectively: <pathcode>\bin64\<package name> and <pathcode>\spec\<package name>.
- IBM i: Creates a new library with the package name.
- IBM i: Copies SVRPGM, MODULES, and FILES from the unique library to the package name library.
- UNIX/Windows: Copies the package bin64 directory to the <pathcode> \bin64\<package name> directory.
- Under <pathcode>\spec\<package name>, creates the
spec.ini
file with the database datasource location for Central Objects. - Enterprise Server: Checks the
jde.ini
file 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
file or F96215 table with 'Y
', then the system creates aE1_APP_xxxx.jar
file under the package name directory on the Enterprise Server. This jar file contains the bin64 directory and thespec.ini
populated with the package name. The jar file is used by the Server Manager to create a new Enterprise Server instance. -
Client machine: Checks client build status to see if the client build is complete. Continues to check the status until the build is complete.
-
Enterprise Server: Transfers the server log (
svrpkgbuild.log
) from each server to the Deployment Server under <packagename>\serverLogs directory. -
Enterprise Server: Transfers the files located under the
text
directory on each Enterprise Server to the Deployment Server under <packagename>\serverlogs\<server name>\text. -
Enterprise Server: Transfers the files located under the
CompileLogs
directory on each Enterprise Server to the Deployment Server under <packagename>\serverlogs\<server name>\CompileLog. -
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. -
The process is complete. The client build is initiated from the Deployment Server Services running on a thread parallel to the server package build.
-
Deployment Server: Runs the client package initiated from the Deployment Server Services. A message is sent from the Primary server to the Deployment server to start the client build.
-
Deployment Server: Initializes the client package and sets the Net Changed flag.
-
Deployment Server: Creates the object list from the F96225 table.
-
Deployment Server: Creates the package
inf
file. -
Deployment Server: Gets all the
SBF
files from the F98780R repository table. Builds the BSSV - Business Services on a separate thread. -
Deployment Server: Copies the files from the active package to the new package. The system copies bin64, lib64, obj, source, include, source64, include64, and rest.
-
Deployment Server: Waits for the Enterprise Server to copy the new Net Changed objects to the Deployment Server.
-
Deployment Server: Compiles the
.c
and.h
files using Busbuild. -
Deployment Server: Creates the
spec.ini
file that contains the package name and the Central Objects data source. Thespec.ini
file points to specs of the package tables in the Central Objects data source. The local spec database is no longer created. -
Deployment Server: Waits for compilation of the business functions and the BSSV build to complete.
-
Deployment Server: Compresses the directories on the Deployment Server if compression is selected.
The Client and Server package build is complete. You can now deploy the server package.