As I get up to speed on new technologies, some things have taken some figuring out. I’m interested not only in the conclusions — what worked — but also in the process by which a conclusion is arrived at. By recording my process as well as the conclusion eventually reached, I hope to be able to look back from the end, see where I took wrong turns, and draw lessons from my mistakes. I hope to thus improve my research process so that I can arrive at conclusions more efficiently in the future. (I even have some posts on this meta-topic under the experience tag.)
So I present these series in their goriness — dead ends, rabbit trails and all. Perhaps they’ll be useful to someone else as well!
Contents
- Trying Out XA
- XA, JNDI, and Bitronix
- JMS
- MagicDraw
- Envers, Spring, and JTA
- Hibernate + Envers + JTA: One-To-Many Problems
1. Trying Out XA
- Trying out XA: untested theory
- Trying out XA, part 2: transaction manager and JNDIView
- Trying out XA, part 3: dead ends
- Trying out XA, part 4: more dead ends
- Trying out XA, part 5: a resource adapter rabbit trail
- Trying out XA, part 6: jndi.properties rabbit trail
- Something works!
- XA transactions: how ’bout them rollbacks?
- Captain, we’re experiencing a configuration problem…
- Join point matching
- Simple JMS transaction rollbacks work…
- Pardon me sir, was that an XA transaction that just rolled by?
- Getting the Oracle XA datasource in place
- The beans, the beans, the Hibernate beans…
- Deploying with Hibernate too
- Finding a JTA UserTransaction
- The process of lamination
- XA: The conclusion of the example
- Testing XA rollback…or not
2. XA, JNDI, and Bitronix
(Testing Outside of the Application Server)
- JNDI without an app server? part 1
- JNDI without an app server? part 2
- Plurals and intuition
- Getting a little quicker with Maven
- XA, JNDI and Bitronix, part 1
- Why the slf4j-jdk14 artifact was optional
- XA, JNDI and Bitronix, part 2: JDBC
- XA, JNDI and Bitronix, part 3: first send
- XA, JNDI and Bitronix, part 4: dancing on the happy path
- A minor simplification: the JtaTransactionManager bean
- Why we wanted a JNDI server for integration testing
- On the classpath
- HSQLDB Says ‘No’; Bitronix Chafes
- java: Dropping the prefix
- Why it wasn’t blowing up when it should have been
- Oracle Treajure hunt
3. JMS
- The Spring problem that wasn’t
- What is an honest MessageListener to do?
- Too many rollbacks
- CS848 – Heuristics of Enough
- Spring and local JMS transactions
- The mysterious mirrored message queue
- JCA Resource Adapters: outbound vs. inbound
- The jms:listener element: hardcoded queue name
- Why there were two consumers listening
4. MagicDraw
- Figuring out MagicDraw, part 1: the mysterious disappearing method
- MagicDraw teamwork projects: Lock ‘n’ Load
- MagicDraw: Run it on your primary monitor
- MagicDraw: Template Bindings
5. Envers, Spring, and JTA
- The versioning isn’t happening, part 1: wanderings
- The versioning isn’t happening, part 2: beforeCompletion
- The versioning isn’t happening, part 3: it’s in UserTransaction?
- The versioning isn’t happening, part 4: Registering with the wrong transaction?
- The versioning isn’t happening, part 4a: phone a friend
- beforeCompletion, I need to figure this out
- An answer
- The final answer
- Blowing up in test mode
6. Hibernate + Envers + JTA: One-To-Many Problems
- Versioning sets: IllegalArgumentException
- object is not an instance of declaring class
- Why envers was blowing up
- Hibernate One-to-Many Foray