Hallo!
Ich hab hier ein kleines Problem:
Im Großen und Ganzen geht es darum, verschiedenste Events an einen Server weiterzuleiten. Beispielsweise wenn neue Functions erstellt oder gelöscht wurden, oder eben wenn eine Connection zwischen 2 Functions erstellt oder getrennt wurde.
Für den Part mit den Connections greife ich das EsSwitchConnectionUpdate-Event ab.
Nun besteht leider das Problem, dass zum Zeitpunkt wenn onActionEnd.String.EsSwitchConnectionUpdate gefeuert wird, die Connection noch nicht "getrennt" ist (wird mit dem DMObjetcsFinder und einem Custom Filter überprüft). Man hinkt immer einen Schritt hinterher...
Der momentane "Hack" besteht darin, einen 2. Thread zur erstellen und dort wird dann solange gewartet bis keine Transaktionen mehr laufen und anschließend wird wieder, manuell das EsSwitchConnectionUpdate gefeuert (2. Versuch war die Connections neu generieren zu lassen):
Code:
private void ThreadTask(Object data)
{ TransactionManager txm = new TransactionManager();
while (txm.IsEplanTransactionRunning | | txm.IsTransactionRunning | | txm.IsEplanROTransactionRunning | | txm.IsROTransactionRunning)
{
Thread.Sleep(10);
}.
EventParameterString oEventParamString = new EventParameterString();
oEventParamString.String = "EsSwitchConnectionUpdate";
long lRetVal = new EventManager().Send("onActionEnd.String.EsSwitchConnectionUpdate", oEventParamString);
//Project p = (Project)data;
//Generate oGenerate = new Generate();
//oGenerate.Connections(p);
//no write operation allowed during read transaktion
}
Soweit so gut, doch kommt es in unregelmäßigen Abständen zu diversen Exceptions:
Code:
A write transaction cannot be started within another transaction
Code:
No write operation allowed during read transaction
uvm.
Vielleicht hat jemand einen Tipp wie man das Problem lösen kann. Eigentlich egal ob "ordentlich" oder durch einen neuen "Hack".
Danke schon mal im Vorhinein!
lg Thomas
edit: Es handelt sich hierbei um ein C#-API-AddIn
[Diese Nachricht wurde von thomass2 am 07. Jul. 2014 editiert.]
[Diese Nachricht wurde von thomass2 am 07. Jul. 2014 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP