__ODAC_Terminate_Event__

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
amoroder
Posts: 30
Joined: Sun 12 Sep 2010 11:33

__ODAC_Terminate_Event__

Post by amoroder » Wed 24 Jan 2018 13:28

Hello,

our dba noted that the CPU utilisation of our Oracle server doubled.
In the top activity this statement is second

update "SYS"."DBMS_ALERT_INFO" set "CHANGED" = 'Y', "MESSAGE" = '__ODAC_Terminate_Event__' where "CHANGED" = 'N' and "MESSAGE" = _ODAC_Terminate_Event__' ......

According to our DBA he has never seen this statement before in the top 10.
Yesterday one user generated 1000 such statements in one minute.

Could anyone please tell my when this statement is generated,

Thanks you very much
Andreas

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: __ODAC_Terminate_Event__

Post by MaximG » Tue 30 Jan 2018 07:57

The event _ODAC_Terminate_Event__ will be generated by our components when calling the OraAlerter.Stop method. Check the calls of this method in the source code of your product.
In addition, make sure that the value of the OraAlerter.Inteval property when using TOraAlerter is not 0.

amoroder
Posts: 30
Joined: Sun 12 Sep 2010 11:33

Re: __ODAC_Terminate_Event__

Post by amoroder » Fri 23 Feb 2018 11:05

Hello Maxim,

thank you for your answer.
Does odac also execute this query ?

SELECT DISTINCT SUBSTR(KGLNAOBJ, 11) SID FROM X$KGLOB WHERE KGLHDNSP = 7 AND KGLNAOBJ LIKE 'ORA$ALERT$%' AND BITAND(KGLHDFLG, 128)!=0 UNION SELECT DISTINCT SID FROM DBMS_ALERT_INFO

We find this in the top 10 queries in our oracleDB.

Thank you
Andreas

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: __ODAC_Terminate_Event__

Post by MaximG » Mon 26 Feb 2018 07:42

Your query is not executed to make OraAlerter work properly

amoroder
Posts: 30
Joined: Sun 12 Sep 2010 11:33

Re: __ODAC_Terminate_Event__

Post by amoroder » Mon 26 Feb 2018 15:37

Hello Maxim,

I don't understand your answer. probably my question was not clear.
Does the odac package execute this query in some place?

Regards
Andreas

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: __ODAC_Terminate_Event__

Post by MaximG » Tue 27 Feb 2018 13:36

ODAC doesn't execute this query. However, when working with OraAlerter, ODAC uses the DBMS_ALERT package and the query you described can be executed within any procedure of this package

amoroder
Posts: 30
Joined: Sun 12 Sep 2010 11:33

Re: __ODAC_Terminate_Event__

Post by amoroder » Wed 01 Apr 2020 13:36

Hello Maxim,

I came back to this topic because we have big problems with locks connected in some way with the alerts.

Does ODAC execute this statements ?
UPDATE DBMS_ALERT_INFO SET CHANGED = 'N' WHERE SID = :B2 AND NAME = :B1
SELECT NAME FROM DBMS_ALERT_INFO WHERE SID = :B1 AND CHANGED = 'Y'

Regards
Andreas

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: __ODAC_Terminate_Event__

Post by MaximG » Thu 02 Apr 2020 06:32

As we mentioned earlier, ODAC doesn't execute this query. However, when working with OraAlerter, ODAC uses the DBMS_ALERT package and the query you described can be executed within any procedure of this package

Post Reply