![Red Hat Application Server Скачать руководство пользователя страница 210](http://html.mh-extra.com/html/red-hat/application-server/application-server_manual_1427406210.webp)
202
Chapter 26. JMS User’s Guide
...
}
To keep the connection open during the life of a bean instance, the programming style shown in the
following example is preferred, since it avoids many connection opening and closing operations:
public class EjbCompBean implements SessionBean {
...
ConnectionFactory qcf = null;
Queue queue = null;
Connection conn = null;
public void ejbCreate() {
....
ictx = new InitialContext();
cf = (ConnectionFactory)
ictx.lookup("java:comp/env/jms/conFactSender");
queue = (Queue) ictx.lookup("queue1");
conn = cf.createConnection();
}
public void doSomethingWithJMS (...) {
...
Session session = conn.createSession(...);
... // JMS operations
session.close();
}
public void ejbRemove() {
conn.close();
}
...
}
Be aware that maintaining JMS objects in the bean state is not always possible, depending on the type
of bean.
•
For a stateless Session Bean, the bean state is not maintained across method calls. Therefore, the
JMS objects should always be initialized and defined in each method that performs JMS operations.
•
For an Entity Bean, an instance may be passivated, and only the persistent part of the bean state
is maintained. Therefore, it is recommended that the JMS objects be initialized and defined in
each method performing JMS operations. If these objects are defined in the bean state, they can be
initialized in the
ejbActivate
method (if the connection is created in the
ejbActivate
method,
be sure to close it in the
ejbPassivate
method).
•
For a stateful Session Bean (as shown in the previous example), JMS objects can be defined in the
bean state. Stateful Session Bean instances can be passivated (not in the current version of JOnAS,
but it is scheduled for the summer of 2004). Since connection factories and destinations are serial-
izable objects, they can be initialized only in ejbCreate. However, be aware that a connection must
be closed in
ejbPassivate
(with the state variable set to
null
) and recreated in
ejbActivate
.
Note that, due to a known problem with the Sun JDK 1.3 on Linux, the close of the connection can
block. The problem is fixed with JDK 1.4.
Содержание Application Server
Страница 1: ...Red Hat Application Server JOnAS User Guide ...
Страница 8: ......
Страница 22: ...14 Chapter 1 Java Open Application Server JOnAS a J2EE Platform ...
Страница 58: ...50 Chapter 3 JOnAS Configuration ...
Страница 66: ...58 Chapter 5 JOnAS Class Loader Hierarchy ...
Страница 78: ...70 Chapter 6 JOnAS Command Reference ...
Страница 80: ......
Страница 86: ...78 Chapter 7 Developing Session Beans ...
Страница 136: ...128 Chapter 9 Developing Message Driven Beans ...
Страница 142: ...134 Chapter 10 Defining the Deployment Descriptor ...
Страница 148: ...140 Chapter 11 Transactional Behavior of EJB Applications ...
Страница 158: ...150 Chapter 14 EJB Packaging ...
Страница 162: ...154 Chapter 15 Application Deployment and Installation Guide ...
Страница 164: ......
Страница 176: ...168 Chapter 18 WAR Packaging ...
Страница 178: ......
Страница 184: ...176 Chapter 20 Defining the Client Deployment Descriptor ...
Страница 186: ...178 Chapter 21 Client Packaging ...
Страница 188: ......
Страница 192: ...184 Chapter 23 EAR Packaging ...
Страница 194: ......
Страница 200: ...192 Chapter 24 JOnAS Services ...
Страница 204: ...196 Chapter 25 JOnAS and the Connector Architecture ...
Страница 222: ...214 Chapter 27 Ant EJB Tasks Using EJB JAR ...
Страница 234: ...226 Chapter 29 Web Services with JOnAS ...
Страница 236: ......
Страница 260: ...252 Chapter 34 How to use Axis in JOnAS ...
Страница 270: ...262 Chapter 36 Web Service Interoperability between JOnAS and BEA WebLogic ...
Страница 296: ......