2008-09-26 10 views
0

Nous avons un EJB sans état qui se trouve derrière un service Web (EJB3), cet EJB charge également un EntityManager qui est passé dans les appels qu'il effectue. Avec ça, j'ai une question.Question EJB sans état

L'appel simultané au service Web utilise-t-il le même EJB ou existe-t-il des instances différentes? Je pose cette question en particulier concernant l'utilisation de l'EntityManager, qui est injecté.

Merci

Répondre

3

appartient au serveur d'applications à utiliser identiques ou différents. Vous pouvez penser comme s'ils étaient différents. Maintenant, si vous l'injectez je suppose que vous l'avez déclarée comme une variable d'instance, c'est une très mauvaise idée pour un EJB sans état, parce que bien. Il ne devrait pas avoir d'état. Au lieu d'injecter l'EntityManager, laissez le serveur d'application faire son travail, et vous le prenez simplement dans le contexte. Chaque appel de méthode d'un état appartient à une transaction et n'interfère pas avec les autres appels. En résumé: Supposons qu'il s'agit d'instances différentes, et ne vous injectez pas ce genre d'objets. Prenez-les dans le contexte où le serveur de l'application est responsable de les quitter.

J'espère avoir bien compris votre question.