Th­ese are the re­lease notes for Ex­tremeTrans­ac­tions 3.9.0

Regis­ter­ing TSLis­ten­er in­stances via the JDK Ser­viceLoad­er

You can now also reg­is­ter lis­ten­er in­stances via the JDK Ser­viceLoad­er mech­a­nism.

Re­moved JTA de­pen­den­cy from API

A JTA-spe­cif­ic im­port (on heuris­tic ex­cep­tions) ex­ist­ed in our Par­tic­i­pant in­ter­face - this is now re­moved.

JMS: ses­sions no longer need to be cre­at­ed with the ses­sionTrans­act­ed flag set

Un­less the AtomikosCon­nec­tionFac­to­ryBean is set to use lo­calTrans­ac­tionMode, we now al­ways cre­ate XA-ca­pa­ble ses­sions. This fa­cil­i­tates com­pat­i­bil­i­ty with third-par­ty plat­forms like Spring.

Im­proved JMX sup­port for trans­ac­tions [Cus­tomers Only]

A new trans­ac­tion MBean now sup­ports eas­i­er view­ing of ac­tive trans­ac­tions, as well as im­por­tant trans­ac­tion sta­tis­tics and coun­ters (like per­cent com­mit­ted, per­cent abort­ed and so on).

Added 'do­main events' re­lat­ed to trans­ac­tion and con­nec­tion pool life­cy­cle

It is now pos­si­ble for in­ter­nal or ex­ter­nal mod­ules (us­ing trans­ac­tions-api) to reg­is­ter for im­por­tant life cy­cle events in­volv­ing trans­ac­tion and con­nec­tion pool states, like trans­ac­tion cre­ation, com­mit, roll­back or heuris­tic out­comes. See the com.atom­ikos.icatch.event pack­age and its in­ter­ac­tion with the Ser­viceLoad­er mech­a­nism in Java.

Changed li­cense mech­a­nism

The li­cens­ing frame­work has been refac­tored to use signed pub­lic/pri­vate key tech­nol­o­gy. A new li­cense con­sists of 2 files: a prop­er­ty file and a sig­na­ture file, both of which need to be added to the class path of your ap­pli­ca­tion (or, al­ter­na­tive­ly, put in some fold­er whose lo­ca­tion is spec­i­fied as sys­tem prop­er­ty 'com.atom­ikos.li­cense_­fold­er'). Also, the de­fault 30 minute eval­u­a­tion li­cense has been re­moved from Ex­tremeTrans­ac­tions.

JMX sup­port for JDBC and JMS [Cus­tomers Only]

Added/im­proved JMX sup­port for JDBC and JMS in Ex­tremeTrans­ac­tions.

87749: Sup­port short prop­er­ties in JDBC and JMS con­nec­tors

We've im­proved sup­port for short prop­er­ties that need to be con­vert­ed from a text/XML con­fig­u­ra­tion file.

110695: DataSource getPar­en­tLog­ger should re­turn java.util.log­ging.Log­ger

Fixed re­turn type of the getPar­en­tLog­ger method.

102827: Er­rors on close/delist lead to con­nec­tion pool ex­haus­tion

Fixed a crit­i­cal bug where er­rors on delist would cause con­nec­tion pool ex­haus­tion.

106527: Add JMX-en­abling meth­ods to JMS Con­nec­tionFac­to­ry

See this fo­rum post for de­tails: JMX util­i­ty meth­ods have been added to our Con­nec­tionFac­to­ry.

84851: Avoid log­ging over­head and warn­ings for emp­ty trans­ac­tions

Emp­ty, com­mit­ting trans­ac­tions would need­less­ly gen­er­ate log­ging over­head and also gen­er­ate need­less heuris­tic warn­ings upon re­cov­ery. This has now been fixed. For the orig­i­nal re­port, see this fo­rum post.

88107: Mi­grate doc­u­men­ta­tion to spec­i­fi­ca­tion repos­i­to­ry

The PDF guides are now down­load­able as sep­a­rate ar­ti­facts. This keeps the prod­uct re­lease small and com­pli­ant with your maven repos­i­to­ry, and short­ens the build time for bug fix­es.

61915: Re­sourceTrans­ac­tion and XARe­sourceTrans­ac­tion: refac­tor

Re­fac­tored these im­por­tant class­es - the code need­ed some clean­ing...

88151: JDBC calls to cre­ate a State­ment: show what the SQL ar­gu­ments are

JDBC state­ments are now logged with the SQL ar­gu­ments.

88711: Re­move ex­am­ples from prod­uct build - to be in­clud­ed in sep­a­rate spec­i­fi­ca­tions build/down­load

The ex­am­ples are now shipped as sep­a­rate ar­ti­facts so the  prod­uct dis­tri­b­u­tion is min­i­mal and maven-com­pli­ant for easy de­ploy­ment to your repos­i­to­ry, and short­ens the build time for bug fix­es.

83905: Re­sum­ing a trans­ac­tion should also re­sume its XARe­sources

When a JTA trans­ac­tion is re­sumed by its thread, it will also trig­ger re­sume at the XA lev­el for all en­list­ed XARe­source in­stances.

104940: Add pool prop­er­ty: maxLife­time

Avoid the over­head of a testQuery by set­ting maxLife­time: this new prop­er­ty re­moves from the pool any con­nec­tion that stays around longer than this lim­it. This clos­es your con­nec­tions be­fore any con­fig­u­ra­tion-spe­cif­ic time­outs do, and most­ly dep­re­cates the need for a testQuery. This, in turn, im­proves per­for­mance of the pool be­cause bor­row­ing a con­nec­tion no longer im­plies a roundtrip to the data­base (in­side a syn­chro­nized block!).

85464: Avoid that Syn­chro­niza­tion in­stances force full 2PC

When you reg­is­ter Syn­chro­niza­tion in­stances then this will no longer im­ply / force 2-phase com­mit. This in­creas­es per­for­mance for use cas­es with only one XARe­source, where the 1-phase com­mit op­ti­miza­tion can now  prod­uct its max­i­mum ef­fi­cien­cy.

87865: Port ex­am­ples to maven

The ex­am­ples are now built and run with maven.

101331: Drop trans­ac­tions-jms-dep­re­cat­ed

The trans­ac­tions-jms-dep­re­cat­ed mod­ule/jar has been dropped.

101332: Drop trans­ac­tions-jdbc-dep­re­cat­ed

The trans­ac­tions-jdbc-dep­re­cat­ed mod­ule/jar has been dropped.

85106: Make trans­ac­tion ob­ject re­turn the sta­tus of prepar­ing or com­mit

Im­proved the way getS­ta­tus() works.

68727: Chain­ing for the icatch Roll­back­Ex­cep­tion

Im­proved ex­cep­tion chain­ing so root caus­es are more vis­i­ble.

75013: Si­b­lingMap­per only re­mem­bers the last XARe­sourceTrans­ac­tion - so in some cas­es it can­not use TMJOIN when need­ed

Im­proved TMJOIN be­hav­ior so this fea­ture can now be ful­ly ex­ploit­ed at the XARe­source lev­el.

105851: DataSe­ri­al­iz­able as al­ter­na­tive StateRe­cov­eryMan­ag­er im­ple­men­ta­tion so the trans­ac­tion logs are read­able by hu­mans

A new, al­ter­na­tive log­ging im­ple­men­ta­tion is avail­able. It avoids ob­ject se­ri­al­iza­tion and can be ac­ti­vat­ed by set­ting the init prop­er­ty com.atom­ikos.icatch.se­ri­al­iz­able_log­ging to false.

105852: Add write-ahead log­ging to batch mul­ti­ple sync calls for per­for­mance

The com­mer­cial edi­tion now con­tains a new mod­ule write-ahead log­ging for in­creased per­for­mance.

95287: Keep er­rors from Syn­chro­niza­tions and use them for the cause of the Roll­back­Ex­cep­tion

Another im­prove­ment of the way root caus­es are han­dled.

32936: Im­prove syn­chro­niza­tion call­back for READ-ONLY op­ti­miza­tion

The af­terCom­ple­tion method of syn­chro­niza­tion in­stances no longer gets "UNKNOWN" for read-only trans­ac­tions.

59546: Drop JDK 1.5/JDBC 3 in fa­vor of the JDK 1.6/JDBC4 API

We no longer sup­port Java 5 since it is dep­re­cat­ed any­way.

RSS

Comments

Add a comment

Corporate Information

Atomikos Corporate Headquarters
Hoveniersstraat, 39/1, 2800
Mechelen, Belgium

Contact Us

Copyright 2026 Atomikos BVBA | Our Privacy Policy
By using this site you agree to our cookies. More info. That's Fine