php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-01-2007, 14:34
Myxlyxl
 Newbie
Links : Onlinestatus : Myxlyxl ist offline
Registriert seit: Jan 2007
Beiträge: 3
Myxlyxl ist zur Zeit noch ein unbeschriebenes Blatt
Standard über 'exec' gestartetes PRG hängt sich in zufälligen Abständen auf

Hallo zusammen,

ich bin neu hier im Forum und habe folgendes Problem:

Im Rahmen einer Webanwendung wird mit Hilfe des exec Befehls aus PHP heraus ein Programm gestartet, das komplexe Berechnungen durchführt. Zu ca. 80% funktioniert alles perfekt. Php startet mein Programm, das Programm wird abgearbeitet, das PHP-Script nimmt den Programmfluss wieder auf...

Gelegentlich passiert aber folgendes:

Die exe-Datei (test.exe) gibt die Programmsteuerung nicht an php zurück. Im Taskmanager hängt der Prozess (test.exe) und verschwindet nicht mehr. (gelegentlich heißt er seltsamerweise auch test.ex , das e bei 'exe' fehlt dann). Das Php-script wird nicht weiter ausgeführt, weil es ja auf die Abarbeitung der exe wartet. Die Exe (in C geschrieben) wiederum berechnet auch im Fehlerfall alles korrekt, da die letzte Zeile vor der return Anweisung im exe Programm korrekt ausgeführt wird (schreibt einen Wert in eine Datei, der Wert ist auch dann wenn die exe "hängt" korrekt).

Ist der Fehler einmal aufgetreten, so hängen sich auch alle weiteren
Requests auf. Der Webserver muss restartet werden, bevor die Exe bei folgenden Requests wieder korrekt abgearbeitet werden kann.

Wenn ich die Exe nicht aus php heraus starte, sondern auf der
Windows-Kommandozeile, dann wurde bis jetzt noch kein Absturz beobachtet, auch bei mehrfacher Ausführung nicht.

Die Exe habe ich mit einem Memory-Checker auf Speicherfehler überprüft und keine gefunden.

Ich habe den Eindruck, dass der Absturz besonders oder nur dann auftritt, wenn gleichzeitige Requests an den Webserver stattfinden, folglich wird die exe gleichzeitig ausgeführt. Dies wiederum sollte aber kein Problem sein, da PHP jede Instanz der Exe in einem eigenen Prozess startet?

Auf folgender Konfiguration läuft das ganze:

Windows Server 2003
Apache 2.0.59
Php 5.1.6

vielen Dank für eure Ideen
Michael
Mit Zitat antworten
  #2 (permalink)  
Alt 05-01-2007, 14:50
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hm ... solche Fehler ist bei solch einem Konstrukt immer vorprogrammiert. Warum muss du von PHP aus eine exe starten und sogar mehr als einmal? Wenn du den vollen Zugriff auf dem Server hast, vielleicht sollst du über den Einsatz von COM-Komponente nachdenken und von PHP aus darauf zugreifen, das ist viel stabiler und sicherer. Auf jeden Fall hast du im PHP die volle Fehlerbehandlungsmöglichkeit
Mit Zitat antworten
  #3 (permalink)  
Alt 05-01-2007, 15:30
Myxlyxl
 Newbie
Links : Onlinestatus : Myxlyxl ist offline
Registriert seit: Jan 2007
Beiträge: 3
Myxlyxl ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das Problem ist, dass die Exe über Jahre hinweg enstanden ist (da haben auch andere Leute dran rumprogrammiert) und auch recht komplex ist. Da was neues zu machen ist einfach zu aufwendig.

Von einem php script wird die exe nur einmal aufgerufen, aber wenn mehrere Requests gleichzeitig stattfinden, kann das script natürlich parallel abgearbeitet werden und somit der Aufruf auch gleichzeitig erfolgen.

Mein Problem ist, dass ich auch nicht weiß woran es liegt. Liegt es an php, an dem exec-aufruf? Oder ist ein Fehler in der Exe, dass da doch noch irgendwo Speicher überschrieben wird... oder ist es ganz was anderes. Und ich weiß momentan nicht mehr so recht, wie ich die Ursache eingrenzen könnte ...
Mit Zitat antworten
  #4 (permalink)  
Alt 05-01-2007, 15:33
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
kann das script natürlich parallel abgearbeitet werden und somit der Aufruf auch gleichzeitig erfolgen.
Das könntest du doch mit einer Lockdatei verriegeln..oder nicht?
Mit Zitat antworten
  #5 (permalink)  
Alt 05-01-2007, 15:50
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Myxlyxl
Von einem php script wird die exe nur einmal aufgerufen, aber wenn mehrere Requests gleichzeitig stattfinden, kann das script natürlich parallel abgearbeitet werden und somit der Aufruf auch gleichzeitig erfolgen.
das ist klar.
Zitat:
Original geschrieben von Myxlyxl
Mein Problem ist, dass ich auch nicht weiß woran es liegt. Liegt es an php, an dem exec-aufruf? Oder ist ein Fehler in der Exe, dass da doch noch irgendwo Speicher überschrieben wird... oder ist es ganz was anderes. Und ich weiß momentan nicht mehr so recht, wie ich die Ursache eingrenzen könnte ...
ich vermute, dass durch mehrmaligen Aufruf, die Anwendung sich selbst in die Quere kommt und somit sich einfriert, z.B. durch unsauberer DB-Zugriff, nicht freigegebene Resource nach Gebrauch, nicht geschlossenen DB-Connection im Fehlerfall, ... und und und ... ausserdem bleibt noch die Frage, ob du genug Speicher und Systemresource auf dem Web-Server hast für solche Aufrufe.; ich meine bei einer gut besuchten Website oder bei einem Intranet in einer mittelständischen Firma ist das ohne tödlich für jeden Server, das ist nie was genug, vor allem wenn Betriebsystem Windows heisst
Mit Zitat antworten
  #6 (permalink)  
Alt 05-01-2007, 16:14
Myxlyxl
 Newbie
Links : Onlinestatus : Myxlyxl ist offline
Registriert seit: Jan 2007
Beiträge: 3
Myxlyxl ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

wollte nur kurz anmerken, dass ich das Problem gelöst haben. Es lag an php in Zusammenspiel mit dem exec Befehl. Aus mir nicht erklärlichen Gründen muss ich vor dem exec-Aufruf die Funktion session_write_close(); aufrufen, dann gibts keine Probleme mehr.

Geändert von Myxlyxl (09-01-2007 um 11:29 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 20-10-2008, 15:47
freggel
 Newbie
Links : Onlinestatus : freggel ist offline
Registriert seit: Oct 2008
Beiträge: 1
freggel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,
ich bin neu hier und auch wenn dieser Beitrag schon alt ist, hat die Funktion session_write_close(); das Problem dauerhauft gelöst? Ich habe ein sehr ähnliches Problem. hin und wieder bleibt der Prozess, welchen ich über exec() starte, hängen. und dann gehen natürlich alle weiteren versuchen ebenfalls in die hose...

Gruß
freggel
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:52 Uhr.