Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/07/2008, 13h17   #1
Invité de passage
 
Inscription : octobre 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3
Points : 0
Points : 0
Par défaut [COM] Problème d'instanciation d'objet COM

Bonjour,

Tout d'abord, voici mon environnement :
Windows Server 2003
IIS
PHP 4

Je sais, c'est pas dans les moeurs mais parfois, nous sommes contraint ...

Je possède une interface écrite en PHP, qui lors du POST du formulaire, lance un script PHP en arrière plan de cette manière :

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run($cmd, 0, false);

Ma variable $cmd effectue le lancement d'un script PHP, que l'on appelera numéro 1 via le PHP CLI.
Seulement, le problème n'apparait pas à ce niveau.

Lors du lancement du script numéro 1, j'ai bien un process PHP correspondant qui existe et qui est bien lancé. Ce script a pour rôle de lancer lui aussi (oui, la structure est complexe) trois autres scripts. Seulement, il n'a pas le temps de les lancer.

La ligne de commande suivante qui est pourtant identique à la ligne déclanchée par le POST du formulaire plante :
$WshShell = new COM("WScript.Shell");

Mon fichier error.log me dit ceci :
PHP Warning: (null)(): Invalid ProgID, GUID string, or Moniker: Invalid syntax

Les lignes suivantes n'ont même pas eu le temps de s'éxécuter. C'est comme si le CLI avait figé :
$WshShell->Run( $cmd2, 0, true );
$WshShell->Run( $cmd3, 0, true );
$WshShell->Run( $cmd4, 0, true );


Cette structure a été établi afin que le navigateur, lors du lancement du premier script, ne fige pas et que ce premier script lance 3 autres scripts qui devront s'exécuter de manière asynchrone, les uns après les autres.

Je suis un peu perplexe devant le problème.
Si quelqu'un a des conseils (autre que changer de PHP, de serveur Web ou de système d'exploitation) concernant la structuration de l'enchainement du lancement des scripts ou bien même pour débugger ce qui occasione le Warning PHP qui fige tout, je vous serai très reconnaissant.

J'ai vu sur quelques sites qu'il y aurait peut-être une histoire de clé dans la base de registre, mais bon, pas plus que ça. En tout cas les PHP.ini qui sont utilisés sont bien tous les mêmes du début jusqu'à la fin, ça n'a pas l'air d'être une histoire de config ... peut-être de tuning.

Je vous laisse, messieurs les experts.

Merci d'avance !

Laurent
lpapouk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 15h14   #2
Invité de passage
 
Inscription : octobre 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3
Points : 0
Points : 0
Bon, comme les quelques personnes qui ont lu mon poste étaient inspirées comme moi, j'ai changé de méthode.

Je log en base de données l'action utilisateur qui souhaite lancer le script contenant les 3 autres et c'est une tache planifié qui, toutes les minutes, lance l'exécution du script contenant les 3 autres.

Je sais, c'est moche, mais parfois, il vaut mieux contourner le problème. Il devait sûrement être lié à un problème de sécurité Windows. Mais là, je n'ose même pas essayer de cherche.


A bientot
lpapouk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h29.


 
 
 
 
Partenaires

Hébergement Web