How the System Builds an Update Server or Client Package from the Web

This section provides an overview of how the JD Edwards EnterpriseOne system builds an update server and client package from the seb. The beginning of each step states whether the process occurs on the client from where the build is performed or on the Deployment server, Primary Enterprise Server or Web Enterprise server.
Note: Any references to 64-bit apply to Tools Release 9.2.3 and higher.
  1. Web: Server Package UBE (R9621S) initiates the server package build.

  2. Web: UBE (R9621S) calls the bsfn B9600196 on the enterprise server which calls into the package kernel code.

  3. Web Enterprise Server: The system gets the primary server name and sends a jdenet message to the primary server to start the package.

  4. 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.

  5. Primary Enterprise Server: The system initializes the primary enterprise server.

  6. Primary Enterprise Server: Creates directories on the primary enterprise server.

  7. Primary Enterprise Server: Sends a message to the deployment server to initialize the deployment server.

  8. Deployment Server: Creates the directories on the deployment server.

  9. Primary Enterprise Server: The system builds a link list of objects in the update package from the F96225 table. It builds the list of business functions, NER, and Table ER in a file called "bsfnfile.txt". A list of bitmaps are listed in a file called "bitmapfile.txt". Both files are transferred from the <package name>\work directory to the deployment server.

  10. Primary Enterprise Server: If F00942T->emdbsrcflg=1, then the system opens the link list of objects and if the F9860->sigtffu1, it retrieves the par file from the F98780R and puts them in the checkin\include, checkin\include64, checkin\source, checkin\source64 and checkin\res directories.

  11. Enterprise Server: (Release 9.2.7.3) For each object, the system validates each BSFN and TBLE if there is a record in the F98780R table, the record has a par file, and if the .h and/or .c file exist in the checkin location.
  12. Enterprise Server: (Release 9.2.7.3) The system validates each UBE, BSVW, and APPL with F9860->sigtffu1=1 if there is a record in the F98780R table, the record has a par file and for a UBE and BSVW, if a .h file exists in the checkin location and for an APPL, if a bitmap exists.
  13. Enterprise Server: (Release 9.2.7.3) If the validation fails and the Repair Repository flag is set, then the system inserts a record into the F96225 table with the package name, pathcode, primary server name, object name, version = “REPAIR”, operation = “11”, and date and time.
  14. Enterprise Server: (Release 9.2.7.3) For each UBE, BSVW, and APPL which does not have F9860->sigffu1=1, the system inserts a record into the F96225 table as a REPAIR record. The client checks if there is a file associated with it and repairs it.
  15. Enterprise Server: (Release 9.2.7.3: If the REPAIR Repository flag is set and there are records in the F96225 table that need to be repaired, the ssytem sends a message to the deployment server to repair the records.
  16. Deployment Server: (Release 9.2.7.3) If the Repair Repository flag is set, the system selects F96225 records where package name, pathcode, primary server, operation=”11”, and status = ERROR. For each record retrieved from the F98780R table, the system evaluates what is wrong or missing and recreates the par file. The system then inserts the record back into the F98780R and F98780H tables.
  17. Enterprise Server: (Release 9.2.7.3) If the Repair Repository flag is set, the system selects F96225 records where package name, pathcode, primary server, operation=”11” and status = ERROR. It retrieves and validates each record from the F98780R table if there is a .h or/and .c file or if there is a bitmap. If the validation is successful, the system sets the F96225 record to status=SUCCESS.
  18. Primary Enterprise Server: On the primary enterprise server, if the objects in the update package contain NER, on the primary enterprise server, the package build checks if there is a difference between 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 any differences exist, then the package build 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. The locks are then released.

  19. Primary Enterprise Server: The system generates named event rules (NERs) on the primary enterprise server. The generated files are created either in the checkin\source and checkin\include directories or checkin\source64 and checkin\include64 directories depending on the bitness.

  20. Primary Enterprise Server: The primary enterprise server copies server only .c and .h files to the source and include directories respectively. If multiple servers are available, then the primary enterprise server transfers the .c and .h files to the other enterprise servers under the source and include directories.

  21. Primary Enterprise Server: If 64-bit is enabled in the release master, only the include64 and source64 artifacts are copied into the checkin location (Starting with Tools Release 9.2.4)

  22. Primary Enterprise Server: Copies the parent dlls from the parent package to the update package. This dll is used in the compile of the business functions for the update package. If there are multiple servers, the primary enterprise server sends a message to the other servers to start the build of business functions.

  23. (Starting with Tools Release 9.2.6.0) IBM i: Opens the F9603 to get the unique library of the parent package from phpkgdeffut3. It copies SVRPGM to the update package library, and compiles the business functions and links with the library location of the parent package.
  24. Primary Enterprise Server: The primary enterprise server builds specs from central objects, placing the results in the package's spec tables, <table name>_<package name> (for example, F98710_DV920FA) in the database. The 17 tables are created and the records for the objects are inserted into the new tables. The manifest table is created with the name of the package and all the objects in the update package.

  25. Primary Enterprise Server: If the client package was selected, the primary enterprise server transfers the files from the checkin\source, checkin\include, checkin\source64 and checkin\include64 to the deployment server package include, source, include64 and source64 directories.

  26. Primary Enterprise Server: If client package was selected, the primary enterprise server transfers back res bitmaps from the checkin\res to the deployment server in the <package name>\res directory.

  27. Primary Enterprise Server: The system waits for specs to finish and for dlls to finish building. If there were other servers, it will wait for them to complete.

  28. Primary Ent Server: When the dlls and specs are finished building, if the compression was selected for the server, then the system compresses the .dll, .so, .sl, and .SRVPGM files on the enterprise servers.

  29. Primary Enterprise Server: The primary enterprise server transfers the compressed files and the compress.inf file back to the deployment server under the <packagename>/<machine type> directory.

  30. Primary Enterprise Server: The primary enterprise server transfers the server log (svrpkgbuild.log) from each server to the Deployment Server under <packagename>\serverLogs directory.

  31. Primary Enterprise Server: Transfers the files located under the text directory on each enterprise server to the deployment server under <packagename>\serverlogs\<server name>\text.

  32. Primary Enterprise Server: If 64-bit is enabled in Release Master, only the include64 and source64 artifacts are copied to the client and the res files to the deployment server (Starting with Tools Release 9.2.4.0).

  33. Primary Enterprise Server: Transfers the files located under the CompileLogs directory on each enterprise server to the deployment server under <packagename>\serverlogs\<server name>\CompileLogs.

  34. 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.

    If this is a server only package, the process is complete. However, if you have selected to build a client, the system also performs the next steps.

  35. Web R9621S UBE: Runs Client Package UBE R9622C to initiate the client package build.

  36. R9622C call B9600186 for client package build.

  37. Web Enterprise server: Create message and send message to deployment server to start the build.

  38. Web enterprise server: Wait for the build to finish

  39. Deployment Server: The system creates the package inf file.

  40. Deployment Server: The system compiles the .c and .h files using Busbuild. Busbuild copies the dll from the parent package to build the update business functions into the parent package dll.

  41. Deployment Server (Starting with Tools Release 9.2.5.0): No specs are built. For each object a .par file is created under the spec\"package name" directory.\

  42. Deployment Server (Prior to Tools Release 9.2.5.0): The system builds the specs from the package's spec tables <table name>_<package name> (for example, F98710_DV920FA) into TAM files located under the spec directory.

  43. Deployment Server: The system waits for the business functions to compile and the spec build to complete.

  44. Deployment Server (optional): The system compresses the directories on the Deployment Server. This is only necessary if building an ESU. The client install process does not use the compressed update package files.

  45. Deployment Server: Send message back to Enterprise server that client package is complete.

  46. Web Enterprise Server:This server receives the message and completes processing both R9621S and R9622C.