How to execute CtrlADO functions threaded / parallel...


In the WinCC OA config file you should set the following parameter in the [general] section:


[general]
parallelCtrlADO = 1


With this option CtrlADO Functions are executed not blocking!


In cause of backward compatibility the default is NOT to execute statements in parallel. 


Without parallelCtrlADO=1 each call of a CtrlADO function (dbStartCommand, dbOpenRecordset, dbGetField, dbGetResult, …) will block other CtrlADO function to start, it will wait until the other function is finished! Even if they are in different / WinCC OA Control threads!

You might run into a deadlock without parallelCrtrlADO:

* Thread A> update table-row-1 without commit

* Thread A> doing some other work

* Thread B> update table-row-1 ... the database enginge will wait until the lock of Thread A is released...but Thread A will never ever execute statements because the update of Thread B blocks the whole control manager (without parallelCtrlADO=1)

Last update:
2014-09-09 19:17
Author:
Andreas Vogler
Revision:
1.0
Average rating:0 (0 Votes)

You cannot comment on this entry

Chuck Norris has counted to infinity. Twice.