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.
- Start the Message Broker Manager from: Start-->Programs-->FinancialFusion-->Message Broker 6.0-->Message Broker
Manager
- Select Tools-->Connection Profiles from the menu bar or click the Connection Profiles button
on the tool bar.
- In the Connection Profiles dialog click the New... button to create a new connection profile.
- 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.
- 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.)
- 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.
- Select Tools-->Connection Profiles from the menu bar or click the Connection Profiles button
on the tool bar.
- In the Connection Profiles dialog click the New... button to create a new connection profile.
- 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.
- 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.
- 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.

- 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
- 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
- In the Protocol dialog select 4.2 as the FIX Version you will be using and then click Next >.
- 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
- 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:
- 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
- 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
- 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
- Create an OT Context entry with the following information:
OTContext.FIXContext NNOT_CTX_EMULATE_TM = TRUE NNOT_CTX_ENFORCE_TX = TRUE
- 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:
- Right-click the FIX.42.IC.RQuoteRequest message type in the Rules GUI and select New Rule from the pop-up
menu.
- 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
- Once the values have been set, click the Add button to add the expression to the Expressions dialog.
- Click the OK button to create the new rule.
- 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:
- Right-click the Subscriptions folder beneath the FIX.42.IC.RQuoteRequest message type and select New
Subscription from the pop-up menu.
- In the New Subscription dialog that appears, enter a name for the subscription (Route_SY).
- Add a new Put Queue action.
- Set the Target Queue field to QR_SY.
- Set the Message Type field to FIX.42.IC.RQuoteRequest.
- Click the OK button to create the new subscription.
- Associate the new subscription to the QR_SY rule by dragging the subscription over the top of the rule and dropping it.
- 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:
- 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
- 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
- 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
- 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
- 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
- Create an OT Context entry with the following information:
OTContext.FIXContext NNOT_CTX_EMULATE_TM = TRUE NNOT_CTX_ENFORCE_TX = TRUE
- 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
- 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
- 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.
- Select File-->Import-->Format(s)... from the menu bar
- Enter the appropriate connection information to connect to your formatter database
- Select FIX.42.IC.RQuoteRequest from the list of available formats
- Enter FIX_QR_ES for the event set name
- Accept FIX_QR_ESMap as the map name
- Click the OK button.
- 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.
- Select File-->New-->Process from the menu bar.
- Right-click the newly created process and select Properties-->General from the pop-up menu.
- Enter Handle_SY_QR_Process as the EDL Object Name to re-name the process.
- Select the Imports tab and select Event Sets from the Importable Items drop-down box.
- Select both the FIX_QR_ES and FIX_Sym_RepGrp_ES event sets and click Add.
- Click the Apply button to make the imported event sets available for the next step.
- Select the Attributes tab to create the following variables the business process will use.
| Name | Type | Array |
| numShares | FIX_QR_ES::<FIX.42.IF.OrderQty.O.RType> | Yes |
| symbol | FIX_QR_ES::<FIX.42.IF.Symbol.M.RType> | No |
| qr | FIX_QR_ES::<FIX.42.IC.RQuoteRequest> | No |
| qrID | FIX_QR_ES::<FIX.42.IF.QuoteReqID.MType> | No |
| sym_RepGrp | FIX_QR_ES::<FIX.42.IC.NoRelatedSym.R.RepGrpType> | Yes |
| numSym_RepGrp | FIX_QR_ES::<FIX.42.IF.NoRelatedSym.MType> | No |
- Click the OK button to save your changes.
Now you will import an event for the business process.
- Navigate to the Events folder for your business process, right-click the folder, and select Import Event from
the pop-up menu.
- Select FIX_QR_ES::<FIX.42.IC.RQuoteRequest> from the list of available events and click the OK
button.
- Right-click the newly imported event and select Properties-->Details from the pop-up menu.
- 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.
- Navigate to the Keys folder for your business process, right-click the folder, and select New Key from
the pop-up menu.
- Select the Details tab.
- Check off the box next to the <FIX.42.IC.RQuoteRequest> event in the Events list.
- Select the Option: Message ID attribute and click Add.
- 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.
- Navigate to the Tasks folder for your business process, right-click the folder, and select New task from
the pop-up menu.
- On the General tab, enter Get_Sym_RepGrp as the EDL Object Name.
- On the Details tab, select Manually specify the precondition and enter <FIX.42.IC.RQuoteRequest>
in the text area.
- Click the OK button to save your changes.
- Copy and paste the text from action_code.txt (from the tlm_scenario.zip file) into the text area on the
Action tab.
- Click the OK button to save your changes.
Finally, you need to set the completion criteria for the business process.
- Right-click the business process and select Properties-->Details from the pop-up menu.
- Select Manually specify the completion criteria and enter Get_Sym_RepGrp in the text area.
- 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.
- In the first dialog of the wizard, select Jaguar as the server to configure the message service for, then click the
Next > button.
- Select Java Cache as the connection cache for the message service to use, then click the Next > button.
- Modify the connection cache properties to allow connections to the ASE database server.
- 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.
- Navigate to the Jaguar Manager-->Message Service-->Configured Queues folder.
- Right-click the folder and select Add from the pop-up menu.
- 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:
- Navigate to the Jaguar Manager-->Packages folder.
- Right-click the folder and select Deploy-->EJB Jar from the pop-up menu.
- Use the Browse button to find and select the FIXPack.jar file.
- Accept the default options and click the Next > button to deploy the message driven bean.
- Install the message driven bean into your server instance by navigating to the
Jaguar Manager-->Servers-->Jaguar-->Installed Packages folder.
- Right-click the folder and select Install Package... from the pop-up menu.
- Click the Install an Existing Package button.
- Select FIXPack from the list of available packages and click the OK button.
- 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.
- Select Generate Java Files and Compile Java Stubs in the Stub Generation Options group.
- Select Generate Skeletons and Compile Java Skeletons in the Skeleton Generation Options group.
- Click the Generate button to generate the necessary stubs and skeletons.
- 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:
- Navigate to the Jaguar Manager-->Web Applications folder.
- Right-click the folder and select Deploy-->J2EE War from the pop-up menu.
- Use the Browse button to find and select the FIXApp.war file.
- Accept the default options and click the Next > button to deploy the web application.
- Install the web application into your server instance by navigating to the
Jaguar Manager-->Servers-->Jaguar-->Installed Web Applications folder.
- Right-click the folder and select Install Web Application... from the pop-up menu.
- Click the Install an Existing Web Application button.
- 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:
- 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.
- 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.
- 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.
|