Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
T R A D I N G P L A T F O R M
Version 5.3
Project Code:
Issue: 1.10
Status: Released
File: FPI_5_3_SIP_CFG_1_10.doc
21 Apr 1998 1.1 F2SGen now requires ipcName to be specified on command line
and the config file output needs the Install hostCfg mechanism.
Added batchDelaySeconds
Contents
1. Overview ........................................................................................ 7
2. Sdd ................................................................................................. 8
3. FidToSyb...................................................................................... 23
4. OAToDb........................................................................................ 39
5. Appendix A .................................................................................. 43
6. Appendix B .................................................................................. 49
1. Overview
fidessa products use Sybase as a repository for standing data and reporting data. Static data
contains information that wouldnt normally change during the course of the day such as lists of
instruments and alternate instrument identifiers or user names and passwords. A fidessa
process called Sdd handles the copying of data from Sybase to fidessa.
Reporting data is auditing or statistical information such as trades, executions, positions etc.
FidToSyb performs the copying of data from fidessa to Sybase.
A third fidessa process, OAToDb provides an OpenAccess transaction interface to Sybase stored
procedures.
The static and reporting data may be held in different or the same Sybase databases. The
Sybase tables, stored procedures and triggers for these are generally provided and mainted by
the fidessa Data Architecture (FDA) release.
The Sybase SQL Server may also be accessed from tcl programs using the Sybtcl tcl library
distributed with fidessa. Further details of this library are outside the scope of this document but
full details may be obtained from documents in the third-party area on the fidessa web server.
FidToSyb
fidessa rtd
Sdd
2. Sdd
2.1 Design
The purpose of Sdd is to maintain the fidessa data with respect to the Sybase data. To do this, it
performs two distinct tasks - download all and updates. The download all task is performed
automatically when the fidessa system is cold started to load the empty fidessa tables. The
updates task is performed thereafter to make changes to fidessa data as changes are made to
Sybase data.
Remote
Procedure
Calls
Each fidessa real-time database table has a Sybase stored procedure (or sproc) associated with
it. These sprocs are used for selecting data to download from Sybase to fidessa and are termed
sddsel sprocs. For example, the ALT_COUNTERPARTY_ID table for FTS, may have a sproc
named FTSsddsel_ATL_COUNTERPARY_ID
These sprocs can be run in two ways. They can be run in with an ALL argument to return all
rows from the table or they can be run with a RECORD argument to return a particular row
identified by the key values in the remaining arguments. For example, to obtain a listing of all
rows from the ALT_COUNTERPARTY_ID table, you might run the following sql statement:
FTSsddsel_ALT_COUNTERPARTY_ID ALL
To download all records to fidessa, Sdd runs the sddsel sproc for each table with the ALL
argument and raises add or update fidessa transactions.
To maintain the fidessa the iTB_table_update table that contains Sybase changes. The
iTB_table_update table is maintained automatically by triggers as follows:
iTB_table_update
ALT_COUNTERPARTY_ID
ETC
Note: The table names and sproc names are given as examples only, and do not necessarily reflect those
assigned by FDA.
Each table in Sybase has a trigger associated with it. A trigger is a stored procedure or sproc
that is automatically executed when a certain event occurs. These triggers are set to execute
when a row in a table such as STB_INSTRUMENT is added, modified or deleted. The trigger
writes the fidessa real-time database table name, i.e INSTRUMENT, in this case, together with
enough key values to uniquely identify the row that was added, modified or deleted from the
table, to iTB_table_update. The iTB_table_update table contains an auto-incrementing
SEQUENCE_NUM field that increases by one each time a trigger inserts a row. This all means that
iTB_table_update contains a sequenced list of changes that have been made since
iTB_table_update was created.
There is also an sddsel sproc for the iTB_table_update table but it has slightly different
arguments. The first argument identifies a SEQUENCE_NUMBER and the second specifies the
fidessa product in which Sdd is running. This second argument controls which tables updates
are returned to which product. sddsel_TABLE_UPDATE returns all the rows that have a greater
SEQUENCE_NUMBER than the one specified (if any). Sdd then processes the row data and runs
the sddsel sproc with the RECORD option and the key values from each iTB_table_update
row to get the full table row from Sybase. It then raises a TXN_ADD, TXN_REPLACE, or
TXN_MODIFY transaction for the new or modified data. If the sddsel sproc returns no data then
Sdd assumes the iTB_table_update row was written because a delete was done and so
raises a TXN_DELETE transaction to delete the data from fidessa instead. Every OA transaction
sent to fidessa will contain the SEQUENCE_NUM (encoded in the SOURCE_REF OA field) from the
iTB_table_update column in the corresponding row.
2.2 Operation
As Sdd starts up, it performs the following steps:
1. Validates command line args, reads in config files and logs into Sybase
5. If doing download_all, then retrieve the last record number in the iTB_table_update
table, using iSP_last_source_ref sproc, and run the sddsel_<table> ALL sprocs
for each table. Then wait for all transactions to be ACKed by fidessa.
Sdd operates an internal OA message queue. This Queue grows as OA messages are sent by
Sdd and shrinks as OA messages are ACKed or NACKed by fidessa. If messages are sent while
the OA transaction service is down, the messages are stored internal to Sdd and sent when the
service becomes available again. This means that no transactions are lost if there is a comms
outage.
See the fidessa system Operations Guide for more on Process Modes. Using this mode will
cause SDD to will create new records in the rtd if they are not already present, and overwrite
existing ones. Then Sdd will carry on and update the fidessa database in real-time.
.
.
downloadOrder
{
COUNTERPARTY,
INSTRUMENT,
INSTRUMENT_PRICE
}
.
.
.
}
2.2.5 Dependents
A dependent is an optional configuration item. It is used to download data that the current
download record depends on. For example, if an ALT_INSTRUMENT_ID record is being
downloaded, and its parent INSTRUMENT record does not exist in the RTD, an attempt is made
to download the INSTRUMENT record first using the dependant information. If the INSTRUMENT
record cannot be found a warning is displayed, followed by an error when an attempt is made to
store the ALT_INSTRUMENT_ID record in the RTD. An extract from a sample configuration file is
given below:
recordMap
{
name ALT_INSTRUMENT_ID
.
.
.
dependant
{
name INSTRUMENT
join { INSTRUMENT_ID INSTRUMENT_ID }
}
.
.
.
}
2.3.1 Preliminaries
The following actions need to be carried out before any configuration can take place.
1. Set up the configuration file path environment variable (normally done by source
SetupPS). This environment variable is used by all of the file generation utilities.
2. Decide which real-time database (RTD) tables should have data downloaded from Sybase.
3. Edit SddGen.cfg to specify the Sybase database name and the tables to be downloaded.
Each table block should also specify the primary key to be used for the table. An example
section of an SddGen.cfg file is shown here:
SddGen
{
general
{
dbName fidessa
}
table
{
tableName INSTRUMENT
keyName INSTRUMENT_BY_ID
}
table
{
tableName COUNTERPARTY
keyName COUNTERPARTY_BY_ID
}
.
.
.
SqlTabGen SddGen.cfg
A separate file will be generated for each table in the local directory. The file names have the
format table_<tablename>.sql. Each file contains Transact-SQL commands to create
the table and any indexes based on the definitions in the data dictionary file Dct.cfg.
2. Each SQL file should then be loaded into the database as an input file to isql. Errors are
reported if names are longer than the maximum allowed (30 characters in Sybase). This
sometimes occurs for indexes. If the indexes are required, then they will have to be created
manually and given a shorter name.
3. There are two files which are not generated automatically as they relate to the
TABLE_UPDATE table, which does not exist in the RTD, and hence is not in the data
dictionary. The files are table_TABLE_UPDATE.sql and sp_sdd_TABLE_UPDATE.sql.
These files need to be edited to specify the database name, and then loaded into the
database using isql.
4. Use isql to verify that the tables/indexes have been created successfully.
SddCfgGen
This utility creates configuration file blocks for the tables specified in the SddGen.cfg file.
2. Edit the Sdd.cfg.auto file if any dependents or related groups need to be set up.
3. Edit the Sdd.cfg file, specifying the download order of the tables and the database name
and user.
SddSqlGen
This generates SQL script files for the stored procedures and triggers for each of the tables
specified in SddGen.cfg. The file names of the stored procedures and triggers have the
format sp_sdd_<tablename>.sql, and tr_sdd_<tablename>.sql, respectively.
2. Edit any stored procedures which read related group information from the database.
3. Each SQL file should then be loaded into the database as an input file to isql.
4. Use isql to verify that the stored procedures and triggers have been created successfully.
Sdd/general/
New in UseModifyForAdd FALSE This sets the process-wide default for the
v5.0.0 useModifyForAdd option, which can be
changed on a per-record basis.
Sdd/sybase/
Sdd/databaseMap/recordMap/fieldMap/
name value pairs name is rtd field name and value is sybase column
name. All fields must be specified.
Sdd/databaseMap/recordMap/update/
Sdd/databaseMap/
Sdd/updateProc/
modifiedFieldsOnly is also used in FTS to limit the fields sent to the transaction handler for
each modification. FTS has two classes of modify transactions replace and update. When a
subset of available fields is specified, a replace handler will remove any unspecified fields from
the record being modified; an update handler will merge the new fields into the existing record.
modifiedFieldsOnly is useful with an update class transaction, as it ensures that only fields
whose values have changed are posted to the update queue. However, with a replace class
transaction, only specifying modified fields will result in existing fields which have not changed
being removed.
WARNING: DO NOT SET THIS OPTION FOR FTS TABLES WHICH HAVE A REPLACE CLASS HANDLER FOR THE
MODIFY TRANSACTION. IF IN DOUBT, CHECK TRH.DIRECTORY.CFG.
In order to use this option in FTS, transactions in the Trh Directory should be configured
with an existance optional clause in the MODIFY transactions, for example,
transaction
{ type MODIFY
class Update
function BOOK
instance
{ record
{ name BOOK
primaryKey
{ join { to BOOK by BOOK_BY_ID
existance optional }
}
}
}
}
Note: In all systems other than FTS, using modifyForAdd should work without the configuration of the
existance optional clause.
statusSproc
proc iSP_sdd_status
(
@system_name DT_SYSTEM_NAME,
@sytem_type DT_SUB_SYSTEM,
@system_version DT_SYSTEM_VERSION,
@status_message DT_FREE_FORMAT
}
nackSproc
txn_type The transaction type of the message that caused the NACK, e.g
TXN_ADD, TXN_MODIFY
Note: As of infrastructure v4.2.2, the Sybase login password and default SQL server name are specified in
the Sdd configuration file.
-exit_after_load FALSE Causes Sdd to exit after download all has completed.
-resync FALSE Causes Sdd to run in re-sync mode, see section 2.2.3.
Notes:
1. The -download_all flag can be configured to be set if Sdd is started when fidessa is
started cold by using a MODE: setting in ProcessDetails.syscfg as show here:
PROCESS:
NAME=EMS_SDD
CMDLINE=Sdd -c Sdd.cfg
DESCRIPTION=Sybase Data Download
START=YES
MODE:
NAME=DOWNLOAD_ALL
CMDLINE=Sdd -c Sdd.cfg -download_all
MODE:
NAME=RESYNC
CMDLINE=Sdd c Sdd.cfg -resync
The first and last row numbers from TABLE_UPDATE for the last poll.
The SOURCE_REF of the last TXN Acked and the last TXN Nacked.
Totals for number of add, modify and delete transactions made (both during download
all and since).
3. FidToSyb
3.1 Design
FidToSyb operates in two stages. When FidToSyb starts, it is in the recovery stage. When
recovery has finished, it enters the update stage. During recovery, FidToSyb processes each
service from the config file in the order specified in the recoveryOrder config item list. For
each service, it gets the last record from the Sybase table and uploads all records after that
record. Then it moves on to the next service in the recovery list. When all services have been
recovered, FidToSyb enters the update stage and starts polling each 'service' for recently
updated records and uploads those records to Sybase.
3.2 Operation
Note that the primary table being uploaded from fidessa must have a sorted key on timestamp.
For example, to add a sorted timestamp key to the TRADE_AUDIT table, you could use the
following configuration in DctClient.cfg.:
customiseRecord
{
name TRADE_AUDIT
Note that the id used here is just an example. It should be unique on your system.
The record from which recovery is started is determined according to whether the insertsOnly
config item is set for the service. If true FidToSyb expects records to be inserted into the rtd and
never updated and as such, never updates existing records in Sybase, only ever inserts records,
even during recovery. This allows client triggers that expect only inserts to operate correctly. It is
not always possible to use insertsOnly services since it requires a particular kind of key (see
later). If insertsOnly is set to FALSE, then the service may upload duplicate records during
recovery and later, may download updates to sybase records that have been changed in the rtd.
11:44 29 11:44 29
11:47 30 11:47 30
12:00 31 12:00 31
12:03 32
12:06 33
FidToSyb obtains the key value for the last row uploaded to Sybase by FidToSyb (during a
previous run) which is 31. FidToSyb then looks up the record with that key value in fidessa..
Then FidToSyb scans all the records in fidessa that come after that record in TIMESTAMP order
and uploads them to Sybase. In this case, the records with a timestamp of 12:03 and 12:06
would be inserted into the Sybase table. The key used should be a system generated, sorted
key. Any key using the TIMESTAMP would be inappropriate since TIMESTAMP values may be
different across a live/standby pair. Note that updates to records with a key value older than the
last will be ignored. If a suitable key cannot be found then that service in FidToSyb will have to
be configured as a non-insertsOnly service that uses the TIMESTAMP key, which always
increments with every modification.
11:41:00 11:41:00
11:58:44 11:58:44
11:59:04
11:59:47 11:59:47
12:00:04 12:00:04
12:00:05
12:01:44
The last record in Sybase is the one with a TIMESTAMP value of 12:00:04. FidToSyb take 1
minute from this giving 11:59:04. Then FidToSyb uploads the records from this timestamp
onwards which means the last four records from fidessa with timestamp values of 11:59:47,
12:00:04, 12:00:05 and 12:01:44.
3.2.3 Updates
During recovery, the most recent TIMESTAMP value is recorded for each service before the next
service is recovered. When all services have been recovered, FidToSyb enters its normal mode
of operation which is to poll the primary table on each service at regular intervals, attempting to
read records with a newer TIMESTAMP then the recorded value. Any records found are uploaded
to Sybase. The most recent TIMESTAMP value is then recorded again.
To avoid sending records to Sybase before the fidessa transaction which generated them has
been journalled, FidToSyb also listens to the fidessa a update queue for updates to the primary
table. FidToSyb needs to spot an update which corresponds to each newer record before
sending that record to Sybase. If such an update never arrives (because the record was updated
using Dbm, or because the transaction failed to post an update, FidToSyb will log the following
operator message:
FidToSyb will then continue to periodically poll for updates, sending to Sybase those new
records which are over ten seconds old at the time of polling.
In this instance, Recovery may not lead to the missing records being restored to Sybase. For
example, if a non-insert only service succesfully dowloaded a record into Sybase, following a
failed record, the failed record would never be recovered.
11:41:00 11:41:00
Downloaded
11:58:44 11:58:44
11:59:47
Failed
12:00:04
12:00:05 12:00:05
Downloaded
12:01:44 12:01:44
In this case, Recovery would attempt to recover all records from 12:01:44, meaning that
records 11:59:47, and 12:00:04, would never be downloaded to Sybase.
Further, situations may exist whereby a new field is added to a fidessa RTD table, which needs
to be populated to existing Sybase records, which are for example, less than a month old. There
is no way to perform this function from a standard FidToSyb.
Replay mode is intended to solve these two problems. When started in this mode, FidToSyb
passes a replayMode and replayAction parameter to the primaryKeySroc and
timestampSproc. The replayMode parameter simply indicates that replay is in progress,
and instructs the sproc to return only records between timestamps configured within the
SKIP - Indicates that if records are already present within Sybase, they should be
skipped.
UPDATE Indicates that if records are already present within Sybase, they will be updated.
This action is specifically used to cater for the case where extra fields have beed added, and
need to be populated to Sybase.
When replay of all records for a particular service is complete, FidToSyb advances on to the
next service. When all services have been replayed, FidToSyb will exit. This allows replay to
run concurrently with a primary FidToSyb, the primary handling updates that occur in real time,
and the replay restoring missing records.
In order to allow sharing of configuration between FidToSyb processes run in replay mode, and
FidToSyb run in normal mode, two embedded variables may be used.
replayMode string N N Y
Sproc SQL
@price)
end
timestampSproc select max(TIMESTAMP) from HIST
Prior to v5.3.0, both the primaryKeySproc and timestampSproc were specified as strings. If
these config items remain configured, as strings, a warning will be displayed, the process will
however, operate as normal.
If the connect/login is timed out or fails then a reconnection attempt will be made after 60,000 ms
(1 minute). This interval can be changed with the pollPeriod configuration item.
During the execution of a Sybase sproc or sql statement, FidToSyb will be waiting for a
response from the SQL Server. If no response is received then FidToSyb will wait forever for
the command to 'complete'. FidToSyb can be made to limit the how long to wait for a response
before returning an error by setting the dbStaleTimeout configuration item.
Sybase errors are reported to trace and operator logs. If a severe or fatal error is detected then
FidToSyb will disconnect and reconnection will be attempted after 60 seconds as above.
When FidToSyb disconnects from Sybase, the polling of tables for updates is stopped. When
FidToSyb has reconnected to Sybase, it starts with recovery as if it had been run for the first
time, moving back to polling for updates when all services have been recovered.
FidToSyb/general/
asyncBatchSize 10 Unused
FidToSyb/sqlConnection/
ExecTclProc Fid_Utl
encrypt <passwd>.
FidToSyb/serviceManager/
New in streamStatusSproc <none> The name of the sproc to invoke when the
v5.0.0 stream lags behind.
FidToSyb/serviceManager/service/
Notes:
1. FidToSyb automatically includes substitution for Sybase reserved words. Any further
substitutions added here would replace long fidessa field names of more than 30 characters
with shorter ones for Sybase. See Appendix B for a list of Auto Substitutions
check. From v5.0.0, FidToSyb uses file based health checking, the directory in which the file
should be created in specified in configuration, as healthCheckDir. This must be set to
$PS_RUN/control, as this is the directory that Minder will check to determine the process
health.
This indicates the name of a tcl procedure that will be invoked by Minder at pre-configured
time intervals to check the health of the process.
It should be noted that if a pre v5.0.0 Fid_F2Scheck tcl procedure were used with a v5.0.0
FidToSyb process, health checking would be implemented using OpenAccess.
proc iSP_sdd_status
(
@system_name DT_SYSTEM_NAME,
@sytem_type DT_SUB_SYSTEM,
@system_version DT_SYSTEM_VERSION,
@status_message DT_FREE_FORMAT
}
Data Sync Status is provided to indicate when tasks such as this are complete. FidToSyb
receives the following OpenAccess message to achieve this.
DATA_SYNC_NAME Yes string Name used to identify this request (e.g. MTM), used for
information only.
TIMESTAMP Yes string In the format YYYYMMDD HH:MM:SS. When each of the list
of services have synchronised up to this time-stamp, the sproc
will be invoked.
SPROC_NAME Yes string The name of the sproc, and any associated parameters. This
string will be passed as-is, to the SQL Server.
REP_F2S_DATA_SYNC_STATUS
ERROR_TEXT Yes string Descriptive string of reject reason, only set if ERROR_CODE is
non zero.
It will be possible at any time to check the status of the data synchronisation status requests, by
use of OpenAccess Statistics. These will show all requests received, and those that are still
outstanding. It will also be possible to verify from these statistics, which services have not yet
synchronised up to the time-stamp.
An example of the output from OaReq follows. The first example shows a data sync status
request that is active, and waiting for the TB_CURRENCY_RATE service to Sync up to the time-
stamp.
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].SYNC_NAME.s = "MTM"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].TIMESTAMP.s = "19990831 14:14:00"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].SPROC.s = "FID_DATA_SYNC"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].STATUS.s = "ACTIVE"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].SERVICE.s = "TB_CURRENCY_RATE"
This example shows that two data sync status requests have been issued, the first is complete,
and the second is still active, and is waiting for both the TB_CURRENCY_RATE, and the
TB_INSTRUMENT_PRICE services to sync up to the time-stamp.
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].SYNC_NAME.s = "MTM"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].TIMESTAMP.s = "19990831 14:30:00"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].SPROC.s = "FID_INSTRUMENT_PRICE"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].STATUS.s = "ACTIVE"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].SERVICE.s = "TB_CURRENCY_RATE"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[0].SERVICE.s = "TB_INSTRUMENT_PRICE"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[1].SYNC_NAME.s = "MTM"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[1].TIMESTAMP.s = "19990831 14:14:00"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[1].SPROC.s = "FID_INSTRUMENT_PRICE"
CLASS[1].CLASS[0].DATA_SYNC_STATUS[1].STATUS.s = "COMPLETE"
proc iSP_sdd_stream_status
{
@system_name DT_SYSTEM_NAME,
@sytem_type DT_SUB_SYSTEM,
@system_version DT_SYSTEM_VERSION,
@service DT_SYBASE_OBJECT,
@up_to_date boolean,
@lag_time int
}
At start-up, FidToSyb will invoke the streamStatusSproc for each configured service, setting
the up_to_date flag to TRUE, and the lag_time to 0. Thereafter, FidToSyb will monitor the
status of the stream, and only invoke the sproc, if a service is behind by more than the
maximum allowable lag time. Once the service had caught up, the sproc would again be
invoked to indicate that it was now up to date.
Name Meaning
Connection details including, server name, database name and user name
Various timstamps and counts indicating if the service is keeping sybase up to date wrt
changes to the rtd and if not, how far behind it is.
A summary of timestamps and counts, over all services, indicating if FidToSyb is keeping up
with changes to rtd and if not, how far behind it is.
A list of data sync status requests, showing both active, and complete. Active requests, will
show each service that has not yet synced up to the timestamp.
parameters
{
SybaseTime$(t.THE_TIME) the_time
t.THE_PLACE the_place
}
parameters
{
SybaseTime$(t.THE_TIME) THE_TIME
t.THE_PLACE THE_PLACE
}
to specify that 'MEETING LOCATION IS ' will be prepended to the THE_PLACE field as it is
uploaded to Sybase. If a join is made to a secondary table then expressions using values from
that table can be used to replace values for existing sproc parameters or column name or to
specify new ones. Sproc parameters or column names should be specified as above, i.e. in
lower case without @. The SybaseTime$() function takes a string in the form HHMMSSCC as
output by the fidessa expression evaluator for conversion of a dct_time type to string, and
converts it to the form HH:MM:SS.CC which is recognisable by the Sybase parser as a time
value.
4. OAToDb
4.1 Design
OaToDb provides a way of running a Sybase stored procedure (sproc) from an OpenAccess
message. It can pass a number of arguments to the sproc and return the results. It accepts
standard OpenAccess transactions containing an embedded SDS with the arguments to the
sproc and will reply with a NACK containing the sproc error status or an ACK containing any row
output.
4.2 Transactions
OAToDb supports the Transaction protocol as described in fidessa OpenAccess Programmers
Guide with the following caveats:
If the stored procedure has a parameter @txn_type, then this is set from MESSAGE_TYPE. The
remaining parameters are set from the fields in the embedded SDS. Each field specified must
match a sproc parameter. The fields may be specified in either upper or lower case and they
may or may not have a leading '@'. If the sproc has extra parameters, not specified in the SDS
then they will not be set in the call. If the sproc can be called without those parameters then it
won't cause an error.
The fields in the SDS may be of type SDS_BYTE, SDS_I32, SDS_STRING or SDS_F64. No other
SDS types can be used. The sproc parameters may be any of the Sybase types int,
smallint, tinyint, float, real, money, char(n), varchar(n) or datetime. OAToDb will
automatically convert the SDS field type to the Sybase type.
4.3 Configuration
OAToDb/general/
OAToDb/linkMgr/
OAToDb/linkMgr/stateLink
OAToDb/sqlConnection/
OAToDb/service/
Name Meaning
Connection details including, server name, database name and user name
5. Appendix A
5.1 Sdd OpenAccess Statistics
5.1.1 Class Name
<SERVICE_NAME>.INFO
5.1.2 Statistics
Field Name Format Notes
SERVICE REPSDS There is one such block for each service from
the configuration file, formatted as shown
below.
SERVICE
5.1.3 Counters
None
5.1.4 Attributes
Attribute name Format Read/Write Notes
5.2.2 Statistics
Field Name Format Notes
SERVICE
(sent or not)
UP_TO_DATE I32 0 - last record read from rtd is not the most
recent
1 - last record read from rtd is the most
recent, Sybase should be in sync.
DATA_SYNC_STATUS
5.2.3 Counters
None
5.2.4 Attributes
Attribute name Format Read/Write Notes
5.3.2 Statistics
Field Name Format Notes
5.3.3 Counters
None
5.3.4 Attributes
Attribute name Format Read/Write Notes
6. Appendix B
6.1 Built in subst ( ) substitutions in FidToSyb
The following words are reserved in Sybase and are substituted for the same word but with a z in
front of the name when FidToSyb refers to table and column names in SQL server commands:
ADD, ALL, ALTER, AND, ANY, ARITH_OVERFLOW, AS, ASC, AT, AUTHORIZATION,
AVG, BEGIN, BETWEEN, BREAK, BROWSE, BULK, BY, CASCADE, CHAR_CONVERT,
CHECK, CHECKPOINT, CLOSE, CLUSTERED, COMMIT, COMPUTE, CONFIRM,
CONSTRAINT, CONTINUE, CONTROLROW, CONVERT, COUNT, CREATE, CURRENT,
CURSOR, DATABASE, DATA_PGS, DBCC, DEALLOCATE, DECLARE, DEFAULT, DELETE,
DESC, DISK, DISTINCT, DOUBLE, DROP, DUMMY, DUMP, ELSE, END, ENDTRAN,
ERRLVL, ERROREXIT, ESCAPE, EXCEPT, EXEC, EXECUTE, EXISTS, EXIT, FETCH,
FILLFACTOR, FOR, FOREIGN, FROM, GOTO, GRANT, GROUP, HAVING, HOLDLOCK,
IDENTITY, IDENTITY_INSERT, IF, IN, INDEX, INSERT, INTERSECT, INTO, IS,
ISOLATION, KEY, KILL, LEVEL, LIKE, LINENO, LOAD, MAX, MIN, MIRROR,
MIRROREXIT, NATIONAL, NOHOLDLOCK, NONCLUSTERED, NOT, NULL,
NUMERIC_TRUNCATION, OF, OFF, OFFSETS, ON, ONCE, ONLY, OPEN, OPTION, OR,
ORDER, OVER, PERM, PERMANENT, PLAN, PRECISION, PREPARE, PRIMARY, PRINT,
PRIVILEGES, PROC, PROCEDURE, PROCESSEXIT, PUBLIC, RAISERROR,
READ,READTEXT, RECONFIGURE, REFERENCES, REPLACE, RESERVED_PGS, RETURN,
REVOKE, ROLE,ROLLBACK, ROWCNT, ROWCOUNT, ROWS, RULE, SAVE, SCHEMA,
SELECT, SET, SETUSER, SHARED, SHUTDOWN, SOME, STATISTICS, STRIPE, SUM,
SYB_IDENTITY, SYB_RESTREE, TABLE, TEMP, TEMPORARY, TEXTSIZE, TO, TRAN,
TRANSACTION, TRIGGER, TRUNCATE, TSEQUAL, UNION, UNIQUE, UPDATE,
USED_PGS, USER, USER_OPTION, USING, VALUES, VARYING, VIEW, WAITFOR,
WHERE, WHILE, WITH, WORK, WRITETEXT