Tak bohuzel bez uspechu. Zkousel jsem to pres vytvoreni nove transakce,
ale stejne ne :(
Pr:
@Resource(mappedName = "jms/TopicConnectionFactoryPlneni")
private TopicConnectionFactory connectionFactory;
@Resource(mappedName = "jms/TopicPlneni")
private Topic topic;
private Connection con = null;
private Destination dest = null;
private Session session = null;
private MessageProducer producer = null;
private ObjectMessage oMessage = null;
@PostConstruct
public void connect() {
try {
dest = (Destination) topic;
con = connectionFactory.createConnection();
session = con.createSession(false,
Session.AUTO_ACKNOWLEDGE);
producer = session.createProducer(dest);
oMessage = session.createObjectMessage();
} catch (Exception e) {}
}
@PreDestroy
public void close() {
try {
con.close();
} catch (Exception e) {}
}
public void start() {
Plneni p = getPlneni();
p.setProbiha(true);
try {
oMessage.setObject(p);
producer.send(oMessage);
} catch (JMSException ex) {
ex.printStackTrace();
}
}
@Timeout
public void spust(Timer timer) {
start();
// plneni
plneni();
end();
}
Zkousel jsem, vsechno mozne anotovat metodu start a end jako
@TransactionAttribute(value=TransactionAttributeType.REQUIRES_NEW). Ci
udelat pro start i end vlastni connection.
Uz jsem vazne bezradnej :(