This week's giveaway is in the Threads forum.
We're giving away four copies of Java Concurrency Live Lessons and have Doug Schmidt on-line!
See this thread for details.
Win a copy of Java Concurrency Live Lessons this week in the Threads forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Passing a Connection instance as parameter with EJB 3.x local interface.  RSS feed

 
Claude Moore
Ranch Hand
Posts: 862
8
IBM DB2 Java Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Good evening guys,

as by subject, I've a question for you about passing a Connection instance as parameter to an EJB method exposed via local interface.
As far as I know, passing a Connection is teorically impossible with remote interfaces, where serialization mechanism is involved, and being a Connection not serializable, this should raise a NotSerializable exception. Of course, unless EJB container recognizes that EJBs are co-located and avoids actual serialization, simply passing parameters by value. With local interfaces, the whole thing works, but I'm still in doubt if using a connection is a good practice or not. I've read several articles (and several posts here at Java Ranch) where it was stated that generally speaking no, that's not kosher; but in most cases there were scenarios
where someone tried to reuse the same connection object to handle manually transaction, bypassing container capabilities. In those cases, it's quite clear that there's an attempt to break EJB design; but let's suppose we have a scenario where an EJB facade method (for example) needs to call several local EJBs. Would it be worth, to save the number of actually got-and-closed connections from the pool, pass the same connection, since apparently there are no problems ? Or the problem of saving the number of connections is, simply, a false problem just because time spent acquiring connections from a pool is practically insignificant ?

Please help me with your suggestions.

Regards.

 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!