zechasso
2nd March 2010, 11:05
Wir haben teilweise das Problem, dass das Kompilieren nach einer Änderung der PCF-Beschränkungen ohne Fehler durchläuft. Die programmierten Änderungen sind dann aber nicht aktiv - als wäre nicht ein Compile-Lauf gemacht worden. Wenn wir dann den jeweiligen Rechner bzw. den Worktop neu starten und erneut kompilieren, wird auch die Änderung aktiv.

Wir verwenden BECS BC40c.97 und Worktop 2.5.6 auf Vista und Windows 7.
Woran kann das liegen?
Es ist sehr nervig und vor allem beunruhigt mich das ein wenig.

günther
2nd March 2010, 16:58
Ich kenne das Verhalten: Wenn ich ein normales Program Script (oder einen Report) kompilieren will und das Programm läuft, dann bringt der Compiler keinen Fehler, aber die Änderung ist nicht aktiv. Einfachstes Beispiel: Compiliren mit/ohne Debugger im Wechsel.

Deshalb entwickelt man ja auch nicht auf dem Echtsystem, und der Transfer (ttiex1284) auf das Echtsystem macht aus dem (ggf. laufenden, alten) Object o... ein u... und spielt dann das neue Object ein.

Anm: Wenn nun auf meinem Testystem zeitgleich ein zweiter User gerade meine Session laufen lässt, kann ich mir immer noch durch Umbenennen des laufenden Objects behelfen.

Das ist sicher alles beim PCF und bei Windows statt HP-UX vergleichbar.

Gruß Günther

baanconsultant
29th March 2010, 01:24
Leicht vereinfacht passiert folgendes: die Objecte werden im Speicher geladen. Das Object verschwindet aus dem Speicher wenn es nicht mehr verwendet wird. Wenn ein Object im Speicher ist und es wird neu kompiliert, wird das neue Object erst aktiv wenn das alte aus dem Speicher verschwunden ist. Erst dann wird es neu geladen.

Das kann dazu führen, dass es so aussieht als ob der compiler nichts gemacht hat. Der hat es aber gemacht, nur ist das neue Object noch nicht hochgeladen. Wenn ein Session abstürtzt, kann es sein dass das Object nicht aus dem Speicher gelöscht wird. Das kannst du sehen durch den Baan Shell zu starten und "ps" zu tippen, das gibt eine Liste der aktive Prozesse der User. Neu starten der Client hilft in diesem Fall. Alternativ kannst du mit "kill pid", wo pid die Prozessnummer aus der "ps" Liste ist, das Prozess hart entfernen.

Die pcf-Objecte haben eine abweichende Name, meistens eine Stelle numerisch oder alphanumerisch.

Gruss,
Djaloeka