Electronic Messaging Service Oracle FLEXCUBE Universal Banking Release 12.0 [May] [2012]
Table of Contents EMS Interface 1. ORACLE FLEXCUBE ELECTRONIC MESSAGING SERVICE... 1-1 1.1 INTRODUCTION... 1-1 1.2 PROCESSING INCOMING MESSAGES... 1-1 1.2.1 For Delivery Mode - Folder... 1-1 1.2.2 For Delivery Mode - Queue... 1-1 1.3 PROCESSING OUTGOING MESSAGES... 1-1 1.3.1 For Delivery Mode - Folder... 1-1 1.3.2 For Delivery Mode - Queue... 1-2 1.4 PREREQUISITE... 1-2 1.5 DEFINING FCUBS PROPERTIES... 1-2 1.5.1 For Delivery Mode - Folder... 1-2 1.5.2 For Delivery Mode - Queue... 1-3 1.6 MAINTAINING MESSAGE MEDIA... 1-5 1.7 MAINTAINING MESSAGE MEDIA CONTROL... 1-6 1.8 MAINTAINING FOLDER STRUCTURE... 1-8 1.8.1 For Delivery Mode - Folder... 1-8 1.8.2 For Delivery Mode - Queue... 1-8 1.9 COMMUNICATION WEBLOGIC AND MQ SETUP... 1-9 1.9.1 EMS Out... 1-9 1.9.2 EMS In... 1-10 2. SCHEDULING JOBS... 2-1 2.1 INTRODUCTION... 2-1 2.2 MAINTAINING JOBS... 2-2 2.3 CONTROLLING JOBS... 2-4
1. Oracle FLEXCUBE Electronic Messaging Service 1.1 Introduction The EMS or the Electronic Messaging Service is a messaging interface between external systems and Oracle FLEXCUBE. This service is implemented with the help of Quartz Scheduler one each for In and Out processing. This service enables a connection between Oracle FLEXCUBE and the external systems source for sending and receiving information. The in-service connects to the external system resource (Windows machine, UNIX machine or MSMQ server) and transfers the data to the local machine, where the message is processed and uploaded to Oracle FLEXCUBE. The out-service polls on an Oracle FLEXCUBE out table. As soon as a message is generated in the out table, it is picked up, formatted if required (for example, as an MS-Word document) and delivered to the external system through one of the delivery modes (FTP, MSMQ etc.). 1.2 Processing Incoming Messages Incoming messages are processed for various delivery modes as described under the following headings. 1.2.1 For Delivery Mode - Folder The message files are to be placed in the EMS\SWIFT\In\Ready. The incoming message service (In-service) moves the file to the folder EMS\SWIFT\IN\WIP. Once these processes are completed, the file is moved to the folder EMS\SWIFT\IN\PROCESSED. 1.2.2 For Delivery Mode - Queue The messages are placed by the external system in the in queue. MDB listens to the Queue and processes the message. Once the processing is completed, the message is deleted from the in Queue. The message is uploaded to mstb_dly_msg_in table. In case the process fails, the message is moved to DLQUEUE. 1.3 Processing Outgoing Messages Outgoing messages are processed for various delivery modes as described under the following headings. 1.3.1 For Delivery Mode - Folder FTP: The messages are selected from mstb_dly_msg_out table, formatted if required and moved to the folder EMS\SWIFT\OUT\WIP. Further, the file is picked up and sent to the destination over FTP. The file is moved to folder EMS\SWIFT\OUT after processing. Mail: The messages are selected from mstb_dly_msg_out table, formatted if required and moved to the folder EMS\SWIFT\OUT\WIP. Further, the file is picked up and sent by mail. Once the processing is completed, the file is moved to folder EMS\SWIFT\OUT. Swift: The messages are selected from the mstb_dly_msg_out table, formatted if required and moved to the folder EMS\SWIFT\OUT\WIP. From this folder, the file is picked up and moved to EMS\SWIFT\OUT. 1-1
1.3.2 For Delivery Mode - Queue The messages are selected from mstb_dly_msg_out table, formatted if required and are sent to the out queue. 1.4 Prerequisite While creating EAR file, you need to copy the quartz.jar file to the installer library. The download location and instruction are given in the following table: Component License Information Download Location Instructions Quartz 1.6.6 (Required if the customer opts for Quartz as the scheduler) http://www.quartzscheduler.org/docs/lice nse.html Download the file quartz- 1.6.6.zip from the following URL: http://www.quartzscheduler.org/download/do wnload-catalog.html Extract quartz- 1.6.6.zip and copy the file Quartz-1.6.6.jar to the following directory: {INSTALLER_DIR}\Libr ary\plugin-quartz Before you deploy the application, you need to execute the quartz script in Oracle FCUBS database. 1.5 Defining FCUBS Properties While creating property file, you need to ensure that the EMS parameters are defined. These parameters will be set in fcubs.properties file. For details on creating property files, refer to the chapter Creating Property File for Oracle FLEXCUBE in the installation manual Setting up Property File. 1.5.1 For Delivery Mode - Folder You need to specify the parameters given in the following table. Field EMS_INT_QCF EMS_OUT_JMS_DLQ EMS_IN_JMS_DLQ EMS_FILE_TRANSFER_MODE Description Internal queue connection factory Example: EmsQcf Out messages dead letter queue Example: OTIFY_QUEUE_DLQ In messages dead letter queue Example: NOTIFY_QUEUE_DLQ Mode of file transfer Example: FTP etc. 1-2
Field FTP_SRVR FTP_ID FTP_PWD EXG_SRVR FRM_ADDR FILE_TYPE Description FTP Server IP Address Example: 169.165.98.11 - if file transfer mode is FTP FTP server user ID, if file transfer mode is FTP FTP server password Example: 2fb0x66QSug= (FTP server password in encrypted format) E-mail server IP address or host name Example: mail.oracle.com Source of E-mail address Example: ofsstest@oracle.com File type Example:.txt,.xlsx etc. SWIFT_FORMAT 1 MSG_DELIMITER MSG_TERMINATOR MEDIA YES YES SWIFT 1.5.2 For Delivery Mode - Queue You need to specify the parameters given in the following table. Field EMS_EXT_QCF EMS_INT_QCF EMS_OUT_JMS_DLQ EMS_IN_JMS_DLQ EMS_INIT_CTX_FACT Description Out queue connection factory - External system Internal queue connection factory Example: EmsQcf Out messages dead letter queue Example: NOTIFY_QUEUE_DLQ In messages dead letter queue Example: NOTIFY_QUEUE_DLQ Application server context factory class in which server external queue is created Example: weblogic.jndi.wlinitialcontextfactory 1-3
Field EMS_PRVDR_URL EMS_QUEUE_PRINCIPAL EMS_QUEUE_CREDENTIALS EMS_FILE_TRANSFER_MODE FTP_SRVR FTP_ID FTP_PWD EXG_SRVR FRM_ADDR FILE_TYPE Description IP address of application server in which server external queue is created Example: Weblogic server t3://127.0.0.1:7001 user ID to access the application server in which external queue is created Password to access the application server in which external queue is created Mode of file transfer Example: FTP etc. FTP server IP address Example: 169.165.98.11 (if file transfer mode is FTP) FTP server user ID (if file transfer mode is FTP) FTP server password Example: 2fb0x66QSug= (FTP server password in encrypted format) E-mail server IP address or host name Example: mail.oracle.com Source of E-mail address Example: ofsstest@oracle.com File type Examples.txt,.xlsx etc. SWIFT_FORMAT 1 MSG_DELIMITER MSG_TERMINATOR MEDIA YES YES SWIFT 1-4
1.6 Maintaining Message Media You can invoke the Message Media Maintenance screen by typing MSDMEDIA in the field at the top right corner of the Application tool bar and clicking the adjoining arrow button. Media Code Specify the media code of the media that is used for message propagation. Example: SWIFT, MAIL etc. Media Number This is the media number. Media Description This is the description of the media. Message Suffix Specify the suffix to be used in the message. Message Terminator Specify the terminator used for terminating the message. Number of Characters Specify the maximum number of characters that can go in a single message. 1-5
Media Priority Specify the priority level of the message. The message is processed with the concerned media based on the priority level defined. Test Word Required NA Stop Processing In case you have selected the media as SWIFT, you can check this box to process only one. If you do not check this, the system will process all the messages. Padding Required Check this box to enable addition of padding letters at the end of each message. 1.7 Maintaining Message Media Control You can invoke the Message Media Control Maintenance screen by typing MSDMCS in the field at the top right corner of the Application tool bar and clicking the adjoining arrow button. Node Specify the DB instance name. Media Control System Specify the media control system. 1-6
Media Specify the media code. The option list displays all valid media codes maintained in the system. Choose the appropriate one. Status Specify the status. You can choose one of the following: Active Passive Delivery Type Specify the mode of delivery. You can choose one of the following delivery types: Folder Queue If you choose Folder as the delivery type, you must specify the In Directory and the Out Directory. Further, after selecting Folder, if you check the option Unix Swift Server, you must specify the Unix In-Directory and the Unix Out-Directory. You need to maintain the In-Directory and Out-Directory for Windows Server. In Directory Specify the directory in which the external system should place the message files. This is applicable in case of EMS_IN messages, only if the delivery type is selected as Folder for a Windows Server. Out Directory Specify the directory from which the system picks up the message files to be sent to the external system. This is applicable only in case of EMS_OUT messages, for a Windows Server. Unix In Directory Specify the directory in which the external system should place the message files. This is applicable in case of EMS_IN messages, only if the delivery type is selected as Folder for a UNIX Server. Unix out Directory Specify the directory from which the system picks up the message files to be sent to the external system. This is applicable only in case of EMS_OUT messages, for a UNIX Server. In Queue Specify the queue in which the external system will place the message files. This is applicable in case of EMS_IN messages, only if the delivery type is selected as Queue. Out Queue Specify the queue from which the system picks up the message files to be sent to the external system. This is applicable only in case of EMS_OUT messages. 1-7
Unix Swift Server Check this box to indicate that a UNIX server is used. For delivery type Folder, if you check the option Unix Swift Server, you must specify the Unix In-Directory and the Unix Out-Directory. Message Queue Specify the queuing software used by the bank. 1.8 Maintaining Folder Structure You need to set up directory structures for various delivery modes as shown under the following headings. 1.8.1 For Delivery Mode - Folder You need to maintain the following folder structure in the Application Server machine. The sub-folders for the media MAIL and SWIFT exist under the parent folder EMS. 1.8.2 For Delivery Mode - Queue You need to maintain the following folder structure. The sub-folders for the media SWIFT exist under the parent folder EMS. 1-8
1.9 Communication Weblogic and MQ Setup 1.9.1 EMS Out Scheduler/MDB to Connection Factories Scheduler and MDB should point to different connection factories. Example EMS_INT_QCF = EmsQcf1 (create the same in WebLogic and mention the same while creating fcubs.properties file) EMS_EXT_QCF = EmsQcf (use this while creating the binding file) Scheduler/MDB to Queue Names Scheduler and MDB should point to different queue names. Example Provide EMS_OUTQUEUE while maintaining the job and creating property file. Provide EMS_OUT while maintaining message media control. Use EMS_OUT while creating binding file and create it in IBM MQ. Parameter Corrections Correct the following parameters in Oracle FCUBS properties file: EMS_INIT_CTX_FACT = com.sun.jndi.fscontext.reffscontextfactory Initial context factory for WAS should be com.sun.jndi.fscontext.reffscontextfactory EMS_PRVDR_URL = file:/c:/jmsobj Parameter Comment Comment the following parameter: #EMS_QUEUE_PRINCIPAL = admin Binding Queues/Queue Managers Binding of the Queues and Queue Managers should me done as mentioned under section 1.8 Binding the Queue with the JNDI provider in the document WAS_GW_WebSphereMQ_Installation.doc (location: FC_UBS_V.UM_11.0.0.0.0.0.0\INSTALL- DOCS\Gateway_Installation.zip\WAS). Some sample commands are given below: Here, Define xaqcf(emsqcf) qmgr(qm_ddhp0701) host(10.184.45.153) port(1414) tran(client) DEFINE Q(EMS_INQUEUE) QUEUE(EMS_INQUEUE) QMGR(QM_ddhp0701) DEFINE Q(EMS_OUT) QUEUE(EMS_OUT) QMGR(QM_ddhp0701) EmsQcf is the connection factory QM_ddhp0701 is the name of the queue manager name 10.184.45.153 is the machine in which the MQ is hosted 1-9
1.9.2 EMS In 1414 is the port configured in MQ EMS_OUT is the out queue EMS_INQUEUE is explained below Create the EMS in-queue in IBM MQ (Example - EMS_INQUEUE). Create the equivalent queue under JMS administered objects in MQ. Sample format of the file weblogic-ejb-jar.xml in the scheduler for EMSIN is given below. <weblogic-enterprise-bean> <ejb-name>emsinmdb</ejb-name> <message-driven-descriptor> <pool> <max-beans-in-free-pool>5</max-beans-in-free-pool> <initial-beans-in-free-pool>5</initial-beans-in-free-pool> </pool> <destination-jndi-name>ems_inqueue</destination-jndi-name> <initial-context-factory>com.sun.jndi.fscontext.reffscontextfactory</initial-contextfactory> <provider-url>file:/d:/temp/fcmhmq1/</provider-url> <connection-factory-jndi-name>emsqcf</connection-factory-jndi-name> <jms-polling-interval-seconds>20</jms-polling-interval-seconds> </message-driven-descriptor> <transaction-descriptor> <trans-timeout-seconds>3600</trans-timeout-seconds> </transaction-descriptor> </weblogic-enterprise-bean> 1-10
2.1 Introduction 2. Scheduling Jobs All jobs for scheduling are stored in a static data store and each job is associated with a name indicating where the job has to execute. Jobs are created in the Application Server and are scheduled based on this data. The job name should be unique across the schedulers available in the system. For further details on scheduler property definition, refer to the section Setting Scheduler Properties in the installation manual Setting up Property File. When the application server starts, the job details from static data store will get cached. These cached jobs will then be scheduled using either the quartz or flux scheduler. For example, the notification process can be handled by the job schedulers as follows: 1. When a contract is created in Oracle FLEXCUBE, 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). 2. The scheduled job polls the notification log table for unprocessed records and validates whether notification is required. 3. If notification is not required, then the process status is set to N (not required) in notification log table. 4. 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 notification log table. 2-1
2.2 Maintaining Jobs You can maintain new job codes and the other relevant details with respect to the job using Job Maintenance screen. To invoke the Job Details screen, type STDJOBMT in the field at the top right corner of the Application tool bar and click the adjoining arrow button. Job Code Specify a unique code that identifies the job. Job Description Enter a brief description as to the nature of the job. Job Group Specify the name of the group to which the job belongs (EMS/Notification/Report). Job Type Specify the type of job. You can choose one of the following job types: PL/SQL Java Max Number Instances Specify the maximum number of threads applicable to the job at application instance. 2-2
Schedule Specify the scheduler name. This is the Quartz Scheduler Factory Name mentioned in the Quartz properties file. Trigger Type Specify the method of triggering the job. You can choose one of the following trigger types: Simple Crone Scheduler Type Specify the type of scheduler for the job. You can choose one of the following scheduler types: Quartz Flux Priority Specify the job priority level. Choose the appropriate one from the drop-down list. Message Queue Specify the message queue. For EMS_IN, EMS_OUT and Notification, you can select Internal Queue. Cron Expression Specify the Cron job details. Class or Procedure If job type is PL/SQL, you need to enter the procedure for the job. If the job type is Java, you need to specify the Java Class. Number of Submissions Specify the number of submissions. To set the number of submissions to infinite, enter -1 (infinite). Interval in Seconds Specify the interval of triggering the job in terms of seconds. Trigger Listener You can enable automatic triggering or a certain event after processing the message. Specify the trigger name here. Once the message has been looked up, the system will trigger this event. DS Name Specify the JNDI name. While processing the job, the system will use this JNDI for connection DB. Logging Required Check this box to have the processing of the job logged into a file. 2-3
Start-up Mode Specify the start-up mode. You can choose one of the following: Auto Manual 2.3 Controlling Jobs The details of jobs that are scheduled can be viewed using the Job Details screen. In this screen you can pause or resume a job that has been scheduled. You can invoke the Job Details screen by typing SMSJOBBR in the field at the top right corner of the Application tool bar and clicking the adjoining arrow button. You can a search for a scheduled job by specifying any of the following: Job Name Select the name of the job that you want to search for from the option list provided. State Select the state of the job you want to search for from the option list provided. The following options are possible for Quartz schedulers: Acquired Waiting Blocked 2-4
Paused For Flux schedulers, the options are as follows: Scheduler Firing Waiting Paused Select the scheduler to which the job you want to search for has been assigned. Job Group Select the group to which the job you want to search for belongs, from the option list provided. Next Fire Time Select the time when the job is scheduled to be run next. Click Search button to view the details related to the job. You can pause a job by selecting it and clicking the Pause button. You can resume a paused job by clicking Resume button and the job is scheduled for its next fire time. A job can take any of the following states. COMPLETE - This indicates that the trigger does not have remaining fire-times in its schedule. NORMAL - This indicates that the trigger is in the "normal" state. BLOCKED - A job trigger arrives at the blocked state when the job that it is associated with is a Stateful job and it is currently executing. PAUSED - This indicates that the job is manually paused from executing. ERROR - A job trigger arrives at the error state when the scheduler attempts to fire it, but cannot due to an error creating and executing its related job. Also, a job arrives at ERROR state when the associated class for the job is not present in class path. 2-5
Electronic Messaging Service [May] [2012] Version 12.0 Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 www.oracle.com/ financial_services/ Copyright [2012] Oracle Financial Services Software Limited. All rights reserved. No part of this work may be reproduced, stored in a retrieval system, adopted or transmitted in any form or by any means, electronic, mechanical, photographic, graphic, optic recording or otherwise, translated in any language or computer language, without the prior written permission of Oracle Financial Services Software Limited. Due care has been taken to make this document and accompanying software package as accurate as possible. However, Oracle Financial Services Software Limited makes no representation or warranties with respect to the contents hereof and shall not be responsible for any loss or damage caused to the user by the direct or indirect use of this document and the accompanying Software System. Furthermore, Oracle Financial Services Software Limited reserves the right to alter, modify or otherwise change in any manner the content hereof, without obligation of Oracle Financial Services Software Limited to notify any person of such revision or changes. All company and product names are trademarks of the respective companies with which they are associated.