[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: plusieurs machines



Bonjour,

(je mets en copie ce message sur jocaml@inria.fr, pour en garder une
copie archivée).


David Chemouil wrote:
>
>Salut,
>
>
>mon probleme precedent est resolu, sans que je sache tres bien pourquoi,
>mais le principal est que ca marche.
>
>J'ai neanmoins un nouveau probleme, et je ne trouve rien dans la doc qui
>m'aide a le resoudre. Voici un exemple qui correspond a mon probleme...
>
>Je lance jocns sur la machine [shiva].
>
>Je lance le serveur suivant sur [rama] (apres avoir fait export
>JNSNAME=rama):
>

Je suppose que vous faites JNSNAME=shiva ...

># let def f x =
>    print_string ("[" ^ (string_of_int x) ^ "] ");
>    flush stdout;
>    reply x*x  
>  in 
>  Ns.register "square" f vartype;;
>Warning: VARTYPE replaced by type 
>( int ->  int) metatype
>Multicast aborted (Failure("setsock_join"))
>Querying name server shiva:20001
>- : unit = ()
># Join.server ();;
>- : unit = ()
>
>
>Voici ensuite le code d'un client, et la reponse de l'interprete, lance
>lui aussi sur [rama] (avec le export aussi):
>
># let sqr = Ns.lookup "square" (vartype :( int ->  int) metatype);;
>Warning: VARTYPE replaced by type 
>( int ->  int) metatype
>Multicast aborted (Failure("setsock_join"))
>Querying name server shiva:20001
>val sqr : int -> int = <fun>
>
>
>Si dans le client je tape :
>
># sqr 5;;
>- : int = 25
># sqr 4;;
>- : int = 16
>
>J'obtiens dans le serveur :
>
># [5] [4]
>
>
>Mais, si jamais je lance le meme client sur la machine [shiva] (donc
>differente du serveur), voila ce qui arrive:
>
># let sqr = Ns.lookup "square" (vartype :( int ->  int) metatype);;
>Warning: VARTYPE replaced by type 
>( int ->  int) metatype
>Multicast aborted (Failure("setsock_join"))
>Querying name server shiva:20001
>Uncaught exception: Failure("Lookup [square] has failed with Not_found")
>
>
>Est-ce que ca pourrait etre du au fait que je n'ai pas le Multicast sur
>mes machines? En tout cas, je n'y comprends rien...
>

Le multicast ne devrait pas poser de problème. Par contre, comme il
est indiqué dans la doc, lorsque l'on fait un Ns.lookup ou un
Ns.register, on ajoute automatiquement au nom de la ressource ce qui
est contenu dans la variable d'environnement USER, ou «pub» si cette
variable n'est pas définie. Dans le cas où le nom d'utilisateur est
différent, on peut choisir ce qui sera ajouté au nom en modifiant la
référence Ns.user (qui contient une chaîne de caractères).

>
>(par ailleurs, contrairement a votre exemple dans la doc, je suis oblige
>de contraindre vartype au niveau du client, sinon il croit que c'est
>polymorphe)
>

Effectivement. Pourriez-vous préciser à quel endroit dans la doc on
fait cette erreur, que je la corrige ?

Amicalement,

Alan Schmitt

--
The hacker: someone who figured things out and made something cool happen.