2 Job Scheduling
This topic describes the job scheduling process.
- Quartz - Provides a scheduler interface to enable operations such as scheduling and unscheduling of jobs and starting, stopping, and pausing the scheduler
- Flux - Software component used for performing enterprise job scheduling
Defining Jobs
Refer to the topic unresolvable-reference.html#GUID-12719C11-64E0-44E2-9945-216AB701004A for detailed information.
Scheduling Jobs
Note:
The Job Name must be unique across the schedulers available in the system.- When a contract is created in Oracle FLEXCUBE Universal Banking, a database level trigger acting on the contract main table inserts details like base table name, primary key fields, primary key values, and branch code into a notification log table and sets the process status of the inserted record as U (Unprocessed).
- The scheduled job polls the notification log table for unprocessed records and validates whether notification is required.
- If notification is not required, then the process status is set to N (Not Required) in the notification log table.
- If notification is required then notifications are sent to the respective destination and the process status of the record is changed to P (Processed) in the notification log table.
Controlling Jobs
Refer to the topic unresolvable-reference.html#GUID-12CD93FB-84E6-4A8B-A698-644ED5200784 for detailed information.
Notification Process
- The trigger on the base table inserts key details into a static notification log table instead of Oracle AQ.
- Once the Job is triggered, a request is sent to the EJB layer from the job execution class and the notification log table is polled for unprocessed records.
- Each unprocessed record is locked.
- The record is verified against the notification maintenance and checked whether the notification is to be sent or not.
- If a notification is to be sent, pre-notification message XML is built and it is sent to internal notify_queue(JMS queue).
- The job is then rescheduled to fire next time based on the previous execution.
- The Notification MDB listens on the internal notify JMS queue.
- On any message received, the MDB identifies which schema to connect using the JNDI name being present as part of the message XML.
- The Gateway notification processing package is called from MDB to build the actual notifications.
- In MDB the notifications built are processed and sent to the destination specified in the corresponding notification.
- In case of any exception, the whole transaction is rolled back.
- If all notifications are successfully processed then the transaction is committed.
Figure 2-1 Notification Process in Scheduler
Viewing Notification Parameters
Refer to the topic unresolvable-reference.html#GUID-2C602EAC-E4FD-4441-8188-27DBA231FB0C for detailed information.
EMS Process with Scheduling Architecture
- Incoming EMS Process
A job is scheduled to poll the incoming folder on a timely basis. Once a message is received in the folder, the job picks the message and sends it to an internal JMS queue. An MDB listening in the queue will read the message and identifies the media and process the message.
- Outgoing EMS Process
A job is scheduled to poll the outgoing messages that are generated but not handed off. Each message polled will be sent to an internal JMS queue. An MDB, acting upon the internal JMS queue will pick the message from the queue and sends the message to the appropriate destination (Folder, e-mail, or JMS queue).
Approach
The Outgoing EMS Process happens in two layers. The EMS process as part of jobs in the FCJ scheduler polls the outgoing message table of Oracle FLEXCUBE Universal Banking for generated and un-send messages. The job then sends minimal data about the message to be handed off, to an internal JMS queue. The EMS process as part of an MDB that listens to the internal JMS queue to build the final message and to send to their intended destinations.
The Incoming EMS process happens in two layers. The EMS process as part of jobs in the FCJ scheduler, which polls the pre-configured folder for messages and sends the messages read, to the EMS internal queue. The EMS process as part of an MDB, that listens to the internal JMS queue identifies the message from the queue and calls the incoming messages service package in the backend to process the message. Additionally, the MDB can be made an independent unit to listen on external JMS to process incoming messages.
- Once the job is triggered, it polls for messages in a folder (Configured for Incoming messages).
- Each message is then sent to an internal JMS queue.
- The job is then rescheduled to fire next time.
- An MDB that listens on the internal EMS incoming queue will receive the message.
- The media details are identified and the incoming message processing package in the backend is called to process the message.
- In case of any exception, while processing, the message will be sent to a deferred queue.
- In case of messages directly arrive in the JMS queue instead of a folder; the same MDB will be configured to listen on a specific queue.
- Define Jobs
This topic explains systematic instructions to define jobs. - Maintain Jobs
This topic explains systematic instructions to maintain jobs. - Process Notification Parameters
This topic explains systematic instructions to process notification parameters.