Kód eventu je vykonávaný v rámci EVENTHANDLERA jednovláknovo. Prichádzajúce požiadavky na spracovanie (napr. RPC volania) sú radené fronty a postupne sa po jednej spracujú.
V prípade eventov, ktoré sú využívané ako služby (napr. niečo spočítajú, dodajú dáta, ...) jednovláknový dizajn môže spôsobiť úzke hrdlo čo sa týka výkonu systému. D2000 ponúka možnosť vytvoriť "cluster" eventhandlerov, čím sa vykonávanie eventov stane paralelným - inštancia eventu beží na každom EVH, ktorý je členom clustera.
Spustenie EVH ako člena clustera sa vykoná parametrom:
--CLUSTER-JOIN:<meno_konfiguračného_evh> /W<meno_tohto_evh>
Parametrom <meno_konfiguračného_evh> špecifikujeme meno EVH. Všetky objekty typu EVENT, ktoré sú potomkovia daného EVH, budú spustené na <meno_tohto_evh>.
Príklad:
Majme proces SERVICES.EVH, ktorý je rodičom server eventov E.SERVICE1 a E.SERVICE2
Spustíme WORKER1.EVH, ktorému prepínačom --CLUSTER-JOIN:SERVICES.EVH nastavíme, aby vystupoval ako člen clusteru pre SERVICES.EVH. To spôsobí, že WORKER1.EVH spustí eventy patriace SERVICES.EVH, tj. E.SERVICE1 a E.SERVICE2 a podieľa sa na vykonávaní požiadaviek, ktoré smerujú na SERVICES.EVH do týchto eventov.
Podobne ďalšími WORKER2.EVH, WORKER3.EVH, WORKER4.EVH... ďalej paralelizujeme vykonávanie E.SERVICE1 a E.SERVICE2.
Smerovanie RPC do jednotlivých paralelizovaných eventov je vykonané podľa nasl. pravidiel:
1) Synchrónna RPC, asynchrónna RPC, začiatok konverzácie:
2) RPC ktorá je pokračovanie/ukončenie konverzácie:
Kedy paralelizovať:
Ak nepotrebujem držať stavovú informáciu
Ak nepotrebujem zachovať poradie spracovania