J'ai construit une application qui simule plusieurs clients utilisant le même service RMI. Ce service est ensuite appelé simultanément par chaque client récupérant et téléchargeant des données sur le serveur. Ma préoccupation est que si chaque appel de suppression prend du temps, l'implémentation du service distant (jBoss 5 EJB) peut gérer ces appels à distance ou les sérialiser. Si ce dernier cas est le cas, je dois limiter le nombre de clients pour éviter de les ralentir.Utilisation simultanée d'un EJB exposé en tant que service RMI
Répondre
Les appels RMI ne sont pas séquencés à moins que les implémentations de méthodes distantes n'effectuent une synchronisation quelconque. Ceci s'applique à la fois au RMI/JRMP et au RMI/IIOP.
Que voulez-vous dire exactement? Voulez-vous dire qu'il existe plusieurs clients qui obtiennent chacun un bean EJB distant, puis appellent une méthode sur le talon/proxy qu'ils ont reçu, ou est-ce qu'un grand nombre de clients distants partagent un seul proxy?
Et de quel type de haricots EJB parlons-nous? Haricots de session sans état?
Ces beans sont regroupés par le serveur et pour chaque appel de méthode distante entrante, une instance est affectée à un thread de travail à partir d'un pool de threads. Donc oui, si le nombre de demandes dans un laps de temps donné est plus grand que le nombre d'instances de bean disponibles et de threads de travail, alors ces demandes excédentaires devront attendre jusqu'à ce qu'un bean devienne disponible.
Il s'agit donc d'un mécanisme d'étranglement automatique.
Plusieurs clients utilisent un proxy distant partagé qui est recherché à partir d'un NamingContext. Je suis inquiet si la communication entre tous ces clients utilisant le proxy partagé est sérialisée. Toutes les invocations de méthodes distantes utilisent-elles une socket ou un pool de sockets? –
Du point de vue du bean, ils sont en effet sérialisés. La spécification EJB indique clairement qu'un seul client peut être actif dans une instance de bean de session sans état donnée. – akira
p.s. consultez le texte suivant: – akira
Donc, votre question «Est-ce que Jboss optimise la gestion du cycle de vie de l'IGR pour ses EJB? Je suppose que c'est JEE5 par opposition à J2EE? –