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

0 komentárov

Nie ste prihlásený. Akékoľvek zmeny, ktoré vykonáte, sa označia ako anonymné. Ak už máte svoj účet, pravdepodobne sa budete chcieť prihlásiť .