Process Template used to provide a single entry point for Real Time and Historic database queries. The Gateway process is also used to provide failover between backend databases. The gateway process, DS_GW, connects to a user defined list of server processes, and provides a single unified access point for clients to the entire server bank.
It carries out necessary aggregations on data sources on multiple servers, and returns the aggregated result to its clients. The Gateway is capable of servicing requests arriving by either sync or deferred sync requests. If a sync request is received, the Gateway will carry out successive sync calls to the appropriate function.
The below table details the GW template parameters.
|collectFunct||Analytic||dxCollect||Specifies which analytic to use as the query collect function.|
|analyticMap||Configuration||DS_GW_AnalyticMap||Map between analytic on GW and analytic on server+agg function|
|pooled||Boolean||false||Boolean flag to indicate the preferred order in which servers will be accessed for async queries|
|syncDispatch||Analytic||dxSyncDispatch||Specifies sync dispatch function|
|asyncDispatch||Analytic||dxAsyncDispatch||Specifies async dispatch function|
|processConfig||Configuration||DS_GW_Servers||Servers used by GW|
|initialStateFunction||Analytic||dxEmptyFunctionNull||Sets the analytic to run on startup|
|Time||Integer||0||Frequency at which to poll and process subscription results|
|logQuery||Boolean||true||Boolean flag to indicate whether to log the query on execution server|
|queryParser||Analytic||true||Hook to .z.ps and .z.pg|
|subscriptionChannel||Symbol||Channel to subscribe to|
|subscriptionTableList||Symbol||List of tables to subscribe to|
|publishChannel||Symbol||Channel to publish on|
|publishTableList||Symbol||List of tables to publish to|
|realTimeMsgFunct||Analytic||dxEmptyFunction||Real-time messaging function|
|gwStringQuery||Boolean||false||Send gw queries to target databases as strings|
The Gateway is capable of servicing either sync or deferred sync requests but not simultaneously.
- If a sync request is received, it will block the Gateway until it has been fully serviced.
- In contrast, if a deferred sync is used, the Gateway will not be blocked. It will distribute the query to its bank of servers as needed, and will return the aggregated result to the client once all servers have returned. Until the servers return, the Gateway is free to handle other incoming requests.
Used to query between processes
|dict||dictionary||Details of target process|
|query||symbol||Query for target process|