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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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