JBoss AS 4.2.1.GA Release Notes
This is the first bug fixing release of the JBoss Application
Server v4.2 series. The aim of this release is to fix the
most important bugs reported by the community against JBossAS
v4.2.0.GA. There are a few minor components upgrades (Hibernate,
JacORB, JBoss TS, JBoss Remoting and Sun JSF) but we have taken extra
care for any changes to be fully backwards compatible, so you should be
able to switch from 4.2.0 to 4.2.1 without problems. Check out the Detailed
Release Notes section for the full details.
JBoss AS 4.2
is a stepping stone from JBoss 4.0 to JBoss 5.0. It combines a lot (but
not all) of the exciting new features of JBoss 5, but based on the
stable 4.x MicroKernel architecture.
JBoss AS 4.2 is also used as the basis for the
JBoss Enterprise Application Platform. The Application
Platform bundles JBoss AS and
JBoss Seam
in a software package for which commercial support
is offered
by JBoss/Red Hat. Please read
Sacha's
blog if you are interested to learn more about the new
development, distribution and support model for JBoss.
For information on the APIs that make up Java EE 1.4, see Java EE
v1.4 Documentation. For a comprehensive tutorial on Java EE
1.4, see
The Java EE™ 1.4 Tutorial. A jboss-4.2.x getting
started guide that is based on contents from the tutorial can be found
in JBoss
Application Server Documentation Library
Note: The 4.2.x release of the JBoss Application
Server provides support for certain JavaEE5 features, such as EJB3, but
it is not Java EE5 certified.
Overview
- JDK5 is *required* to run JBossAS 4.2.x. The decision was
based on the fact that JDK1.4 is phased out and the reality that a lot
of people like Java Annotations support and want to combine EJB3 and JBoss Seam
components with JBossAS. JDK6 is not formally supported yet, although
you may be able to start the server with it. JDK6 support will come
with JBossAS 5.x.
- JBoss
EJB3 is now deployed *by default* in JBossAS 4.2.x The fact
that we base on JDK5 makes our life easier in this regard, meaning we
don't have to maintain jdk5 code retro-weaved for jdk1.4 runtimes, and
we can include by default components that require jdk5 to run.
- JBoss
Web v2.x is the web container in JBossAS 4.2, an
implementation based on Apache Tomcat that includes the Apache Portable
Runtime (APR) and Tomcat native technologies to achieve scalability and
performance characteristics that match and exceed the Apache Http
server. In the absence of the native libraries,
JBoss Web falls back to the standard non-native connector mode. The
native libraries need to be downloaded
and installed separately in JBOSS_HOME/bin/native.
- JBoss
Transactions v4.2 is the default transaction manager for
JBossAS 4.2. JBoss Transactions is founded on industry proven
technology and 18 year history as a leader in distributed transactions,
and is one of the most interoperable implementations available. The JTA
version of JBoss Transactions included with the server provides for
fully recoverable transactions. For distributed transaction support the
JTS version of JBoss Transactions will need to be used. Furthermore, it
is always possible to fall back to the legacy JBossTM fast in-memory
transaction manager implementation, although it should be noted
that JBoss TM will not be supported in future JBossAS versions.
- JBoss
WS
is the web services stack for JBoss 4.2 providing Java EE compatible
web services.
- JGroups/JBossCache
is already configured
to support channel multiplexing, when it becomes available.
- JBoss
Remoting was upgraded to the latest stable 2.2.x version.
This was done in order to align dependencies with the thirdparty
libraries required by the new JBoss Messaging,
which means that, if you want, you can replace the default JBossMQ
messaging provider with JBoss Messaging, without having to revert to a
scoped deployment.
Minor feature additions in 4.2.1.GA
- LIMIT/OFFSET support in StoreManager2 (CMP), JBAS-4408.
- detect collisions between JSF RI and JSF MyFaces, JBAS-3158.
This lists the changes that could affect compatibility.
According to our product
versioning rules, JBossAS 4.2.1 should be fully compatible
with JBossAS 4.2.0. However you may want to check the release notes of
the individual JBoss
and Thirdparty libraries updated with this release. Some related issues that you should be aware of are listed below:
JBossAS 4.2.1.GA
- JBoss TS, the new default transaction manager will not let
you enlist multiple 1-phase participants in the same transaction. This
was *not* the default behavior with the legacy JBoss TM that would log
a warning and continue. There are good reasons for this change, mainly
to avoid heuristic outcomes in the case of system crashes, which is the
primary reason of using a transaction manager anyway! If your come
across this problem you should try to fix it by switching to XA
resources or implementing some form of compensating transactions.
However, if this is not option and you are fully aware of the
consequences you can override this behavior by setting
com.arjuna.ats.jta.allowMultipleLastResources to true in
conf/jbossjta-properties.xml. For more details read the wiki on Multiple1PC,
or consult the JBoss
Transactions documentation.
- A major problem related to the cleaning up of threads after user transaction timeouts was corrected in JBAS-4481. If you happen to be using User Transactions make sure you follow the correct pattern for committing or rolling them back.
- Another serious classloading issue that could lead to a hanging JBoss with a 100% CPU utilization was fixed with JBAS-4441.
JBossAS 4.2.0.GA
- A JavaSE 5 runtime is required
to run JBossAS 4.2. A full
JDK with tools.jar support is no longer needed by jboss, since JBoss
Web packages the eclipse JDT compiler for compiling JSP pages and
javassist has its own internal compiler. JAVA_HOME can point to a JRE, JBAS-4161.
- When compared to previous 4.0.x releases, the various JBoss
APIs should be stable but backwards
compatibility for individual component implementations may not be
guaranteed, e.g. interoperating with another JBoss instance that uses
an older version of JGroups.
- Tomcat 6 is now bundled as part of JBoss Web.
deploy/jbossweb-tomcat55.sar has been replaced by
deploy/jboss-web.deployer.
- conf/log4j.xml has been renamed to conf/jboss-log4j.xml, to
allow log4j.properties override from scoped deployments, JBAS-1853.
- log4j and commons-logging have both been upgraded.
commons-logging is patched in addition, JBAS-2823.
- Since the latest log4j includes a trace level, there is no
need to reference the custom jboss TRACE level in conf/jboss-log4j.xml
configs, JBAS-4163.
Instead of: <category
name="org.jboss.system"><priority value="TRACE"
class="org.jboss.logging.XLevel"/></category>
you can use: <category
name="org.jboss.system"><priority
value="TRACE"/></category>
- Better integration with WebSphere MQ 5.x, JBAS-3183.
- The MyFaces JSF implementation has been replaced by the
Glassfish JSF 1.2 one, JBAS-3897.
- Hibernate, hibernate-annotations and
hibernate-entity-manager have all been upgraded. to v3.2.1.
- The default invoker for EJBs has been changed from the
rmi-invoker to the unified-invoker, provided by JBoss Remoting, JBAS-3950.
- Apache commons http-client and apache-codec were removed
from jbossall-client.jar, JBAS-4365.
- The address that is stored in the host portion of the RMI
codebase URL can now be set correctly, JBAS-3325.
- The java2ClassLoadingCompliance setting in jboss-web.xml
was ignored; this has been fixed, JBAS-3047.
- In JBoss 4.2 the unified invokers based on JBoss Remoting
are the default transport for accessing EJBs. Using the unified
invokers JBoss 4.2 can interoperate safely with JBoss AS
4.0.4.GA/4.0.5.GA, using the flag
-Djboss.remoting.pre_2_0_compatible=true on the JBoss 4.2.x side. For
interoperating with older JBoss AS versions (3.2.8.SP1 to 4.0.3.SP1)
the legacy rmi or pooled invokers need to be used. See JBAS-4407
and the wiki page on
JBoss Version Compatibility.
This lists the changes that could affect configuration.
JBossAS 4.2.1.GA
- %PATH% is not removed from java.library.path in the
presence of JAVA_HOME/bin/native, so e.g. native jdbc drivers can be
loaded, JBAS-4418.
JBossAS 4.2.0.GA
- JBossAS now binds its services to localhost (127.0.0.1) *by
default*, instead of binding to all available interfaces (0.0.0.0).
This was primarily done for security reasons because of concerns of
users going to production without having secured
their servers properly.
To enable remote access by binding
JBoss services to a particular interface, simply run jboss with the -b
option. To bind to all available interfaces and re-enable the legacy
behaviour use -b 0.0.0.0. In any case, be aware you still need to secure
you server properly.
- There now distinct properties to configure the various
mcast ports, JBAS-4021.
- When running under Linux, run.sh forces the use of IPv4,
due to a jdk bug, JBAS-4332.
- JBoss EJB3 is now included by default. If you don't
need/want EJB3 support, simply remove deploy/ejb3.deployer.
- When using native libraries for JBoss Web store them in
JBOSS_HOME/bin/native, which is automatically included in the
classpath, JBAS-4162.
- JBoss Transactions is the new default transaction manager
in JBoss. It is configured in conf/jboss-service.xml and has additional
properties defined in conf/jbossjta-properties.xml. The transaction log
is stored by default at server/default/data/tx-object-store.
- If you are on Red Hat Linux, check out the changes in
bin/jboss_init_redhat.sh, JBAS-4041.
- The JBossAS distributions usually include the installer
(.jar), the sources (.tar.gz) and the canonical binary release (.zip).
Unzipping the binary distribution (.zip) with a native unzip utility
will restore correctly the executable permission in the /bin/*.sh
files. However, unzipping using the JDK jar utility ignores the
executable bit, so this need to be set manually.
- bin/shutdown.sh no longer sources run.conf, JBAS-4155.
The library updates reported in this section are against JBossAS
4.2.0.GA For a full list of the JBoss and thirdparty libraries used
with JBoss AS 4.2.1 checkout the build-thirdparty.xml.
JBoss Library Updates
- hibernate, upgraded to v3.2.4.SP1_CP01
(from v3.2.3.GA)
- jboss-ts14, upgraded to v4.2.3.SP5
(from v4.2.3.SP3)
- jboss-remoting, upgraded to v2.2.1.GA (from v2.2.0.SP4)
Thirdparty Library Updates
- jacorb, upgraded to v2.3.0jboss.patch4 (from
v2.2.4jboss.patch1)
- sun-jsf, upgraded to v1.2_04_P02 (from v1.2_04_P01)
Includes versions: JBossAS-4.2.1.GA
Feature Request
- [JBAS-3158]
- Need a way to detect collisions between JSF RI and JSF MyFaces
- [JBAS-4408]
- LIMIT/OFFSET support in StoreManager2
- [JBAS-4454]
- Upgrade to JSF RI 1.2_04 P02
Bug
- [JBAS-4415]
- ClusterFileTransferTestCase.testFarmDeploy fails to delete and copy
- [JBAS-4418]
- run.bat should include %PATH% in java.library.path when bin/native
exists
- [JBAS-4425]
- ConnectionFactoryTemplate.xsl incorrectly sets isSameRM-override-value
- [JBAS-4427]
- Misnamed FK index name for CMP2
- [JBAS-4429]
- Classloader leak to JBossTS ReaperThread
- [JBAS-4441]
- Jboss hangs at startup with 100% CPU utilization
- [JBAS-4444]
- The invoker-proxy-binding in the base container configuration is
ignored on sub-configurations.
- [JBAS-4461]
- new InitialContext().rebind("x", null) throws NullPointerException
- [JBAS-4462]
- mod() function not supported in SQL server 2005
- [JBAS-4473]
- Java to IDL mapping erroneously treats a 'get' method as an attribute
- [JBAS-4481]
- Transaction timeouts leave garbage Status.ROLLEDBACK UserTransaction
object bound to the thread
Task
- [JBAS-4198]
- Align EJB3 Security with JEE 1.4 Behavior
- [JBAS-4420]
- Separate classloader leak tests from the 'all' tests
- [JBAS-4442]
- Need to update exception handling code in HypersonicDatabase.java
- [JBAS-4467]
- Document in the release notes a configuration for multiple 1PC with
JBossTS
- [JBAS-4480]
- Upgrade hibernate to v3.2.4.SP1_CP01
- [JBAS-4482]
- Add compatibility runs against 4.2.0.GA in Branch_4_2
- [JBAS-4503]
- Update the release notes for JBossAS 4.2.1.GA
- [JBAS-4510]
- Upgrade jboss remoting to v2.2.1.GA (from v2.2.0.SP4)
Documentation and help may be obtained from the JBoss site.
JBoss is licensed under the LGPL,
as explained in the JBoss End
User License Agreement. The licence texts for JBoss and the
thirdparty components it uses may be found in the docs/licenses
directory of the distribution. Browse
Licences
JBoss, a division of Red Hat, is in the business of providing
superior technical support to our customers. Our goal is to make
Professional Open Source™ the SAFE CHOICE
for you. We accomplish this by backing up our open source Java products
with technical support services that are delivered by the core
developers themselves. We can help you to train your staff and provide
you with support at every stage of the application lifecycle - from
development and integration through deployment and maintenance. Visit
the JBoss
Services page for more information.