Quantcast
Channel: Apache Timeline
Viewing all articles
Browse latest Browse all 5648

session & producer creation

$
0
0
Greetings

A friend recommended that a new Producer and Session should be created
for every message put on the queue. See below Is this correct?

-------------------- put message on queue ------------

try {
new ProducerTask<Void>() {

@Override
public Destination getDestination() { return destination; }

@Override
protected Void use(MessageProducer mc, Session s)
throws Exception {
try {
TextMessage message =
s.createTextMessage(fileQueueItem.getValue());
mc.send(message);
} catch (JMSException e) {
throw new FileQueueException("failed to send
message:"+e.getMessage(),e,logger);

return null;

@Override
public Connection getConnection() {
return connection;

}.call();
} catch (Exception e) {
logger.error("failed to handle message:"+e.getMessage(),e);

-------------------- session task ------------

private abstract class SessionTask<V> implements Callable<V> {

@Override public final V call() throws Exception {
final Session s = getConnection().createSession(false,
Session.CLIENT_ACKNOWLEDGE);
try {
return use(s);
} finally {
s.close();

protected abstract V use(Session s) throws Exception;

public abstract Connection getConnection();

-------------------- producer task ------------

private abstract class ProducerTask<V> implements Callable<V> {

public abstract Destination getDestination();

@Override public V call() throws Exception {
return new SessionTask<V>() {
@Override public V use(final Session s) throws
Exception {
final MessageProducer mp =
s.createProducer(getDestination());
mp.setDeliveryMode(DeliveryMode.PERSISTENT);
try {
return ProducerTask.this.use(mp, s);
} finally {
mp.close();

public Connection getConnection() {
return ProducerTask.this.getConnection();

}.call();

public abstract Connection getConnection();

protected abstract V use(MessageProducer mp, Session s)
throws Exception;

Viewing all articles
Browse latest Browse all 5648

Latest Images

Trending Articles



Latest Images