Ist RegWrite / RegRead eine geeignete IPC (Interprocess communication)

  • Hi alle,

    ich habe schon länger scripte (compilierte exe) im Einsatz, die zwischen zwei Rechnern per TCP sich für bestimmte Testabläufe synchronisieren sollen. In der Praxis treten immer wieder mal Probleme auf, aus logfiles kann ich auslesen, dass einfach hin und wieder mal gesendete Kommandos verloren gehen. Das Kommando ist ein String mit 5 Char ("P-REQ" ... ). Die Probleme sind so ca. von 500 Abläufen 5 - 10, also so im Prozent-Bereich.

    Das "Empfangs-modul" hab ich Listener genannt und läuft als eigener Prozess mit kleiner GUI und macht nichts anderes, als das empfangene Kommando weiterzuleiten. Hier würde ich gerne eine IPC auf basis von shared Memory verwenden, scheint aber nicht in AI vorhanden zu sein. Ich gehe den Umweg, dass der Listener dann das Kommando in der Registry ablegt und die anderen scripte dann diese Werte aus der Reg auslesen (polling).

    Kennt jemand die Latenzen, verzögerungen bis ein Wert nach RegWrite dann mit RegRead richtig gelesen werden kann?

    Und 2. Frage: könnte der Wunsch nach IPC (Shared Memory) in AI für mehrere als nur für mich intressant sein? Im Kopf hätte ich schon, wie ich sowas gerne verwenden würde:
    a) Variablen explicit deklarieren, z.B. IPCDim_ro / IPCDim_rw (read only oder read-write für shared memory vars)
    b) zugriff über funktionen, z.B. IPC_get( processID, SharedVarName ) oder IPC_set(processID, SharedVarName )

    Bitte um Diskussion der 2. Frage, ?( greeze, Roland