Table Of Contents
Server IDL Interface Definition
Server IDL Interface Definition
This appendix contains the WANDEST IDL interface definition.
* The following are versions for each interface that this module
* contains. Client must have the same major version code with the server.
#pragma version WanDest::Admin 2.6
#pragma version WanDest::Server 2.6
#pragma version WanDest::Maint 2.6
* A module defining WanDest (WAN Data Extraction & Synchronization Tool)
* Represents exception that can be thrown by Server
* The date format must be "%m/%d/%Y"
* The date time format must be "%Y-%m-%d %H:%M:%S"
typedef union ColumnDataUnion switch (ColumnType)
case Integer: long intValue;
case SmallInt: short smallIntValue;
case CharString: string stringValue;
case Float: double floatValue;
case SmallFloat: float smallFloatValue;
case Date: string dateValue;
case DateTime: string dateTimeValue;
* Database column definition
typedef sequence<Column> ColumnList;
typedef sequence<Column> Keys;
typedef sequence<Keys> KeysList;
* Database table definition
* Database schema information
typedef sequence<Table> Schema;
* Database table name list
typedef sequence<string> TableNameList;
* List of column values used for Real-time updates.
typedef sequence<ColumnValue> ColumnValueList;
* List of column values used for Real-time updates.
typedef sequence<Value> ValueList;
* A table that client has requested for
* a full upload, incremental updates and real time updates.
* A list of table that client has requested for
* a full upload, incremental updates and real time updates.
typedef sequence<TableSpec> TableSpecList;
* The frpUserName and ftpPassword is necessary for
* the server to ftp the full upload and incremental updates.
* The delimiter is the character that the ascii data file
* must used. If it is empty, by default "|" will be used.
TableSpecList tableSpecList;
boolean returnOneTarFile;
* List of the names of the files ftp-ed to the client side
typedef sequence<string> FileNameList;
* Registration information.
* Used when client creates a new server.
* The IDLVersion is a string containing a concatenations of
* the interfaces versions separated by ":"
* Server object that provides Full Upload, Incremental Updates and
* Real-Time Updates services to a particular client.
* An instance of this object is created, when client invokes
* WanDest::Admin.register() method.
* Get a full upload for table(s) specified by a_request.
* The data will be returned in an ascii format
* with column data for each row separated by delimiter character
* specified in the request. Each row will contain key values
* followed by the column values in the order specified
* Full upload data will be put using ftp from server
* to client within this call. The file names of
* the files sent are returned in a_outfile_list.
* Request for two different set of tables can be
* The starting time of this process is marked as the
* last sync time. This time will be used by
* incremental updates interface.
void getFullUpload ( in Request a_request,
out FileNameList a_outfile_list
* Get incremental updates for table(s) specified by a_request
* since the last sync time which signifies one of the
* 1. last successful full upload,
* 2. last successful incremental updates,
* The data will be returned in an ascii format
* with column data for each row separated by delimiter character
* specified in the request. Each row will contain key values
* followed by the column values in the order specified
* Data will be put using ftp from server
* to client within this call. The file names of
* the files sent are returned in a_outfile_list.
* Request for two different set of tables can be
* If the elapsed time since the last sync time
* exceeds the maximum allowable sync time period,
* (this is a configurable server parameter)
* an FullUploadRequired exception will be thrown.
void getUpdates ( in Request a_request,
out FileNameList a_outfile_list
* Reverts sync time of tables in a_table_list to previous last sync time.
* If called more than once the subsequent calls following the first call
* This can be used for error recovery and redundant system.
void revertSyncTime ( in TableNameList a_tabname_list
* Wait for the insertion of a row of data (specified by
* a_key_values) in the specified table.
* Returns true and the requested columns if the row is found
* Returns false otherwise.
boolean waitForRowInsertion (
in ColumnList a_column_list,
in ColumnValueList a_key_values,
out ColumnValueList a_row_values
* Gets a row of data using stored procedure that takes
* parameters and returns exactly one row of data.
* Returns true a row is returned by the store procedure
* Returns false otherwise.
boolean invokeStoredProc (
in ValueList a_input_param,
out ValueList a_row_values
* Marks the last sync time of a_table_list to
* current-time - STANDBY_LAGTIME
* Where STANDY_LAGTIME is a server parameter that
* defines the window of time in which WANDEST servers
* used in redundant set may be out of sync.
void markSyncTime ( in TableNameList a_tabname_list
* Admin object that provides methods for
* registering and deregistering.
* One instance of this object will be created per WANCV.
* Returns the version informations
Versions getVersion() raises (Exception);
* Registers to WANDEST. This will create a new persistent
* WanDest server for the client or return an existing one.
* The marker_name of the server is:
* "<client_host_name>.<client_application_name>"
in RegistrationInfo a_reg_info
* Deregisters from WANDEST. This will delete a WanDest server.
* Use this only if client no longer need WANDEST services.
* Returns database schema
Schema getSchema () raises (Exception);
* Returns schema for a select tables
in TableNameList a_tabname_list
* Validates the schema specified by the request
in TableSpecList a_tabspec_list
* A list of strings describing the status of the request.
typedef sequence<string> RequestLog;
* A list of strings describing all WANDEST thread activities
typedef sequence<string> ThreadActivities;
* Maintenance object that provides methods for maintenance
* and run-time diagnosis.
* One instance of this object will be created per WANCV.
* Returns the last <n> requests made to WanDest::Admin and
* WanDest::Server objects.
RequestLog getRequestLog() raises (Exception);
* Returns the activities of all WanDest threads
ThreadActivities getThreadActivities() raises (Exception);
* Cancel the thread that is processing a full upload or incremental
* (NOTE: Due to what seems to be a Solaris/compiler bug, this
* function is disabled. If the thread hangs because of the unload,
* compress or ftp process, just kill the process.)
* Sets the logging level to n