1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstarts.cmt.ejb;
18
19 import java.rmi.RemoteException;
20 import java.util.List;
21
22 import javax.ejb.Stateless;
23 import javax.ejb.TransactionAttribute;
24 import javax.ejb.TransactionAttributeType;
25 import javax.jms.JMSException;
26 import javax.naming.NamingException;
27 import javax.persistence.EntityManager;
28 import javax.persistence.PersistenceContext;
29 import javax.transaction.HeuristicMixedException;
30 import javax.transaction.HeuristicRollbackException;
31 import javax.transaction.NotSupportedException;
32 import javax.transaction.RollbackException;
33 import javax.transaction.SystemException;
34
35 import org.jboss.as.quickstarts.cmt.model.LogMessage;
36
37 @Stateless
38 public class LogMessageManagerEJB {
39 @PersistenceContext
40 private EntityManager entityManager;
41
42 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
43 public void logCreateCustomer(String name) throws RemoteException, JMSException {
44 LogMessage lm = new LogMessage();
45 lm.setMessage("Attempt to create record for customer: '" + name + "'");
46 entityManager.persist(lm);
47 }
48
49 @TransactionAttribute(TransactionAttributeType.REQUIRED)
50 public void blaMethod() throws RemoteException, JMSException {
51 logCreateCustomer("Niks");
52 }
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 @TransactionAttribute(TransactionAttributeType.NEVER)
68 @SuppressWarnings("unchecked")
69 public List<LogMessage> listLogMessages() {
70 return entityManager.createQuery("select lm from LogMessage lm").getResultList();
71 }
72 }