Entries tagged [3.1.3]
Apache OpenEJB 3.1.3 Released!
We are pleased to announce the release of Apache OpenEJB 3.1.3. The 3.1.3 release continues in the Java 5 and Java EE 5 line with partial EJB 3.1 support. Overall the release is focused on production concerns and includes dramatically expanded Stateless Session Bean pooling, greater Failover and Discovery support, JMX Monitoring and prepackaged Tomcat setup. Support for EJB 3.1 @LocalBean views and @ManagedBean also included.
The 3.2 codebase is now the new trunk where all further Java 6 and Java EE 6 work is being done. Betas of the 3.2 codebase expected before the end of the year.
- OPENEJB-1283 Apache TomTom: Pre-packaged OpenEJB/Tomcat bundle
- OPENEJB-1272 JMX Monitoring
- OPENEJB-1139 EJB 3.1 No-interface view (@LocalBean)
- OPENEJB-1377 Multipoint service - TCP based heartbeat & node discovery
- OPENEJB-1141 EE6 @ManagedBean
- OPENEJB-1115 Quartz Resource Adapter
- OPENEJB-1235 New Stateless pool options: PoolMin, IdleTimeout, MaxAge, Flush and more
Client-Server & Failover
- OPENEJB-1293 Conditional Client Failover based on container or bean thrown Exception types
- OPENEJB-1292 Client Failover on connection pool timeout
- OPENEJB-1232 Client Failover and ConnnectionStrategy configurable on a per bean basis
- OPENEJB-1100 EJB Clients using http can set connectTimeout and readTimeout
- OPENEJB-1369 Help, expanded options and cleaner output for MulticastTool
- OPENEJB-1112 ejbds service (ejbd+ssl) setup on port 4203
- OPENEJB-1370 Broadcast InetAddress.getLocalHost() when ejbd is bound to 0.0.0.0
- OPENEJB-1281 Preconfigured failover with JNDI provider url such as "failover:ejbd://foo:4201,ejbd://bar:4201"
- OPENEJB-1289 Client connection pool timeouts events catchable as ConnectionPoolTimeoutException
- OPENEJB-1240 @WebServiceRef support for @LocalClient
- OPENEJB-1130 Stricter ClientModule classpath discovery prevents possible NameAlreadyBoundException
- OPENEJB-1372 Default openejb.descriptors.output to true when there are validation failures
- OPENEJB-1353 Be more tolerant of truly empty beans.xml and ejb-jar.xml – zero length files
- OPENEJB-1107 Updated builtin exclude list
- OPENEJB-1122 Create a sample to illustrate the SEI inheritance
- OPENEJB-1378 Example: MDB with Quartz Resource Adapter
- OPENEJB-1381 Example: WebService SEI Inheritance
- OPENEJB-1380 Example: Common Troubleshooting Flags
- OPENEJB-1379 Example: Transaction Rollback
- OPENEJB-847 Validation: @Resource UserTransaction injection mistakenly used on bean with Container-Managed Transactions
- OPENEJB-1255 Time-based configuration options can now be additive, as in "1 hour, 27 minutes and 34 seconds"
- OPENEJB-1111 PAX friendly LogStreamFactory for use in OSGi environments
- OPENEJB-1276 Add #getTransactionIdentifier(Transaction tx) to o.a.o.hibernate.TransactionManagerLookup
- OPENEJB-1279 Stateless PreDestroy called on undeploy/shutdown
- OPENEJB-1208 Handle "destinationName" as synonym for the "destination" ActivationConfigProperty
- OPENEJB-1238 Custom JNDI name format properties at bean, app, or server level
- OPENEJB-1365 New log4j.category.OpenEJB.persistence log category
- OPENEJB-1242 suport connector 1.6 and 1.0 dds in jee jaxb tree
- OPENEJB-1027 Add the application name to the data sources matching heuristics
- OPENEJB-1301 MDB InstanceLimit settable on a per-bean basis via openejb-jar.xml
- OPENEJB-1123 Allow default security service to be overriden
- OPENEJB-1275 JMX: EJB Method invocations
- OPENEJB-1273 JMX: Stateless Pool Stats
- OPENEJB-1282 mappedName fails to work for @Singleton
- OPENEJB-1258 Boolean conversion problem in ejb-jar.xml
- OPENEJB-1118 Split package org.apache.openejb.client
- OPENEJB-1252 URL->File decoding should avoid "+" in paths
- OPENEJB-1251 osgi annotation import needs to specify version 1.1 to avoid picking up jdk's v 1 classes
- OPENEJB-1297 HeartBeat message is not read correctly for multipoint cluster
- OPENEJB-1300 Possible Windows jvm bug results in "java.lang.ClassCastException: org.apache.xbean.recipe.ObjectRecipe cannot be cast to ...."
- OPENEJB-1120 TomcatSecurityService should grant the guest role when no user is logged in
- OPENEJB-1020 Inheritance not supported in JAX-WS endpoint interfaces exposed via CXF
- OPENEJB-1347 ClassCastException in ClassLoaderUtil.clearSunJarFileFactoryCache
- OPENEJB-1127 Unpacked RARs ignored
- OPENEJB-1249 Undeploy apps and stop ResourceAdapters on shutdown
- OPENEJB-1109 Deploy time java.sql.SQLException: Auto-commit can not be set while enrolled in a transaction
- OPENEJB-1261 JSP Error on installer-view.jsp with Tomcat 6.0.26
- OPENEJB-1053 web.xml: unexpected element (uri:"http://java.sun.com/xml/ns/javaee", local:"taglib"
- OPENEJB-1116 CMP2 EntityBean conflict when a persistent property exists called "deleted"
- OPENEJB-1114 <ejb-class> element should be optional for <session> and <message-driven> declarations
- OPENEJB-1315 NPE when deploying EJB modules.
- OPENEJB-1241 Using @WebServiceRef does not allow standard JAX-WS Api usage
- OPENEJB-1309 Make the DependOn sort algorithm stable
- OPENEJB-1244 upgrade legacy activemq 4 support to 4.1.2
- OPENEJB-1245 Possible Stateful bean passivation/activation error: ClassNotFoundException
- OPENEJB-1129 Reverse lookup for logging may cause poor client/server performance
- OPENEJB-1239 Bad client connection is never getting discarded from pool
- OPENEJB-1286 Bug in reporting invalid @PostActivate/@PrePassivate usage in Stateful and Singleton beans
- OPENEJB-1131 JDK 1.6.0 u18 has a ClassCastException in ClassLoaderUtil.clearSunJarFileFactoryCache
- OPENEJB-1247 @Singleton @PreDestroy on container system shutdown
Several new features for Stateless Beans
As OpenEJB is deployed into more and more production environments we've been hard at work filling out the system to meet demands. The latest overhaul has been around the @Stateless bean pooling options.
At a high level, the new features provide:
Using the above features it's possible to build a pool to fit your exact needs. The pool shrinking functionality allows a pool that has reached its maximum size to shrink down over time to its minimum size (which can be zero!) either aggressively or gracefully, keeping resources consumed at a minimum. The freshness functionality allows the entire pool, even the minimum, to be purged and renewed either aggressively or gracefully over time, preventing leaky state from building up over the long life of the pool.
The new options are: PoolMin, IdleTimeout, PollInterval, MaxAge, ReplaceAged, MaxAgeOffset, and CallbackThreads. Garbage collection functionality is achieved internally through java.lang.SoftReference(s) and nothing is required to enable it, though it can be tuned at the VM level. Pool flushing can be done via the javax.ejb.SessionContext object of Stateless beans which now can be cast to java.io.Flushable.
All of the above functionality is of course thread-safe. Instances cannot be garbage collected, expired via MaxAge, or flushed while in use. Calling flush() on a "hot" pool will not affect instances in use till they return to the pool. The same applies for any instances that reach their MaxAge while in use -- they are only expired once returned to the pool.
The above options are properly tuned and balanced as well and will not compete. For example, flushing a pool will not cause any instances created to refill the pool to have the same creation time and therefore expire together in one, very ungraceful, drop. Creation times will be skewed to keep MaxAge expiration spread out. As well MaxAge and IdleTimeout are enforced together such that MaxAge is enforced, instances are transitioned into the "minimum side" of the pool as needed, and the remainder is subject to IdleTimeout. The pool will not timeout a perfectly good instance that could be used to keep the pool at it's minimum.