Eben programmiere ich so vor mich her und dauernd beim Script ausführen stürzt mir die IPS-Console ab…nach weiterer Recherche konnte ich das Problem erkennen - ICH selbst bin es (also zum Teil)
<?
for ($i = 0; i < 10; $i++)
{
$value = $i;
SetValue(12345, $value); // Hier die ID einer INTEGER-Variable eintragen
}
?>
>> Mit diesem Script kann ich zuverlässig alle IPS-Consolen crashen lassen
Man beachte das fehlende „$“ in der „for“ ( … i < 10 …).
Könnt ihr das irgendwie abfangen, damit die IPS-Console bei sowas nicht mehr crasht
Du must nur die Meldung von der Console richtig deuten:
(Der Bereich der Nachricht ist größer als der Nachrichtenpuffer)
Schalte entweder den VariableWatch aus, oder stell den Nachrichtenpuffer (Message Ring Buffer Size) viel größer.
Das wird auch nie zu beheben sein, da du mit deinen ganzen SetValues die MessageQueue flutest.
IPS selbst kann das ab und da passiert auch nix, der Dienst macht das mit.
Nur deine Console ‚erstickt‘ quasi an den ganzen Nachrichten welche du durch IPS jagst.
Bei mir „crasht“ zuverlässig die Console (oben kommt der nette rote Balken mit „Neu verbinden“).
Message Ring Buffer steht auf dem default Wert — 8192
Wie du sicher gelesen hast, ist mir schon bewusst, dass da ein Fehler im Script ist usw…
Aber wenn man munter am programmieren ist, hat einige Tabs offen, hat einen Tippfehler, führt das Script aus, die Console „crasht“, man muss neu verbinden und alle Tabs sind zu…dann JA - ist das seine eigene Schuld und doof.
Aber trotzdem kann ich ja mal nachfragen, ob IPS das vlt. irgendwie abfangen kann, dass die Console dabei eben nicht „crasht“ und nur einen Fehler ausgibt. Wäre schön Wenn nicht, auch ok Fragen kost nix
Du kannst dennoch die Scripte speichern, das geht solange der Dienst noch läuft, auch wenn da oben der rote ‚böse‘ Balken ist.
Ich habe natürlich nicht das kaputte Script ausgeführt :rolleyes:
Mit dem Speichern is mir bewusst…aber
1.) Hab ich mir so schon mal Stunden an Arbeit eingehandelt, weil dabei ein Script von IPS „kaputtgeschrieben“ wurde (waren nur noch X von Y Zeilen übrig und dann einfach Ende vom Script)
2.) Ich bequem bin und nicht alle Tabs neu öffnen will
Und wieder kein Crash, sondern nur die Meldung von deiner Console, weil die 10000 SetValue den Nachrichtbuffer deiner Console fluten.
Wenn du so einen Quark (10000 Mal SetValue) machst, dann musst du schon VariableWatch in IPS ausschalten.
Sonst bekommt du ja pro Durchlauf des Script auch 10000 Zeilen im Log.
Michael
Wie Michael schon sagte: Wir können dort nicht viel machen, da du den internen Nachrichtenpuffer flutest und die Konsole im Prinzip keinen Konsistenten zustand mehr gewährleisten kann und dich auffordert diese Konsole neu zu starten, um eben diesen Zustand wiederherzustellen.
Du kannst in den Spezialschaltern den Wert von 8192 auf einen mega hohen Wert anheben. Das verzögert den Problemfall auf kleine Kosten vom Arbeitsspeicher Die Konsole kann dann aber für den Moment laggy wirken