JD Edwards EnterpriseOne Architecture and Process Flow for IBM i
This flowchart illustrates the actions that the host server processes perform:
![Process Flow.](images/iseries_proc_flw.gif)
All communications between the client and the host server occur using sockets. The communications between JDENET_N (network processes) and JDENET_K (kernel processes) occur with shared memory.
The process flow is:
The STRNET command runs the master NETWORK (JDENET_N) job in a newly started subsystem. The jdenet_n Master process spawns jdenet_n slave and jdenet_k processes (also called kernels) at startup or as they are needed. JD Edwards EnterpriseOne uses a number of different types of kernels to handle different types of processing, even though all of these have the same process name in the operating system (jdenet_k). The definitions for the number of processes to start and what types to start are stored in the jde.ini file.
The JDENET_N process listens to the socket (port) as specified in the jde.ini file by the keywords ServiceNameListen and ServiceNameConnect. These two keywords should be set to the same number, and this number must be the same for every client who wants to connect to the JD Edwards EnterpriseOne server. The definitions for the particular jdenet_k processes to start are also given in the jde.ini file. They are listed in the sections headed by [JDENET_KERNEL_DEFx]. Each of these entries lists the type of jdenet_k processes to start and the maximum number of JDENET_K processes of this type to start.
The number of JDENET_N slave processes to start is listed in the jde.ini file under the keyword maxNetProcesses. The purpose of these slave processes is to provide parallel processing for the job of listening to the socket and to put the associated messages on the message queues for the JDENET_K processes to finish.
JDENET_K processes (kernel processes) do the actual work on the enterprise server. When a JDENET_K process starts, it can be any type of kernel process. The JDENET_N process assigns each kernel process to a certain type.
The JDENET_K process that becomes a CallObject kernel has the job of calling business function logic on the server. Business function logic is written in C code and compiled into Service Program (SRVPGM). SRVPGM is loaded onto the JDENET_K processes and then called directly through a C function call.
The JDENET_K process that becomes a batch process kernel waits for requests to run batch processes from the client. When a request to run a batch process is submitted, these events occur:
JDENET_K (UBE kernel) adds a record to the F986110 database table with a status of W for waiting.
JDENET_K (UBE kernel) submits a job to the queue
If you are using native IBM i job queues, JDENET_K submits a job to the IBM i queue. This job calls the JD Edwards EnterpriseOne program PRINTUBE on the IBM i enterprise server.
If you are using the JD Edwards EnterpriseOne queue kernel, JDENET_K sends a message to the queue kernel, alerting it that a new job request was submitted. When the job is ready, the queue kernel executes the PRINTUBE program.
The PRINTUBE process runs the batch application, and changes the status of the record in the F986110 table to P for processing.
If the batch application runs successfully, the software changes the status of the record in the F986110 table to D for done.
If the batch application fails, JD Edwards EnterpriseOne changes the status of the record in the F986110 table to E for error.