We were informed about a potential security issue with Log4J:
Watch the explanation in this YouTube videoPlease adjust your Log4J dependency versions accordingly, to avoid any risk. No new Atomikos release needs to be installed since this is isolated to a 3rd party library dependency marked as optional, so it is not pulled in transitively. The API has been stable so it works with the latest secure Log4J versions at the time of publishing.
You can now configure a networkTimeout parameter for the pool.
Network issues are a recurring problem for connection pools: a pool attempts to keep connections open, whereas intermediaries on the network tend to close them (silently). In addition, backed servers going down can also invalidate the pool's connections.
These conditions can easily lead to long block times on the pool and its connections and the application thus becomes unresponsive. By setting the new networkTimeout property on our datasource classes you can limit the time that applications can block on the network.
This new feature only works if the underlying driver supports it (leave the property unset if not). Also, any timeout value you configure must be higher than the typical duration of your SQL operations, so it must also be higher than the transaction timeout.
FREE TEXT / OPTIONAL
| Severity: | 3 |
|---|---|
| Affected version(s): | 5.0.107 |
We now log warnings for errors during the prepare phase.
When an error happens during prepare then we used to log debug information. Consequently, some useful information was hard to find, in particular failures due to deferred constraint violations. We now log as warnings instead.
None.
| Severity: | 4 |
|---|---|
| Affected version(s): | 5.0.107 |
You can now (again) access the javadoc in your IDE.
We encountered a release problem in the 5.0.107 release for which we had to disable the javadoc plugin. This meant that most of that release went undocumented. We have now fixed this.
None, except that the documentation is now included.
Contributed by the Spring (Boot) team, we are happy to announce our new Spring Boot starter module! You can now use our releases 5.0 with the latest releases from Spring Boot.
Our releases 5.0 were not compatible with the Spring Boot starter code as it was implemented by the Spring Boot team (and included in the "native" starters for Spring Boot).
So based on a generous contribution from the Spring Boot team and Pivotal, we now have our own starter module for you to use: just add transactions-spring-boot-starter to your pom and off you go. See https://www.atomikos.com/Documentation/SpringBootIntegration for additional details.No other changes: we have preserved the Spring Boot configuration options.
This module has been renamed and part of the code inside has been moved.
| Severity: | 4 |
|---|---|
| Affected version(s): | 4.0.x, 5.0.x |
You can now run our example programs with JDK 11.
Our examples did not build well with JDK 11 due to the new Java module system introduced, and the fact that some packages are no longer visible (by default) in the JDK. This has now been fixed.
None: there is a separate maven build profile that activates itself when a recent JDK is found, and tunes the modules accordingly.
| Severity: | 4 |
|---|---|
| Affected version(s): | 5.0.107 |
This release does not include the full javadoc.
The javadoc generation failed during the upload of the release due to incompatibility issues with the Spring Boot starter's integration tests. To avoid additional delays, we have for now uploaded this release without most of the javadoc.
Here is the answer: because with microservices and cloud, people think they no longer have access to the technology that has been around for decades: a distributed transaction manager. (We know, even many experts believe this).
Typically part of every application server, such a transaction manager takes care of rollback across resources (so you don’t need Sagas) and reliable message delivery (so eventual consistency is automatic).
But application servers are disappearing because they are neither agile, nor cloud-friendly nor microservice-friendly. So what can one do?
Enter Atomikos: we have redesigned the essence of the application server to be lightweight and embeddable, so you can get started with microservices and cloud without needing complex patterns like Sagas or eventual consistency. Thanks to our connection pools and transaction manager, you get all the reliability of an application server - but embedded in your microservice applications and deployed to your cloud platform.
From now on, your microservice transactions are as easy as adding the @Transactional annotation on your services. Exactly-once messaging is super easy because a transaction manager automatically avoids message loss and/or duplicate message processing.We offer out-of-the-box integration with the most popular Java runtimes like Spring (Boot) and Tomcat.
Did we mention that we have fine-tuned performance? With our smart batching technology, your processing can even be faster than before. And it’s elastic too, for dynamic scaling.
Join numerous banks and insurance companies worldwide and find out why Gartner has named us a cool vendor.
You can now use Hazelcast 4 with our JTA/XA transactions, via an additional module "transactions-hazelcast4". This was required due to breaking API changes that were introduced in Hazelcast 4.
When using the prior Hazelcast integration (made for Hazelcast 3, not 4) you would get the following exception when trying to configure a JTA/XA enabled HazelcastInstance:
java.lang.UnsupportedOperationException: Client config object only supports adding new data structure configurations at com.hazelcast.client.impl.clientside.ClientDynamicClusterConfig.getLicenseKey(ClientDynamicClusterConfig.java:897) at com.hazelcast.config.ConfigXmlGenerator.generate(ConfigXmlGenerator.java:129) at com.atomikos.hazelcast.HazelcastTransactionalResource.<init>(HazelcastTransactionalResource.java:23) at com.atomikos.hazelcast.AtomikosHazelcastInstance.<init>(AtomikosHazelcastInstance.java:31) at com.atomikos.hazelcast.AtomikosHazelcastInstanceFactory.createAtomikosInstance(AtomikosHazelcastInstanceFactory.java:17) at ...