Switch to standard view 
  Sybase logo
 
 
 



Trade Lifecycle Management White Paper

Published by Sybase Interoperability Services

October 2003


Contents


Overview

The purpose of this white paper is to document the implementation and configuration of a simple trade lifecycle scenario as well as discuss the issues encountered during testing.

The scenario used for testing was that of a customer sending a quote request and the vendor replying with a quote. For testing, the FIX 4.2 protocol was used in conjunction with the following products:

  • FinancialFusion GlobalFIX Adapter 5.0
  • FinancialFusion GlobalFIX Adapter for EAI 1.0
  • FinancialFusion Message Broker 6.0
  • Sybase Enterprise Portal 5.1
    • Sybase EAServer 4.2
    • Sybase Adaptive Server Enterprise 12.5
  • New Era of Networks e-Biz Integrator 3.6.1
  • New Era of Networks Process Server 3.9
  • IBM MQ Series 5.2
    • MQSeries classes for Java version 5.2.2
    • MQSeries classes for Java Message Service (JMS) 5.2.2

The following diagram depicts the testing environment as well as the flow of data used in the scenario. While the diagram depicts both a customer and a vendor environment, all testing was completed on a single machine running the Microsoft Windows 2000 operating system.


Implementation

The diagram above depicts a simple scenario where a customer creates stock quote requests and the vendor processes the request and responds to certain requests with an actual quote. This section will explain the details of the testing scenario.

  • A JSP was written as the front-end of the customer application. This JSP allowed the customer to enter a stock symbol and the number of shares they would like to receive a quote for. The JSP was made available as a JSP Portlet through Sybase Enterprise Portal (EP). Each quote request was submitted by the JSP to a Java servlet that processed the submitted values and sent a QuoteRequest message to the FinancialFusion GlobalFIX Adapter (FIX Adapter) using the FIX Adapter's Send API.
  • The customer's FIX Adapter was configured to communicate with the vendor's FIX Adapter and it sent the QuoteRequest message to the vendor.
  • The vendor's FIX Adapter then placed the QuoteRequest message on an IBM MQ Series (MQ) message queue as a JMS message via the FinancialFusion GlobalFIX Adapter for EAI (EAI Adapter).
  • The New Era of Networks e-Biz Integrator (EBI) was configured to listen on the MQ queue and picked up the message for processing.
  • EBI used rules and formats provided by the EAI Adapter to validate and route the QuoteRequest message. In this scenario, QuoteRequest messages that specified the stock symbol 'SY' were placed on a second MQ queue.
  • The New Era of Networks Process Server (PS) was monitoring this queue and evaluated each QuoteRequest message for further routing. In this scenario, if a QuoteRequest message specified a quantity greater than '1000' the message was processed into a colon delimited string containing the message id, stock symbol, and quantity and then routed to a Sybase EAServer (EAS) JMS message queue (other QuoteRequest messages were discarded for this simple scenario).
  • In EAS a Message Driven Bean (MDB) was configured as a listener on the JMS queue and picked up the newly formatted message.
  • The MDB broke apart the colon delimited string, created a Quote message with a hard-coded stock price, and sent the Quote message to the vendor's FIX Adapter via the FIX Adapter's Send API.
  • The vendor's FIX Adapter then sent the Quote message back to the customer's FIX Adapter where it was manually verified.

Configuration

The EP suite and MQ products should be installed first as the New Era of Networks and FinancialFusion products depend on those products already being installed. Please see Issue 1 before installing any of the FinancialFusion products. For other installation issues please consult the appropriate documentation for each product.

Once all of the products are installed you will need to preform several configuration tasks before you have a useable environment. This section will explain how to configure your environment to run the test scenario described above. Please review Issue 4 for information regarding the configuration of ASE before you begin configuring the rest of your environment. All of the necessary files for the test scenario can be found in the tlm_scenario.zip file, available here.

Configuring the FinancialFusion Message Broker

Database creation

Once the Message Broker is installed you will need to create a database for the design-time and run-time Message Broker repositories. (You may create two separate databases, one for design-time and one for run-time, however the testing environment placed both repositories in a single database.) This database must be created manually before the Message Broker Manager can create the database schema. Please see Issue 2 for details regarding the creation of the Message Broker database.

Creating the connection profiles

After you have created the Message Broker database you can use the Message Broker Manager to automatically create the database schema. In order to allow the Message Broker Manager to do this, you must first create a connection profile to your Message Broker design-time repository.

  1. Start the Message Broker Manager from: Start-->Programs-->FinancialFusion-->Message Broker 6.0-->Message Broker Manager
  2. Select Tools-->Connection Profiles from the menu bar or click the Connection Profiles button on the tool bar.
  3. In the Connection Profiles dialog click the New... button to create a new connection profile.
  4. Enter a name for the new connection profile in the New Profile dialog, ensure that the New Profile radio button is selected and that the Message Broker plug-in is selected, and then click the OK button.
  5. When the Connect to Message Broker dialog appears select whether this profile will connect to the design-time or run-time repository, enter the appropriate information to connect to the database you created manually and then click the OK button. (The Server name: field can be left as <Other> as it is not used in this case.)
  6. You should repeat these steps to create a connection profile for the run-time repository as well.

Automatic table schema creation

Once you have created your two connection profiles select the profile that corresponds to your design-time repository and click the Connect button in the Connection Profiles dialog. The first time you attempt to connect you will be prompted to create a new repository.

When you click the Yes button you will be asked to give the new repository a name. You must accept the default value of Message Broker (Please see Issue 5 for details.) Once you have given the repository a name the Message Broker Manager will create the table schema in the database your connection profile points to and connect you to the design-time repository.

Importing FIX collections

You will be unable to connect to the run-time repository until you import the appropriate FIX collections to your design-time repository and then deploy them to your run-time repository. The FIX Adapter comes with all of the necessary FIX collections for you to import into your design-time repository. These collections are available in XML files in the %FFSINSTALLDIR%\FIX\xmls directory. You may import the collections for all of the FIX versions, or you may import only the versions you will be using. The testing scenario only made use of the FIX 4.2 collections. To begin importing the FIX collections right-click on your design-time repository instance from the Message Broker Manager and select Import... from the pop-up menu.

The first XML file you must import is MsgCollection.xml this defines the top level message collection to which the specific FIX version collections will be added. Next you must import the following files:

  • FFSFIXAdmin.xml
  • FFSFIXAdminRoute.xml
  • FIXRawData.xml
  • FIXRawDataRoute.xml
  • FIXML12.xml

After these files have been imported you may import the FIX version specific XML files that you will be using. The test scenario only used FIX 4.2 and so the FIX42.xml and FIX42Route.xml files were imported. The only stipulation is that the 'Route' XML files be imported after the generic XML files (i.e. FIX42Route.xml after FIX42.xml). The import process may take a while to complete, however, if you suspect the import process may have stopped check the ASE error.log file located in the %SYBASE%\ASE-12_5\install directory for any possible error messages.

Deploying FIX collections

Once you have imported all of the necessary FIX collections you may deploy them to your run-time repository. To deploy the FIX collections right-click on your design-time repository instance from the Message Broker Manager and select Deploy to Connection Profile... from the pop-up menu.

Select the connection profile that corresponds to your run-time repository and click the Deploy button. The initial deployment will create and populate the table schema in the run-time repository database. The deployment process will also generate the associated Java class files. The Java source files and the class files are placed in the %MB60INSTALLDIR%\generated directory and are jarred together in the %MB60INSTALLDIR%\runtime directory. The deployment process may take a while to complete, however, if you suspect the deployment process may have stopped check the ASE error.log file located in the %SYBASE%\ASE-12_5\install directory for any possible error messages. Once you have successfully deployed your FIX collections to your run-time repository you can connect to your run-time repository through the Message Broker Manager using the connection profile you created for it.

Configuring the FinancialFusion GlobalFIX Adapter

Database creation

After installing the FIX Adapter you will need to create the FIX databases manually. The FIX Adapter comes with three SQL scripts you will use to create the necessary databases. These scripts can be found in the %FFSINSTALLDIR%\FIX\database\scripts directory. Issue 3 describes the necessary modifications that must be made to these scripts before you can successfully create the FIX databases in your environment. After you have modified the three scripts you can run them from the command line using isql as follows with a user who has been assigned 'sa' privileges:

isql -U<username> -P<password> -S<servername> -i<scriptname>

Creating the connection profiles

Once the databases have been created you may continue the configuration of the FIX Adapter from the GFIX Manager. Start the GFIX Manager from Start-->Programs-->FinancialFusion-->TradeForce for GlobalFIX 5.0-->GFIX Manager. Next you must create a connection profile to the FIXServer_cf database you created with the FIXServer_cf.sql.ase SQL script.

  1. Select Tools-->Connection Profiles from the menu bar or click the Connection Profiles button on the tool bar.
  2. In the Connection Profiles dialog click the New... button to create a new connection profile.
  3. Enter a name for the new connection profile in the New Profile dialog, ensure that the New Profile radio button is selected and that the FFS - FIX Manager plug-in is selected, and then click the OK button.
  4. When the New Connection Profile dialog appears enter the appropriate information to connect to the FIXServer_cf database you created and then click the OK button.

Connect and configure the default server

Once you have created your connection profile select the profile you created and click the Connect button in the Connection Profiles dialog.

After connecting to your FIXServer_cf database you must configure the default server instance. Navigate through the GFIX Manager to the default server instance.

Select the server instance, right-click it, and select Properties... from the pop-up menu. Please see Issue 6 and Issue 7 for information on modifying the values in the Server Properties... dialog.

Starting the default server

Once the server properties have been configured correctly you may start the server instance. Simply select the server instance in the GFIX manager, right-click it, and select Start from the pop-up menu. When the Starting Server... dialog reports that it is done you can click the Done button to return to the GFIX Manager.

If the server started successfully, you will see a message stating that the server is running on the Server Message Load tab in the GFIX Manager.

If the server did not start successfully, you can check the FIXServer.log file located in the %FFSINSTALLDIR%\FIX\bin directory for any error messages.

Session creation

Once the server has started you can create Sessions that will communicate and send FIX messages. In the testing scenario, both the customer and vendor sessions were created on the same server instance for simplicity. The following steps describe how to create these two sessions.

  1. To create the customer session navigate through the GFIX Manager to the Sessions folder, right-click it, and select New Session... from the pop-up menu.

  2. In the Connection dialog that appears enter the following information and then click Next >:
    Session ID: CustSession
    Sender Comp ID: CustComp
    Target Comp ID: VendComp
  3. In the Target IP Address and Target Port dialog enter the following information and then click Next >:
    Select Standard TCP/IP
    Target Port Number: 8888
    Target IP Address: 127.0.0.1
  4. In the Protocol dialog select 4.2 as the FIX Version you will be using and then click Next >.
  5. In the Handler dialog set the fields as shown below and then click Next >:
    Select FIX42 as the FIX Message Set
    Select FIXML12 as the FIXML Message Set
    Select Support Callback
    Select Support Raw Data Message
    Select Route_FIXRawData as the Routing Set
  6. You may leave the remaining fields with their default values on the Business Time, User Callout, Customized Encryption, Persistent Type, Advanced, Automatic Features, and Logger Buffer Size dialogs and then click Finish.

To create the vendor session repeat the steps above but enter the following information at step 2:

Session ID: VendSession
Sender Comp ID: VendComp
Target Comp ID: CustComp

Connecting to the sessions

You may now connect to the sessions by selecting a session from the GFIX Manager, right-clicking it, and selecting Connect from the pop-up menu. Since the two sessions are configured to communicate with each other and are running on the same server instance connecting one session also connects the other session. You can check that the sessions are connected by clicking the Start button on the Session Status tab for each session in the GFIX Manager and verifying that the Connection Status field says 'Connected'.

Configuring the IBM MQ Series Queues

Several MQ queues were used in the test scenario. To create the necessary queues open the MQSeries Explorer from Start-->Programs-->IBM MQSeries-->MQSeries Explorer, navigate to your queue manager, expand the queue manager, and right-click the Queues folder, then select New-->Local Queue from the pop-up menu.

Enter ERROR as the queue name in the dialog that appears and repeat this process to create the following queues:

  • FROM_CUST
  • NOHIT
  • NTOF
  • OUT
  • QR_SY
  • QR_OTHER

Configuring the FinancialFusion GlobalFIX Adapter for EAI

After you create the MQ queues, you can configure the GlobalFIX Adapter for EAI (EAI Adapter). If you have not already done so, execute setup.exe from the %FFSINSTALLDIR%\FIX\add-ons\JMSAdapter directory to install the EAI Adapter. After the installation completes you will need to run the installJMSEAServer.bat file and modify the JMSFIXAdapter.props file located in the %FFSINSTALLDIR%\FIX\add-ons\JMSAdapter\bin directory. In the JMSFIXAdapter.props file you will need to modify the following properties to conform to your environment:

callback.queue.manager=<queue_manager_name>
callback.queue.channel=<channel_name>
callback.session.CustSession=OUT
callback.session.VendSession=FROM_CUST
callback.message.property.OPT_APP_GRP=GFIX_MSGS
callback.message.property.OPT_MSG_TYPE=FIX.IF.Blob
This will enable the VendSession to place FIX messages on the FROM_CUST queue. The test scenario did not make use of the JMSFIXReceiver piece of the EAI Adapter as the scenario accessed the FIX Adapter's Send API directly.

Configuring the New Era of Networks e-Biz Integrator

Please see the EBI documentation for detailed steps to create the rules and formats database using inst_db.exe.

Modifying the nnsyreg.dat file

After you create the rules and formats database you must to modify the nnsyreg.dat file located in the %NNSY_ROOT% directory. In the file you must define configuration information to communicate with your MQ queues. Modify the nnsyreg.dat file as follows:

  1. Create a Session entry with the following connection information for your database:
    Session.inst_db
    NNOT_SHARED_LIBRARY = dbt26syb11
    NNOT_FACTORY_FUNCTION = NNSesSybCTFactory
    NN_SES_SERVER = database_server_name
    NN_SES_USER_ID = username
    NN_SES_PASSWORD = password
    NN_SES_DB_NAME = database_name
  2. Create a Session entry with the following connection information for your MQ environment:
    Session.queue_manager_name
    NNOT_SHARED_LIBRARY = dbt26mqs
    NNOT_FACTORY_FUNCTION = NNMQSSessionFactory
    NNMQS_SES_OPEN_QMGR = queue_manager_name
  3. Create Transport entries as follows for each of the MQ queues you created:
    Transport.queue_name
    NNOT_FACTORY_FUNCTION = NNMQSQueueFactory
    NNOT_SHARED_LIBRARY = dbt26mqs
    NNOT_TIL_OPEN_TSI = queue_name
    NNOT_TIL_OPEN_SESSION_ID = queue_manager_name
  4. Create an OT Context entry with the following information:
    OTContext.FIXContext
    NNOT_CTX_EMULATE_TM = TRUE
    NNOT_CTX_ENFORCE_TX = TRUE
  5. Set the following properties as follows:
    OpenTransportContextID = FIXContext
    InboundTransportID = FROM_CUST
    FailureTransportID = ERROR
    NoHitTransportID = NOHIT
    DefaultApplicationGroup = GFIX_MSGS
    DefaultMessageType = FIX.IF.Blob

These changes to the nnsyreg.dat file will allow your EBI installation to communicate with your MQ queues.

Importing FIX rules and formats

In order to process FIX formatted messages with EBI, you must import FIX rules and formats into the rules and formats database. These rules and formats are provided as the GlobalFIX Library for EAI as part of the EAI Adapter. You can find rules and formats for the various FIX versions in the "%FFSINSTALLDIR%\GlobalFIX Library for EAI" directory. Please see the EBI documentation for detailed instructions on importing rules and formats into the rules and formats database. The rules and formats provided by the EAI Adapter are provided as a starting point for handling FIX formatted messages and will, most likely, require some modification before use. The test scenario made use of the rules and formats for the QuoteRequest FIX message.

Format modification

The format used in the test scenario for QuoteRequest FIX messages is named FIX.42.IC.RQuoteRequest. This compound format includes another compound format named FIX.42.IC.NoRelatedSymRepGrp that must be modified.

The FIX.42.IC.NoRelatedSymRepGrp format needs three of its included flat formats to be modified. To modify these formats from the Formatter GUI, expand the format in the left hand tree view, select each flat format, and click on the Properties tab.

  • FIX.42.IF.Symbol.M.R should not be marked as repeating
  • FIX.42.IF.EncodedIssuerLen.O.R should be marked as optional
  • FIX.42.IF.EncodedIssuer.O.R should be marked as optional

Rule creation

After you modify the FIX.42.IC.NoRelatedSymRepGrp format, you can use the Rules GUI to create the necessary items for processing QuoteRequest FIX message elements and routing the messages to their appropriate destinations. In order to evaluate individual fields of the QuoteRequest FIX messages you will first need to create a new Formatter Message Type using the Rules GUI. After connecting to the Rules GUI right-click on the GFIX_MSGS application and select New-->Formatter Message Type from the pop-up menu.

In the Message Type dialog that appears select FIX.42.IC.RQuoteRequest from the list of available message types, add it to the current list, and then click OK.

You should now have two message types available, FIX.IF.Blob and FIX.42.IC.RQuoteRequest. Previously you configured the DefaultMessageType property for EBI to be FIX.IF.Blob. This tells EBI to process all incoming messages against the rules defined for the FIX.IF.Blob message type. You will now modify one of the existing rules for the FIX.IF.Blob message type to re-evaluate QuoteRequest FIX Messages into the newly created FIX.42.IC.RQuoteResquest message type. To do this navigate through the Rules GUI to the GFIX_MSGS-->FIX.IF.Blob-->GFIX4.2.IC.R rule, select it, right-click the GFIX.4.2.IC.R subscription that is listed in the right-hand pane, and select Properties from the pop-up menu.

In the named dialog for the subscription remove any existing actions and then add a new re-evaluate action. For this action select GFIX_MSGS for the Application Group and FIX.42.IC.RQuoteRequest for the Message Type.

You will now define the rules EBI will use to route the QuoteRequest FIX messages to the next step in the process. The test scenario simply defined two rules to evaluate the stock symbol of the QuoteRequest and then place it on the appropriate MQ queue. In the test scenario if a QuoteRequest contained the Sybase stock symbol (SY), it was routed to the QR_SY MQ queue; if not, it was sent to the QR_OTHER MQ queue and discarded for simplicity. To create the rules for the test scenario, follow these steps:

  1. Right-click the FIX.42.IC.RQuoteRequest message type in the Rules GUI and select New Rule from the pop-up menu.
  2. In the New Rule dialog that appears enter a name for the rule (QR_SY) and then set the following values:
    • Field = FIX.42.Symbol
    • Test Category = String
    • Test = String =
    • Test Arguments - String = SY
  3. Once the values have been set, click the Add button to add the expression to the Expressions dialog.
  4. Click the OK button to create the new rule.
  5. Repeat these steps to create another rule (QR_Other), but set the Test value to String <>

Subscription definition

After you create the two rules, you need to define a Subscription for each of the rules. Subscriptions define what actions to take if the rule is successfully evaluated. To create the subscriptions and associate them to each rule, follow these steps:

  1. Right-click the Subscriptions folder beneath the FIX.42.IC.RQuoteRequest message type and select New Subscription from the pop-up menu.
  2. In the New Subscription dialog that appears, enter a name for the subscription (Route_SY).
  3. Add a new Put Queue action.
  4. Set the Target Queue field to QR_SY.
  5. Set the Message Type field to FIX.42.IC.RQuoteRequest.
  6. Click the OK button to create the new subscription.
  7. Associate the new subscription to the QR_SY rule by dragging the subscription over the top of the rule and dropping it.
  8. Repeat these steps to create another subscription (Route_Other), but set the Target Queue field to QR_Other and associate it with the QR_Other rule.

Configuring the New Era of Networks Process Server

Please see the PS documentation for detailed instructions on how to configure the PS run-time and configuration databases using inst_db.exe.

Modifying the nnsyreg.dat file

After you configure the run-time and configuration databases you need to modify the nnsyreg.dat file located in the %NNSY_ROOT%\Process Server-3_9\bin directory. You need to define configuration information to communicate with the QR_SY MQ queue as well as the EAS_QR EAServer JMS queue. Make the following modifications to the nnsyreg.dat file to run the test scenario:

  1. Create a Session entry with the following connection information for your database:
    Session.inst_db
    NNOT_SHARED_LIBRARY = dbt26syb11
    NNOT_FACTORY_FUNCTION = NNSesSybCTFactory
    NN_SES_SERVER = database_server_name
    NN_SES_USER_ID = username
    NN_SES_PASSWORD = password
    NN_SES_DB_NAME = database_name
  2. Create a Session entry with the following connection information for your MQ environment:
    Session.queue_manager_name
    NNOT_SHARED_LIBRARY = dbt26mqs
    NNOT_FACTORY_FUNCTION = NNMQSSessionFactory
    NNMQS_SES_OPEN_QMGR = queue_manager_name
  3. Create a Session entry with the following connection information for your EAS environment:
    Session.EAS
    NNOT_SHARED_LIBRARY = ctsdrv26jag40
    NNOT_FACTORY_FUNCTION = NNJagMsgSessionFactory
    JAG_SES_URL = iiop://servername:portnumber
    JAG_SES_USER_ID = username
    JAG_SES_PASSWORD = password
    JAG_SES_ORB_IDLE_CONNECTION_TIMEOUT = 5
  4. Create Transport entries as follows for the ERROR, NOHIT, and QR_SY MQ queues:
    Transport.queue_name
    NNOT_FACTORY_FUNCTION = NNMQSQueueFactory
    NNOT_SHARED_LIBRARY = dbt26mqs
    NNOT_TIL_OPEN_TSI = queue_name
    NNOT_TIL_OPEN_SESSION_ID = queue_manager_name
  5. Create a Transport entry as follows for the EAS_QR EAS JMS queue:
    Transport.EAS_QR
    NNOT_SHARED_LIBRARY = ctsdrv26jag40
    NNOT_FACTORY_FUNCTION = NNJagMsgQueueFactory
    NNOT_TIL_OPEN_TSI = EAS_QR
    NNOT_TIL_OPEN_SESSION_ID = EAS
    JAG_TIL_PUT_JMS_TYPE_DEFAULT = JMS_TEXT
    NNOT_TIL_GET_BLOCKING_TIMEOUT = 2000
  6. Create an OT Context entry with the following information:
    OTContext.FIXContext
    NNOT_CTX_EMULATE_TM = TRUE
    NNOT_CTX_ENFORCE_TX = TRUE
  7. Set the following properties as follows:
    EngineContext = FIXContext
    EngineBusinessProcesses = (Handle_SY_QR_Process)
    MapList = (FIX_QR_ESMap)
    EngineInputTransports = (QR_SY)
    EngineOutputTransports = (EAS_QR)
    EngineMonitorTransport = NOHIT
    EngineErrorTransport = ERROR
    EngineNoHitTransport = NOHIT
    RuntimeDatabaseSession = inst_db
    ConfigurationDatabaseSession = inst_db
    FormatterDatabaseSession = inst_db
    RulesDatabaseSession = inst_db
  8. Set the transport defaults for the QR_SY transport
    EPE.TransportDefaults.QR_SY
    DEFAULT_APP_GRP = GFIX_MSGS
    DEFAULT_MSG_TYPE = FIX.42.IC.RQuoteRequest
    DEFAULT_PARSER = FMTR
  9. Set the EPE.Cleanup context
    EPE.Cleanup
    CleanupContext = FIXContext

Business process creation

In the nnsyreg.dat file, you specified a business process (Handle_SY_QR_Process) and a map (FIX_QR_ESMap)that do not exist yet. The following steps will show you how to create those two items. Launch the Process Designer from Start-->Programs-->New Era of Networks-->Process Server 3.9-->Process Designer 3.9 to begin. You must first import the FIX.42.IC.RQuoteRequest format from the formatter database to create an Event Set and a Map that the business process will use.

  1. Select File-->Import-->Format(s)... from the menu bar
  2. Enter the appropriate connection information to connect to your formatter database
  3. Select FIX.42.IC.RQuoteRequest from the list of available formats
  4. Enter FIX_QR_ES for the event set name
  5. Accept FIX_QR_ESMap as the map name
  6. Click the OK button.
  7. Repeat these steps to import the FIX.42.IC.NoRelatedSym.R.RepGrp format, but enter FIX_Sym_RepGrp_ES as the event set name and accept FIX_Sym_RepGrp_ESMap as the map name.

After creating the two event sets you can begin to create the business process.

  1. Select File-->New-->Process from the menu bar.
  2. Right-click the newly created process and select Properties-->General from the pop-up menu.
  3. Enter Handle_SY_QR_Process as the EDL Object Name to re-name the process.
  4. Select the Imports tab and select Event Sets from the Importable Items drop-down box.
  5. Select both the FIX_QR_ES and FIX_Sym_RepGrp_ES event sets and click Add.
  6. Click the Apply button to make the imported event sets available for the next step.
  7. Select the Attributes tab to create the following variables the business process will use.

    NameTypeArray
    numSharesFIX_QR_ES::<FIX.42.IF.OrderQty.O.RType>Yes
    symbolFIX_QR_ES::<FIX.42.IF.Symbol.M.RType>No
    qrFIX_QR_ES::<FIX.42.IC.RQuoteRequest>No
    qrIDFIX_QR_ES::<FIX.42.IF.QuoteReqID.MType>No
    sym_RepGrpFIX_QR_ES::<FIX.42.IC.NoRelatedSym.R.RepGrpType>Yes
    numSym_RepGrpFIX_QR_ES::<FIX.42.IF.NoRelatedSym.MType>No

  8. Click the OK button to save your changes.

Now you will import an event for the business process.

  1. Navigate to the Events folder for your business process, right-click the folder, and select Import Event from the pop-up menu.
  2. Select FIX_QR_ES::<FIX.42.IC.RQuoteRequest> from the list of available events and click the OK button.
  3. Right-click the newly imported event and select Properties-->Details from the pop-up menu.
  4. Check off the This event is an initializer box and then click the OK button.

Next you will create a key for the business process.

  1. Navigate to the Keys folder for your business process, right-click the folder, and select New Key from the pop-up menu.
  2. Select the Details tab.
  3. Check off the box next to the <FIX.42.IC.RQuoteRequest> event in the Events list.
  4. Select the Option: Message ID attribute and click Add.
  5. Click the OK button to save your changes.

The next step is to create a task for the business process. This is where all of the business logic resides.

  1. Navigate to the Tasks folder for your business process, right-click the folder, and select New task from the pop-up menu.
  2. On the General tab, enter Get_Sym_RepGrp as the EDL Object Name.
  3. On the Details tab, select Manually specify the precondition and enter <FIX.42.IC.RQuoteRequest> in the text area.
  4. Click the OK button to save your changes.
  5. Copy and paste the text from action_code.txt (from the tlm_scenario.zip file) into the text area on the Action tab.
  6. Click the OK button to save your changes.

Finally, you need to set the completion criteria for the business process.

  1. Right-click the business process and select Properties-->Details from the pop-up menu.
  2. Select Manually specify the completion criteria and enter Get_Sym_RepGrp in the text area.
  3. Click the OK button to save your changes.

Save the changes made to the business process by right-clicking the business process and selecting Save Changes from the pop-up menu. After completing the steps outlined above, your business process tree should look like the following image:

Configuring the Sybase EAServer

The following steps will show you how to configure EAS to run the test scenario. You will need to configure the EAS Message service to accept the messages output by PS, deploy the message driven bean (MDB) to create and send Quote FIX messages, and deploy the customer facing web application.

Configuring the message service

Ensure your EAS instance is running before bringing up Jaguar Manager. Start Jaguar Manager from Start-->Programs-->Sybase-->EAServer 4.2.0-->Jaguar Manager and then connect to your EAServer instance. Once you are connected, navigate to the Jaguar Manager-->Message Service folder. When you select the Message Service folder, you will be asked if you would like to configure the message service. If you do not receive this prompt, you may right-click the Message Service folder and select Configure Message Service from the pop-up menu. The wizard will guide you through the configuration steps.

  1. In the first dialog of the wizard, select Jaguar as the server to configure the message service for, then click the Next > button.
  2. Select Java Cache as the connection cache for the message service to use, then click the Next > button.
  3. Modify the connection cache properties to allow connections to the ASE database server.
  4. Click the Finish button to complete the wizard and allow the server to be restarted.

Once the server has restarted, you may add the message queue to which PS will send its messages.

  1. Navigate to the Jaguar Manager-->Message Service-->Configured Queues folder.
  2. Right-click the folder and select Add from the pop-up menu.
  3. When prompted, enter EAS_QR as the queue name.

Deploying the Message Driven Bean

The message driven bean is contained in the FIXPack.jar file (from the tlm_scenario.zip file). To deploy and configure the message driven bean, complete the following steps:

  1. Navigate to the Jaguar Manager-->Packages folder.
  2. Right-click the folder and select Deploy-->EJB Jar from the pop-up menu.
  3. Use the Browse button to find and select the FIXPack.jar file.
  4. Accept the default options and click the Next > button to deploy the message driven bean.
  5. Install the message driven bean into your server instance by navigating to the Jaguar Manager-->Servers-->Jaguar-->Installed Packages folder.
  6. Right-click the folder and select Install Package... from the pop-up menu.
  7. Click the Install an Existing Package button.
  8. Select FIXPack from the list of available packages and click the OK button.
  9. Once the package has been installed, navigate to the FIXPack package beneath the Installed Packages folder, right-click the package and choose Generate Stub/Skeleton... from the pop-up menu.
  10. Select Generate Java Files and Compile Java Stubs in the Stub Generation Options group.
  11. Select Generate Skeletons and Compile Java Skeletons in the Skeleton Generation Options group.
  12. Click the Generate button to generate the necessary stubs and skeletons.
  13. Click the OK button once the code generation has completed successfully.

Deploying the web application

The FIXApp.war file contains the customer facing web application. To deploy and configure the web application, complete the following steps:

  1. Navigate to the Jaguar Manager-->Web Applications folder.
  2. Right-click the folder and select Deploy-->J2EE War from the pop-up menu.
  3. Use the Browse button to find and select the FIXApp.war file.
  4. Accept the default options and click the Next > button to deploy the web application.
  5. Install the web application into your server instance by navigating to the Jaguar Manager-->Servers-->Jaguar-->Installed Web Applications folder.
  6. Right-click the folder and select Install Web Application... from the pop-up menu.
  7. Click the Install an Existing Web Application button.
  8. Select FIXApp from the list of available web applications and click the OK button.

Configuring logging

The MDB and the web application make use of the Apache log4j logging API. In order to enable logging for these components you need to add the text found in log4j.txt (from the tlm_scenario.zip file) to the %EAServer%\java\classes\log4j.properties file.

Configuring access to FinancialFusion classes

In order for the message driven bean and the web application to function properly, they both need access to some of the FinancialFusion class files. To provide access to these classes simply copy the user_setenv.bat file (from the tlm_scenario.zip file) into the %JAGUAR%\bin directory. When you restart your EAS instance, this batch file will be executed and the necessary JAR files will be added to the server's CLASSPATH and BOOTCLASSPATH environment variables.

You may now restart your EAS instance by navigating to Jaguar Manager-->Servers-->Jaguar, right-clicking on the Jaguar server instance, and selecting Shutdown and Start from the pop-up menu. Once the server has restarted, you can access the customer facing JSP from the following URL: http://<servername>:<port>/FIXApp/QuoteRequest.jsp. Please see the EP documentation for detailed instructions on how to create a JSP Portlet from the QuoteRequest.jsp.


Execution

This section will describe how to execute the test scenario assuming you have successfully completed all of the necessary configuration steps.

The test scenario requires several server components to be running. Ensure that each of these components are running before attempting to execute the test scenario.

  • ASE
  • EAS - Jaguar Instance
  • EAS - FIXServer Instance
    • Server started and sessions connected as described in the FIX Adapter configuration section
  • MQ Series
  • EBI
  • PS

If any of the above components are not running, the test scenario will not run through completion. However, you may run the test scenario with some of the components shut-down to verify that the various messages are being sent properly. For example, you may shut down EBI to stop the message after the vendor's FIX Adapter sends it to the MQ queue to verify it contains the proper information. When you re-start EBI, the message will be picked up and the scenario will continue. This allows you to step through the scenario and verify that each component is functioning properly.

Once each component is up and running, you may initiate a quote request by navigating to http://<servername>:<port>/FIXApp/QuoteRequest.jsp and entering a stock symbol and a quantity. The test scenario has three possible outcomes:

  1. If you enter the Sybase stock symbol (SY) and a quantity greater than '1000', the test scenario should run its complete course and a FIX Quote message should be returned to the customer's FIX Adapter with a price set to $12.75.
  2. If you enter the Sybase stock symbol (SY) and a quantity less than '1000', the FIX QuoteRequest message should reach the PS instance, have the quantity evaluated, and the message should be discarded.
  3. If you enter a stock symbol other than 'SY' the FIX QuoteRequest message should reach the EBI instance, be evaluated against the rules you created, and sent to the QR_OTHER MQ queue.

Issues

Issue 1: Microsoft Java virtual machine causes FinancialFusion installer to stop processing

The presence of the Microsoft Java virtual machine causes intermittent failures of the FinancialFusion installer. The installer searches the machine for an available Java virtual machine and uses the first one it finds. If it finds the Microsoft Java virtual machine failures during installation may occur.

If the Microsoft Java virtual machine is installed you must rename the wjview.exe file in order to successfully complete the FinancialFusion product installations.

Issue 2: Message Broker database must be created manually

The Message Broker database must be created manually before you can use the Message Broker Manager to create the table schema.

To create the Message Broker database, connect to your ASE server through Sybase Central, then step through the wizards for creating a database device and creating a database. The necessary size of your device will depend on your environment. You may name the database anything you like, but see Issue 3 for an additional note regarding the Message Broker database name.

Issue 3: ASE database scripts must be modified

The scripts provided by FinancialFusion for use with ASE must be modified to suit the installation environment. The following modifications need to be made to all three database scripts (FIXServer_cf.sql.ase, FIXServer_cr.sql.ase, and FIXServer_lk.sql.ase).

  • Modify the 'physname=' location of each DISK INIT command to a location appropriate for your environment.
  • Modify the 'vdevno=' number of each DISK INIT command to a device number appropriate for your environment.

The remaining modifications only need to be applied to the FIXServer_cf.sql.ase script.

  • Modify the 'INSERT INTO serverConfig...' statement by setting the appropriate values for userID, passwd, host, and port to connect to your FIX Server.
  • Modify each of the four 'INSERT INTO databaseConfig...' statements by setting the appropriate values for the DBHost, DBPort, DBUser, and DBPassword columns for your environment. You will also need to modify the DBName field for the last statement if you created your Message Broker database with a different name than the default.

Issue 4: ASE database parameters must be modified

When installing all of the necessary databases into one ASE server instance, several database server options must be changed from their default values.

The following properties were modified to accommodate all of the products in the testing environment. Please consult the ASE documentation for details on how to modify each of these properties.

  • Number of devices: 20
  • Number of user connections: 75
  • master database size: 20MB
  • Additional log space for the tempdb database: 40MB

Issue 5: Message Broker repository name must be 'MessageBroker'

When you first create the Message Broker repository you will be prompted to give the repository a name. The default value of 'MessageBroker' must be accepted.

Issue 6: The FIXServer instance requires a password to be set for the jagadmin user

The GFIX Manager will not accept an empty password as part of the connection information to the FIX Server, so you must set a password for the jagadmin user if you wish to connect to the FIX Server as jagadmin.

To set a password for the jagadmin user, first connect to the FIX Server through Jaguar Manager. Next, right click on the FIXServer instance and select 'Server Properties...'. In the dialog that appears select the 'Security' tab and click the 'Set jagadmin Password' button, then enter a new password for your jagadmin user.

Issue 7: User ID and Password must be set on server properties in the GFIX Manager

Initially the User ID and Password fields of the default server properties are set incorrectly and must be modified before you can connect to the server through the GFIX Manager.

To enter the proper values for the User ID and Password fields open the GFIX Manager. Once the GFIX Manager has started, connect to your FIX Server database. After connecting navigate to your server instance, right-click the instance and select 'Properties...'. On the 'General' tab of the Server Properties dialog you can set the values for the User ID and Password fields. The User ID field may contain a long data string by default, this can be replaced by just the user name of the user you will be connecting as. Please see Issue 6 for information regarding setting the password for the jagadmin user.




Back to Top
© Copyright 2010, Sybase Inc.