Problème d'execution du code a distance
Bonjour ,
voila mon problème :
j'execute des script (module) perl a distance grave a un daemon soaplite :
le soucis est que la première demande echoue tjrs et que la suivante marche sans problème :
donc j'appel un siteagent lui il s'execute normal , il appel le module demandé et la rien ne se passent ( pas de print ni autre ) et on relançant la requette elle marche sans problème au deuxième coup .
le shémas est le suivant :
demandeur ----SOAP---> siteagent----executer---> module (fonction )
quelqu'un serai d'ou viens le problème ?
voila le code du site agent :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#- SiteAgent.pm
#- Copyright (c) 2008
package siteagent;
###########################################################
# Imports #
###########################################################
use warnings;
use threads;
###########################################################
# Execute the right package #
###########################################################
sub getinfo
{
# Module name to execute .
my (@t) = @_;
my $fichier = $t[1].".pm";
# A small print
print "$t[1] at ".localtime(time)."\n";
# Check if it's the right object name
if(-e $fichier)
{
# Execute
require $fichier;
# Get result
my ($status, @info) = $t[1]->request();
}
else
{
# Module doesn't exists
return 4,"doesnt exist !";
}
}
1; |
puis le module qu'appel le siteagent :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#- TriggerList.pm
#- Copyright (c) 2008
package triggerlist;
###########################################################
# Imports #
###########################################################
use ModCC::ccadmin2;
use strict;
###########################################################
# Request #
###########################################################
sub request
{
print "--> Getting Triggers list begins..." ;
my $worker;
my $result;
my $osef;
my @ret = ();
$worker = new ModCC::ccadmin2();
my ($status, @voblist) = $worker->getVOBList();
print "\[";
for(my $i=0;$i<@voblist;$i++)
{
print " Looking for triggers in vob \"$voblist[$i]\" " ;
($osef,$result) = $worker->getTrigger($voblist[$i]);
push(@ret, tri($result, $voblist[$i]));
}
print "\]" ;
my $taille = @ret/10;
print "--> Work ends : triggers list will be sent..." ;
return $status,@ret;
}
###########################################################
# Tri #
###########################################################
sub tri
{
my $string = shift;
my $vob = shift;
my @rep = ();
my @data = ();
my $k=0;
$string =~ s/trigger type/~~trigger type/g;
my @data = split(/~~/,$string);
shift(@data);
for(my $i=0;$i<@data;$i++)
{
print "\." ;
$data[$i] =~ s/\n//g;
$data[$i] =~ s/\t//g;
$data[$i] =~ s/\r//g;
$data[$i] =~ s/ / /g;
$data[$i] =~ m/trigger type "([^"]*)" ([^"]*) "([^"]*)" owner: [^ ]* group: [^ ]* (.*)((post|pre)-.*?)( action:(.*?))( action:(.*?))?( action:(.*?))?( excluded users: (.*))?$/;
$rep[$k++] = $vob;
$rep[$k++] = $1; #name of the trigger
$rep[$k++] = $2; #date & creator
$rep[$k++] = $3; #comment
$rep[$k++] = $4; #all info
$rep[$k++] = $5; #post or pre operation
$rep[$k++] = $8; #first action
$rep[$k++] = $10; #second action
$rep[$k++] = $12; #third and more actions in case
$rep[$k++] = $14; #excluded users;
}
return @rep;
}
}
1; |
Merci