Dataworks Enterprise Release 2.3.0


Dataworks Enterprise 2.3.0 was released in April 2002. This release is a consolidation of all known bug fixes to that time plus some feature enhancements.


This release is available from Dataworks Enterprise download site or on CD (please contact your Thomson Financial account representative).


This is a complete release of Dataworks Enterprise. It may be installed on a new workstation or as an upgrade to a previous versions. Upgrades are supported to all versions of Dataworks Enterprise since 2.0.0 (build 143).


These details concern Dataworks Enterprise software release 2.3.0 only. Handlers and other components detailed in this note will not necessarily be deployed on to Dataworks Enterprise Production Network immediately. That deployment will follow a separate schedule.

New Additions

The following lists new modules added to Dataworks Enterprise.
This module acts as a mirror source that can route requests via a (configured) prioritised list of input sources. Channel supports options that allow either rapid or phased failover of previous requests from lower to higher priority input sources. It can also supports multiple channels each running under a separate thread.
New module supports intraday quote data from Global Topic trade servers.


The following lists bug fixes and changes to Dataworks Enterprise, by module.
  1. Optimisation through the use of thread-local storage
  2. Fix to threading problem causing system lock (even Ctrl-Alt-Del has no effect)
  1. Fixes to compression of array containing negative numbers and to initialise the tick size to 1.0 eliminating spurious results of expansion.
  2. Checking for only one symbol set when removing from an incoming request. This helps sources which only support one symbol set.
  3. Race condition in CheckEndPoints means delete Endpoint that has just cleaned itself up. Try and remove EndPoint and fail and log a message. Only log if successfully removed EndPoint.
  4. Correct problem in Statistics collection for numbers of endpoints
  5. Cache controls now support IProvideClassInfo2
  6. De-register new CLSID's as being controls - so they don't appear in VB toolbox. New interfaces should be used via the References dialog.
  7. No resolution on mappers, sources claiming to support any symbol set or Resolution itself. Make sure handle sources with no symbol set separator.
  8. Fixes to permissions login where resetting password.
  9. Minor performance improvements
  10. Add source level trace messages (plus new trace manager)
  11. Fix problem with very long trace messages
  12. Fix when enumerating configuration settings for wildcard matches and verifying that they are a match.
  13. Fix to error message if not setting log name prior to logging messages
  14. Bug in CacheStats where server and source counts were mixed up. Don't pass up CacheStats requests via RC and Freeway. Stats are always local. This greatly helps in reducing the bandwidth requirements when monitoring a system.
  15. Fixed bug corrupting arrays of VARIANT type in archive stuff
  16. Compression now supports NaNs and zero length arrays
  17. Clients now handle special field renames, servers delete renamed items out of line.
  18. Added oleautomation to IRTCClientEvents (and similar) to allow these to be marshalled. This is required if you want to use RTCache as a COM+ application - for reasons best known to MS.
  19. Cache now propagates stale msgs if already stale provide stale code or msg is different.
  20. Removes resource leak in field painting code.
  21. Type library changes to discriminate between various versions of cache.
  22. The performance boost for the foreground application is now not disabled by default when Dataworks Enterprise is first launched.
Simple Client Program
  1. Instrument combo box remembers source/instrument/options/symbol set
  2. Options are enterable on the main form screen (rather than on the options dialog)
  3. Symbol Sets are enterable on the main screen (options dialog is now just the application default)
  4. Provides a history (depth is only one) allowing you to go back to the previous record
  5. Source info now tells about other things about a source apart from just its route
  6. Options and Symbol Set boxes enable or disable depending on whether the source supports the features
Source Monitor Server
  1. Rename program to "Source Monitor Server"
  2. Remove view control from default interface - can still be enabled from menu. Normal procedure should be to view status information remotely via Dataworks Enterprise connections (for example using the SrcMon2 application).
  3. New request which is simply a valid source name will provide a record giving details of the source
  4. Source Monitor View for a source provides more information
  5. Add "version$" request to provide version details of components installed on server.
  6. Add "config$" request to report Dataworks Enterprise configuration database current on server.
  7. Add "drive$" request to report details on a disk drive on server. For example, "drive$c" returns details on C:, including disk size and free space.
  1. Fix bug handling renamed items.
  2. Now propagates source type, data type and symbol sets unchanged from the first incoming source (except if you select exposed or published source from the interface, in which case it adds the appropriate flags to the source type).
  1. RTLaunch now allows you to interactively or through COM do a software abort (i.e. generate a stack trace of a program and close it down). These are actually two quite separate operations. Thus it is possible to do a stack trace and then continue, but it may make sense to present it as part of the same thing.
  2. RTLaunch Program has a new readonly property called hWnd which is the handle of the window it is managing for hide and show as well as polling.
  3. Bug fixed in script loading the same script repeated and dealt with some problem associated with security contexts.
  4. New option to disable the exit menu when running as a service (registry entry "HasExitMenu", defaults to 1 (true)). To disable, add the entry and set it to zero.
  5. Removed dependency on WININET.DLL and link to it on the fly so that the launcher can be installed and run without having to have WININET installed.
  6. Added to environment: IP_HOST_NAME The fully qualified DNS name of the host IP_HOST_ADDR A semi-colon delimited list of IP addresses available on this host.
  7. Fixed a bug in the RTLaunch.exe on NT does not allow display of Page Faults or Page Faults delta on NT when it should.
  8. Bug fixed where the launcher ignores windows with empty names.
  9. Sizeable horizontal and vertical windows
  10. PID in hexadecimal not decimal. To conform with Task Manager.
  11. Temporary script file to be backed up (to configurable number of instances). Controlled by the key NumUserScriptBackups and defaulting to 1
  12. Persistent option is on by default in Add Process Dialog
  13. New method called wait in the script host (default script environment). This is analogous to the Wait command in the old launcher syntax. The method takes a single argument which is a variant and can be: a) a number, in which case, the number is assumed to be milliseconds to wait for. b) a string, in which case, checks if it is a file name and if so, wait for the file to come into existence. If it is not a valid file name, attempts to open a Mutex, Event or Semaphore. If these are successful wait on the object to be signalled. If not, return an error. In all cases during which waited time the script engine will stop executing, but incoming method calls will continue to be handled
  14. Task List View Show scheduled tasks in a modeless popup. Updates when scheduled task executes or changes. Allow add edit, delete or execute Now on the task and setting of detailed logs for each task. Tasks can now be persisted automatically.
  15. Tool List View Show tools in a modeless popup. Updates when tools change. Allow add edit, delete on the tool and setting of detailed logs for each tool. Tools can now be persisted automatically.
  16. Run Script View Allows scripts to be loaded edited and sent to the execution engine for testing purposes. Scripts can then be saved (no persistence support).
  17. Changes to object model, Tools and Task now have persistence, tasks have an execute method.
  18. Bug fixes to Tools and tasks remove method, better handling of dialog messages, management of child dialogs during minimise, editing tasks and better error reporting for invalid tasks and tool parameters.
  19. Configurable ignore window lists. The reg key HKLM/System/CurrentControlSet/Control/RTLaunch has values: IgnoreClasses REG_MULTISZ Prefixes to class names to be ignored (added to those below) IgnoreWindows REG_MULTISZ Prefixes to window names to be ignored (added to those below) The default list of class names are: Auto-Suggest Dropdown, BaseBar, ComboLBox, IME, Internet Explorer_Hidden, msvb_lib_tooltips, NDDEAgnt, OfficeTooltip, OleDdeWndClass, Shell_Traywnd, SysFader, ThunderRT6FormDC, ThunderRT6Main, TOSC:, ToolbarWindow32, tooltips_class32, VcTipWindow, VsCompletionPane and window names: Socket Notification Also, new verbose message when a window is connected (giving handle, class name and window name).
  20. Better closedown code for stop/restart stuff, specially in the case where a window is not found. Handles VB forms better.
  21. Stopped printing complete symbol lists in a stack trace when in detailed log mode as it generates multi-megabytes for VB, takes over five minutes to do (in which the launcher won't operate properly). It doesn't give us much anyway.
  22. Add the ability to open files either from config or system config from the File menu.
  23. The File menu is added to the taskbar menu
  24. Fixed the problem with not getting the default action in the task menu.
  25. Fixed the bug associated with doing a collection lookup using a number from VBScript (affects all collections in the launcher).
  26. Save settings box is now checked by default
  27. Changes to settings are saved away immediately to the registry.
  1. Ability to filter by category code on ingest. The new key allows an arbitrary collection of category codes to be used as a filter string with AND, OR and NOT logic and nesting in parentheses. For instance the filter might look like:
    ((MONEY OR BOND) AND (R/US OR R/EU)) OR 77070
  1. Added CountryCode field from Company level request.
  2. Added Count ? query option which just returns number of items in a query.
  3. Can pass desired returned chain length with requests as optional data (LinkSize=%d).
  4. Source mirroring option is now disabled by default.
  5. Configuration file default now lists all GlobalTopic supported exchanges.
  6. Suffix field upgraded to support 5 character exchange codes.
  7. Can now enter manual list of exchanges to do immediately.
  8. Added configuration that prevents deletion of exchange entries if more than 10% of items being deleted.
  9. Manual list option can be used to override 10% deletion limit.
  10. History field now removed as this supported legacy client requirement.
  11. LIST, ? and EXCH queries can now accept COLUMNS= option that lists desired field list to be returned in chain.
Excel Addin
  1. Fix bug where string validity check on RTImport parameters rejected Excel ranges.
  2. Fixed leak where if RTImport used cell references, changes to the instrument in the cell references would not release previous request.
  3. Added _RTStatusType, _RTStatusCode and _RTStatusMsg fields so that they can return the record status in RTImport
  1. Fixed leak in CRTField assignment.
  1. Now limit total number of requests upstream based on limits set by RemoteSvr.
  2. Now do pending limits on number of requests upstream based on RemoteSvr settings.
  3. If RC renames source, it now adds rename to the Host Route details of the source.
  4. Sources submenu now split into one for data and one for stats sources
  5. Added menu option to force socket disconnection.
  1. Now send Group and max request details to RemoteClients in the VersionInfo msg.
  2. Added splitter window between treeview and logger window.
  3. Treeview now lists number of RemoteClient connections.
  4. Treeview now manages RemoteClient connections on a group basis.
  5. Now supports optional outbound source renaming.
  6. Now supports Group membership configuration using multiple line entries.
  7. Now supports Sourcesets to simplify configuration of sources on a group by group basis.
  8. Group name, onwatch and pending levels now reflected in client request on the system source.
  9. Client statistics item now doesn't make itself stale when client disappears.
  10. Source Loadings menu option now lists all sources rather than just sources with load.
  11. Now allow user to display list of source mappings per group.
Global Topic
  1. Logging changed to detail when the source was dismounted.
  2. Dismount message & time also recorded on the text box of the handler dialog.
  3. Mag list fix - failure now does not occur with Mag list config greater the 256 bytes.
  4. Level 2 information availiable in form of yellow strip, including depth for market makers and quotes plus yellow strip.
  5. The handler is configurable to be delayed before logging on. This is to partly suppress the continues 'head banging' the handler does to try connect to the same GT server (but the server will not allow a logon for certain period). The added benefit is this stops overloading the log with worthless messages.
  6. Redundant messages from the GT Server suppressed whilst logged off.
  7. INDEX instrument added to provide a 'root exchange' navigation of the PGE handler data.
  8. Added Source Monitor 2 support & '_help' record added for details on the handler
  9. Added Resolution support (symbol set is "PGESymbol").
Datastream (History)
  1. Support underlying changes in ds xml and rover api's.
  2. Better handling of DS expressions in request.
  3. Better handling of DS errors.
  4. Option to return NaN condition as the IEEE standard value using ~NA=NaN. Default is still to return zero (this is being reviewed).
  5. Support for yearly timeseries (~Y) option.
  6. Added Resolution support (symbol set is "DSCode").
  7. Added extra module "dsMap" for Datastream mapping using Resolution. This supports all standard symbologies used by Datasteam under the umbrella input Resolution coding of "Datastream" and maps to the base "DSCode" symbol set.
  1. Enable permissioned requests with VFDB username/password. Note this is not the same as Dataworks Enterprise permissioning. The request is passed, with username and password to the VFDB server for authentication and processing. Request is appended with "#user,password". Request templates may specify that this option is required.
  2. Add broker detail template "/BROKERDETAIL". This request must have the username.
  3. Renames requests with username to base request if username not required. This will be used by a downstream storesvr mirror that will always append username for a given client.
  1. Enable request by ISIN.
  2. Handle errors in underlying xml api.
  3. Extra field for percent change of any individuals holding (PCCHANGE).
ADO Handler
  1. Minor bug fixes.
  2. Supports specifying symbol in configuration.
  3. Supports substitution parameters from requested instrument. For example, request may be "X=1 Y=2" which maps to SQL statement specified in config file containing $(X) and $(Y) codes to get sustituted (by 1 and 2 in this example). Defaults may be specified in config file.
Store Server
  1. By default mirrors symbol set from underlying source.
  2. Handle renames on underlying source. Saves both requested and renamed images to disk cache.
Base Server
This module provides code base for Datastream, VFDB, Piranha, Sharewatch, ADO handlers and Store Server. Fixes apply to all those modules.
  1. Improved disk cache handling and cleanup. As disk free space reduces cache clean up frequency increases and converse.
  2. Improved log message handling - messages are queued and written to file/list window on a posted message process.
  3. Remove some propagation of status values (for example from _SOURCE to _SERVER record) to improve overall performance.
  4. Fix bug handling recursive calls to server - in fact prevent processing requests recuvsively using a pending queue. This was causing some GPFs in ado and xml handlers.
  5. Cache "no such item" to disk statuses by derived classes.