Hallo zusammen,
ich versuche, über den INI-Eintrag allowMultipleInstances=TRUE 2 Instanzen ein und derselben EXE laufen zu lassen, was auch funktioniert. Nun sollen sich diese beiden Instanzen aber miteinander unterhalten können, was nicht so einfach funktioniert, zumindest über Umgebungsvariablen nicht. Hat jemand eine Idee, wie man das am besten bewerkstelligen könnte?
Danke und Gruß an alle
Marko
Hallo Marko,
grundsätzlich bieten sich Netzwerkfunktionen (z.B. UDP oder TCP) an. Der einzige Trick dabei ist, dass natürlich nicht jede Instanz Zugriff auf den selben Port bekommt, der zweite Zugriff auf einen Port sollte ein "belegt/nicht verfügbar) melden…
Also: man definiert einen Portbereich.
Die erste Instanz reserviert sich den ersten Port. Die zweite Instanz stellt fest, dass der erste Port schon belegt ist (und damit einen Kommunikationspartner darstellt) und reserviert sich den zweiten Port. Dann noch schnell eine Botschaft an Port1 und schon weiß die erste Instanz, dass da ein neuer Kommunikationspartner aufgetaucht ist. Mit der dritten Instanz geht das Spielchen eben so weiter…
Hallo Gerd,
danke für deine Überlegungen. Daran probier´ ich mich morgen mal aus.
Gruß, Marko
Bei Umgebungs- bzw. Shared Variablen sehe ich ein kleines Problem. Die sind üblicherweise "Teil der Exe", soll heißen werden gerne mal durch die Exe deployed. Wenn jetzt beide Instanzen der Exe denselben Shared-Variable-Prozess deployen, überschreiben sich (zumindest kurzfristig) die Variablen. Da ist IMHO Vorsicht geboten. Natürlich bekommt man das hin, aber man muss ein wenig Arbeit reinstecken, z.B. den verschiedenen Exe Instanzen noch eine Info mitgeben, welche Shared Variable Lib sie erzeugen sollen...
Bei neueren LV-Versionen bieten sich auch Network-Streams zum Datenaustausch aus, aber auch hier gilt dasselbe. Jede Instanz muss wissen, "wer er ist"...
Gruß, Jens