Funkcia spôsobí prerušenie vykonávanej požiadavky klienta na danej session pri najbližšej možnej príležitosti (pred každým výrazom v EDA-L a pred každým čítaním vektora; prerušenie počas vykonávania databázovej operácie nie je implementované). Prerušenie požiadavky sa prejaví návratovým kódom ERR_CANCELED na výstupe externej EDA funkcie, ktorá bola takto prerušená.
Deklarácia
%EDA_CancelSession(
INT in _sessionId
)
Parametre
parameter | dátový typ | typ | popis | |
---|---|---|---|---|
1 | sessionId | INT | IN | Identifikátor session, ktorej vykonávanie sa má ukončiť. Identifikátor je možné získať volaním funkcie EDA_GetSessionId. |
Príklad použitia prerušenia po uplynutí timeoutu:
; E.EDA_Read - server event vykonavájúci čítanie vektora BEGIN RECORD NOALIAS (SD.EDA_ReadValuesFromVektor_Params_V1) _readParams RECORD NOALIAS (SD.ARR_REAL) _values INT _errorCode, _sessionId TIME _bt, _et ; nastavenie timeoutu aktuálnej session na 10 sekúnd CALL %EDA_GetSessionId(_sessionId) CALL [E.EDA_Timeout] SetTimeout(_sessionId, 10.0) ASYNC ON (%GetParentProcessHBJ()) ; načítanie vektora _bt := %TimeFromItems(2016, 1, 1, 0, 0, 0, 0) _et := %TimeFromItems(2017, 1, 1, 0, 0, 0, 0) - 1 _readParams[1]^structVersion := 1 CALL %EDA_ReadValuesFromVektorRec("test.timeout", _bt, _et, 0, _readParams, _values, 1, _errorCode) IF _errorCode = 26 THEN ; ak načítanie neprebehne do daného timeoutu, tak návratový kód bude ERR_CANCELED ENDIF END |
; E.EDA_Timeout - server event implementujúci prerušenie po uplynutí timeoutu RPC PROCEDURE SetTimeout(IN INT _sessionId, IN REAL _timeout) DELAY _timeout[s] CALL %EDA_CancelSession(_sessionId) END SetTimeout |
Súvisiace stránky:
0 komentárov