title image


Smiley Re: COM Server auf Terminal Server??
Nun die Frage: was passiert wenn z.B. User1 die ActiveX-Exe startet, und nach 2 Stunden das Prog schließt, zwischenzeitlich jedoch UserB ebenfalls mit der ActiveX-Exe arbeitet. Bleibt diese dem UserB erhalten?



Die ActiveX-exe wird dann beendet, wenn der letzte Verweis darauf stirbt.

Wenn also User2 sein Prog beendet, stribt der Verweis seines Progs auf die ActiveX-exe.

Da das Prog von UserB noch einen Verweis darauf hat, lebt die ActiveX-exe natürlich weiter.

Genau das ist ja der Sinn der COM-Referenzzählung, daß dem UserB weiterhin die ActiveX-exe zur Verfügung steht, auch wenn User1 sein Prog beendet.





Die Anmerkung von UweS2 mußt du beachten:



Ja, aber je nach "Modell" nicht die selbe Instanz der Klasse, d.h. das verschiedene "Aufrufer" dynamische Daten nicht teilen können



Du mußt die ActiveX-exe also so designen, daß die nur einmal ausgeführt wird.

Dazu brauchst du mindestens zwei Klassen, eine mit Instancing = Multiuse, über die die Clientprogs darauf zugreifen (jeder Client bekommt ein eigenens solches Objekt) und eine mit Instancing = Private



Das könnte zB so aussehen:Ich würde das über eine ActiveX-exe realisieren.







Eine andere Frage: Wenn UserA einen Datensatz locked (wird über die ActiveX-Exe gemacht)

und das Standard-Exe Prog terminiert, wird dann der Datensatz freigegeben?



Wo welcher Datensatz?

Normalerweise sollte das Standard-Exe Prog seine Aufräumarbeiten machen, also beim Beenden der ActiveX-exe sagen, daß sie den Datensatz freigeben soll.

Automatisch wird das nicht gemacht werden, aber das kannst du zB im Class_Terminate der ClientConnect-Klasse erledigen.




Gruß
Gaga

___________________________________________________________________

Profilösungen für VB6
wenn nicht anders angegeben, sind alle Codebeispiele nicht getestet, nur getippt


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: