Nous avons un appel RMI qui doit terminer ou échouer en quelques secondes. Vous pouvez modifier le Socket
utilisé pendant l'appel lui-même (y compris les délais d'attente de connexion et de lecture), mais l'appel Naming.lookup
semble utiliser ses propres paramètres.Définir un sun.rmi.transport.tcp.handshakeTimeout pour un seul thread?
Réduire sun.rmi.transport.tcp.handshakeTimeout
résout le problème, mais j'aimerais vraiment le faire d'une manière qui n'affecte pas la machine virtuelle entière. Pouvez-vous définir la propriété en tant que thread local?
La propriété et d'autres propriétés du RMI sont documentées que je trouve à http://download.oracle.com/javase/1.4.2/docs/guide/rmi/sunrmiproperties.html
Le délai d'attente de prise de contact ne couvre pas l'appel etire, seul l'échange de protocole initial, la mise en sorte qu'il ne peut pas « résoudre le problème '. Il existe une propriété timeout de réponse non documentée, mais elle ne peut pas être définie par thread. Naming.lookup() ne fait rien de spécial à cet égard. – EJP