Release 3.0 - Added Features And Bug Fixes
Summary
The current full Dataworks Enterprise release is 3.0.1, released in November 2002.
The main focus of this release have been to provide support in the following
areas:
-
Threading - Support for multithreaded apartment models.
-
Routing - Support Load-balancing within the core of Dataworks Enterprise.
-
Auditing - Provision of a mechanism for recording all data requests made to
Dataworks Enterprise.
-
Permissioning - Support for "end to end" permissioning models.
-
Resolution - Support for TKO, Datastream and XREF data sources.
-
Large Document Services - Core support for delivery of large documents through
Dataworks Enterprise.
In addition, there have been a number of feature enhancements to individual
modules as well as maintenance fixes. These are described in detail below.
As with all full releases of Dataworks Enterprise, all previous patches are rolled up into
a single install.
Note on version 3
Please note that version 3.0.0 build 181 has been immediately superseded by
version 3.0.1 build 182. Build 182 contains an important fix in the RTCache.dll
and RemoteClnt.exe modules.
Bug fixes
Version 3.0.1
A problem occurs with a particular sequence of requests using renames requested
over a RemoteClient/Server connection. Once in this state, images in response
to requests maybe overwritten by the image of a different request. This fix
required a change in RTCache.dll and RemoteClnt.exe.
New features
The following lists new modules added to Dataworks Enterprise since version 2.3.
X-Press
This module provides support for XML queries and responses against Dataworks Enterprise
core APIs. The principle component is a COM object that accepts an XML request,
using a language based on XSLT, and returns a XML text stream corresponding to
the result of that request.
The processing of that request can be referred to as inflation, whereby
values within the xml request are substitued for the result of Dataworks Enterprise data
requests. This can include iteration of values (for example from a list
request) to control further processing including nested Dataworks Enterprise requests.
The request language is compatible with a sub-set of XSLT providing most of the
output formating abilities, templates, variables, and a compatible function
syntax for select statements. Addtionally there a Dataworks Enterprise-specific extensions
to enable access to Dataworks Enterprise data.
The functionality is easilly deployed as a web service supporting developments
where COM is not appropriate but a http based query-response is suitable. As a
web service, it suits either a two tier development model where the X-Press
service delivers 'data xml' in order to be transformed (with normal XSLT) to a
web page, or a single tier where X-Press outputs html directly (or other text
formats like csv).
Source View
This module provides an interface to allow the operator to view and manage
multiple routes within the core system. It is available from the Tools... menu
of the launcher. It displays a list of all routes in the local cache with
underlying routing and cost information as well as statistics relating to the
use of that route.
Audit Server
This new Dataworks Enterprise source collects Audit information from clients and makes this
information available as a file.
TKO and TKOMap
This module provides an interface to TKO either as a query tool or as a source
to the Resolution service. This tool is only installed as a central system
service. Users needing to get access to this data should contact their sales
representative.
Intraday
This module provides an interface to GlobalILX Trade Servers to provide intraday
data to Dataworks Enterprise users. This tool is only installed as a central system
service. Users needing to get access to this data should contact their sales
representative.
Trace Manager
This is a new Trace Manager module which is less CPU intensive than the previous
version.
Changes
The following lists bug fixes and changes to Dataworks Enterprise, by module.
Cache
-
Resolving multithreading issues and support for multithreaded apartments.
-
Provide load-balancing in the core code. New implementation of FailOver.
-
Auditing provision, upgrades to permissioning and support for "end to end"
requests.
-
Support for custom interfaces in VB (improves event performance by a factor of
two).
-
Performance improvements for stats collection and the ability to remotely reset
the statistics.
-
Allow internal "names" to be deleted when no longer in use (fixes a potential
leak).
-
New utility functions for getting paths and directory names.
-
Fix: Buffer overflow on large trace functions.
-
Setting RTPartial field indicator disables compression.
-
More robust on closedown and when there are multiple versions of the cache DLL
installed.
-
Fix: Memory leak when copying arrays of complex type.
-
Fix: Blocking mode error on chain requests.
-
Fix: RTPrincipal2 and RTDataRef2 coclass objects could not be instantiated.
Source Monitor 2
-
Improve handling of form visibility under launcher - previously always came up
hidden when run under launcher.
-
Fix test controls for Datatsream and StoreSvr.
-
In user input control allow CR on any text box to submit request (previously
only instrument part).
-
Add "login" option for Dataworks Enterprise permissioning.
-
Add "symbol set" and "options" text boxes to user input control (viewable in
field list from right click menu).
-
Add "follow link" option to field list control.
TFUtils - NewsHelper Object
-
Add 30 second timeout to request processing.
TFUtils - Large Document Services
-
Support for delivery of large documents through Dataworks Enterprise.
NewsReal & NewsSvr
-
Source status maintained in line with that of the Content Indexer.
Resolution
-
Support for Expiry added.
-
Additional checking on validity of symbol values.
-
Support for multiple roles in access to database.
-
Better handling of inaccessible database servers.
RTLaunch
-
Selecting a module no longer deletes program from the list. Instead it
highlights programs from the selected module.
-
Launch admin object reimplemented as a singleton to support DCOM connections.
-
Launcher optionally provides pipe redirection for StdOut and StdErr.
-
Probe sets CRT Library error mode to StdErr by default.
-
Columns may be reorder in task, tool and process views.
-
Tidy redundant menu separators.
-
Support -Server <servername> in RTMonitor.
Dataworks Enterprise Client
-
Allows requests from specific source routes in order to overide inbuilt
load-balancing mechanism.
-
New Host route information display for complex routes that involve
load-balancing across multiple sources.
-
FIX: Login password is now always overwritten if save option is selected.
Previously only saved if successful login.
RTVers
-
Now shows APCNotify version information.
-
Capability to Publish results to an external HTTP server.
APCNotify
-
Fix: Use of thread local storage fails on Web Servers causing very slow
response times. TLS now replaced by Spin Lock.
SDK
-
Addition of CLR Primary Interop Assembly for .Net Support.
-
New Dataworks Enterprise client examples which are radically simplified making them a
better instructional tool.
-
Addition of new interfaces reflecting changes in the cache API.
-
Addition of C# Example.
Stove Server
-
Looks for image renames from upstream source and passes down (configurable).
-
Supports mirroring "symbol set" configuration of upstream source.
-
Supports mirroring "symbol set" and "options" in requests.
-
Config option to allow store server to "logon" using Dataworks Enterprise permissioning
when making client requests.
-
More flexible expiry time options; including fixed intraday times.
-
Looks for "__CONTENTEXPIRYUTC" field in "upstream" records indicating time this
record should be refreshed.
-
Adds "__CONTENTEXPIRYUTC" field to all records indicating time this record will
be refreshed.
-
Uses Dataworks Enterprise API call SetExpiryTime to set item expiry.
-
Changes to caching algorithm to improve performance and fix problem with long
requests incorrectly picking up cache files from other requests.
ADO Handler
-
Improve error handling and detection of error conditions, particularly from
Oracle database connections.
-
Add option to configure "connection monitoring" request, standard will be
"/NOW". This request acts as a "ping" of the database, refreshing every minute,
and updates the "_SOURCE" status record used by monitoring.
-
Add configuration options to support returning arrays of variant values
including nulls from the database - previously would always convert null's to a
well-known type, such as double's set to zero.
Datastream Handler (History source)
Note that the Datastream handler is updated as part of this release. However it
is not generally deployed to a "client site" - a client will normally access
Dataworks Enterprise-Datastream content by connecting to the main Dataworks Enterprise infrastructure
in Thomson. The deployment of new versions of Dataworks Enterprise on that infrastructure
normally follows some time after general releases of Dataworks Enterprise.
-
Supports permissioned requests against Datastream (if so configured) and
integration with Dataworks Enterprise Permissions system.
-
Add "~#xxx" request modifier to override default Datastream id and use that
supplied in request.
-
Add "~CAP" template to return capital structure items.
-
Add "~IDTP" template to return intraday datatypes, with an expiry time every 30
minutes.
-
Adds "__CONTENTEXPIRYUTC" field to all records indicating time this record will
be refreshed.
-
Add "~NOW" request to indicate connection to the Datastream mainframe. This
record is automatcially refreshed every minute and updates the "_SOURCE" status
record used by monitoring.
-
Uses Dataworks Enterprise API call SetExpiryTime to set individual item expiry.
-
Status monitoring records are pushed into cache and update on a timer to reduce
impact on handler performance. Also include time of last update from the
server.
-
Fix bug handling Navigator searches containing special characters.
-
More error conditions will exit the handler rather than return Fail statuses.
XREF
-
The search for collateral information against domicile instruments is now done
fully on the ingest side. Previously this was also partially done on the
outbound server side. This produced ana anomaly in that data returned in a
request for a single instrument did not fully match that returned when the
instrument was part of the result set of a complex query. This fix now ensures
the data is identical regarldess of the request format.
-
FIX: Ingest of the CUG field would crop CUG values that were greater than 1000.
e.g. CUG 1234 became 234.
Excel Addin
-
RTImport now supports optional parameters for supplying Options and SymbolSet
data.
-
Added RTSnapShot and RTSnapshotEx formulas. RTImport makes non-blocking
(asynchronous) requests against a source. As such, the formula usually returns
0 when first called against an instrument. This is because the data is usually
not immediately available when first requested. When the asynchronous request
is eventually fulfilled, the data is pasted into the cell. Some workbook
implementations require that the formula does not return until the data has
been successfully returned. To this end RTSnapshot and RTSnapshotEx have been
added to provide blocking requests against a source. Both formulas should be
used with the workbook in manual calculation mode. RTSnapshot drops all the
requests immediately after all the calculations have been performed.
RTSnapshotEx keeps all the requested items on watch (as per RTImport) in the
event that the manual calculation needs to be continually repeated. Although
the items are kept on request, RTSnapshotEx ignores any data updates until the
next manual recaclulation is performed.
-
Added alias methods Press_RT, Press_Snap and Press_SnapEx for formulas
RTImport, RTSnapshot and RTSnapshotEx, respectively.
-
Since RTSnapshot and RTSnapshotEx make blocking calls, they can produce a slow
response if many requests are made. This is due to the fact that each Excel
formula has to block until the data is retrieved. e.g. making 1000 separate
snapshot requests, will require each call to block whilst it retrieves the
individual instrument. The best route is to have all items on request prior to
making the RTSnapshot calls. To enable this, new methods, RTSnapshotPreRequest
and RTSnapshotExPreRequest have been added to allow all the instruments to be
prerequested prior to the RTSnapshot calls being performed. This ensures all
the instruments are requested asynchronously, only blocking when Excel calls
the relevant formula. This method should always be cut and repasted into the
workbook prior to saving it. As the last formula added, it is the first formula
called when the manual calculation is invoked, thereby ensuring the items are
requested before the other formulas are called.
Remote Server
-
Upgraded comms protocol to support load-balancing and "end to end" permissioned
requests.
-
Finder broadcast socket is now disabled by default.
-
Configuration now enables incoming connections that have undergone NAT
addressing to be assigned to group membership based on true IP address.
-
FIX: GroupMember configuration entries were not being read properly under
certain configurations.
-
FIX: Bug in versions 2.3.0 Build 163 when interfacing between hubs running
versions 2.1.x. Internal buffer optimisation did not correctly cater for
downloading to versions 2.1.x, resulting in data being discarded. This fix was
patched in 2.3.1 build 164.
Remote Client
-
Added support for load-balancing and "end to end" permissioned requests.
-
FIX: GPF occurred on modules that used Finder Socket protocol to listen for
available Remote Servers. The GPF occurred due to a race condition where a RC
came up just as a RS was closing down. The RC received a delete message before
an update message from the Finder protocol resulting in a GPF. Code now caters
for this condition.
Permissions
-
The database schema has been redesigned around an account hierarchy. Users are
assigned to one specific account, but can inherit properties and entitlements
from that account and all its ascendants.
-
The database now supports properties required for auditing and "end to end"
requests. These properties are returned as part of the Account data.
-
Checks for changes to Account contents are now synchronised against the
database's timestamp.
-
FIX: The field filtering mode of permissioning had an error whereby a field
mask of 0 (display fundamental fields only) resulted in an access denied state
on the entire record.
-
FIX: The STATISTICS request now updates properly.
Do not hesitate to contact us at PressSupport@tfeurope.com
for further information.