Feature Pack for EJB 3.0 limitations

This topic lists the current limitations associated with the Feature Pack for EJB 3.0.

General

The Feature Pack for EJB 3.0 is not supported for use in conjunction with other WebSphere products such as WebSphere Commerce Suite, WebSphere Process Server, or WebSphere Portal Server.

Tools

JPA

In JPA, the persistence provider uses the Version field or property to use the optimistic locking and optimistic concurrency semantics in order to persist the entity. For example,
@Entity 
public class VersionedTimestampEntity {     
  @Id      private int id;	     
  @Version private java.sql.Timestamp version;     
  .... 
} 
The provider updates the versioned field or property to a new value when an entity is written to the database. During an entity merge operation, this version field or property is examined by the persistence provider to determine if the entity being merged is a stale copy of the entity. An OptimisticLockException error is thrown if the operation failed because of the stale version condition.

The version field or property can be one of these types: int, Integer, short, Short, long, Long and Timestamp. When the Timestamp type is used as the version field or property, the application needs to be aware of the problematic behavior that exhibits because of the implementation precision used for creating the Timestamp object. A typical implementation uses the System.currentTimeMills() and the time precision of this method is platform-specific. For example, the precision is approximately 15 milliseconds and 2 milliseconds for Win32 and zOS respectively.

If an entity is persisted and then fetched and updated in a separate thread of execution, and then updated within this thread of execution within the precision window of the platform, the persistence provider is not able to detect the optimistic locking and optimistic concurrency condition. As a result, an OptimisticLockException may not occur and data integrity could be compromised.

Programming model

The feature pack does not support Servlet 2.5 Web archive (WAR) files and Java Platform, Enterprise Edition 5 (Java EE 5) application client modules. However, the application server does support annotated injections for Servlet 2.4 WAR files and Java 2, Platform Enterprise Edition (J2EE) 1.4 application clients as a Common Annotations extension.

Database support

When an application executes the Java Persistence API (JPA) queries against an Informix® database, the database returns an SQL syntax error if the query employs table aliases for tables that are indexed. A workaround is to remove the index from the table.

When native SQL selections do not contain the select alias, you can use underscores in the column names and in Java field names. The native SQL query should reference the column names in the database and not the Java field names.

When the @Column annotation is removed, but your table columns names contain underscores, you must change the Java field names to underscore names that match the table column names. When the @Column annotation is missing, the default column name, for mapping purposes, is the Java field name. Thus, the column names in the table must match the Java field names.

When native SQL selections contain the select alias, according to JPA 1.0 specification, the @SqlResultSetMapping annotation should provide the mapping information.

EJB component bindings and extensions

Packaging and application install

System administration and security




Related tasks
Developing enterprise beans
Reference topic Reference topic    

Terms and conditions for information centers | Feedback

Last updatedLast updated: Aug 31, 2013 2:56:59 AM CDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=pix&product=was-nd-dist&topic=rejb_limitationsejbfp
File name: rejb_limitationsejbfp.html