Specification of the system we used 

Java(TM) 2 SDK, Enterprise Edition

Version:      1.3.1 FCS

Release Date: January 2002

Copyright 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto,

California 94303, U.S.A.

 

For code examples and instructions on how to use the J2EE SDK,

Please see the J2EE Tutorial at: http://java.sun.com/j2ee/tutorial

J2EE Supported Platforms

The 1.3.1 release of the J2EE SDK continues to support the following platforms:

  • SolarisTM 7 Operating Environment
  • SolarisTM 8 Operating Environment
  • Windows NT, v. 4.0
  • Windows 2000 Professional
  • Linux Redhat, v. 6.2

J2EE Supported Databases and JDBCTM Drivers

The 1.3.1 release supports database drivers that conform to versions 1.0 and 2.0 of the JDBC API. We have performed tests with the following database servers:

  • Oracle8 Server, v. 8.16
  • Microsoft SQL Server, v. 7.0
  • Cloudscape, v. 4.0.6

Required Software

The Java 2 SDK, Enterprise Edition (J2EE) requires you to install the Java 2 SDK, Standard Edition (J2SETM). You need the J2SE SDK to run the J2EE server and to build and run J2EE applications. If your J2EE application client resides on a different machine than the J2EE server, then you must install the J2SE SDK on both the server and client machines. (This rule applies only to J2EE application clients, not to Web browser clients.)

This release of the J2EE SDK requires the versions of the J2SE SDK listed in the following table:

Required Versions of the J2SE SDK

Operating System

J2SE SDK Version

SolarisTM 7 Operating Environment
SolarisTM 8 Operating Environment

1.3.1_02

Windows NT 4.0,
Windows 2000 Professional

1.3.1_02

Linux Redhat, v. 6.2

1.3.1_02

 

 

Note: Versions of the J2SE SDK not listed in the preceding table have not been tested and are not supported. For example, the J2SE SDK v. 1.2 will not work with this release of the J2EE SDK.

Current Limitations of the J2EE system we used

The purpose of the J2EETM SDK is to introduce you to Java 2 Enterprise Edition technology and to provide you with an opportunity to give us feedback on the work we've done so far. This release has several limitations.

Multi-byte Character String Support

The current release does not support the use of multi-byte strings in EJB class names and JNDI names.

Database Calls During Result Set Iteration

With some JDBC drivers you cannot access the database while iterating through a result set. In the following code example, the stmt.executeUpdate call will fail:

String query = "SELECT DEPTNO FROM DEPT . . .";
String update = "UPDATE EMPLOYEE . . .";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
   String s = rs.getString("DEPTNO");
   // The following statement will FAIL:
   stmt.executeUpdate(update);
   . . .
}

 

 

 

 

 

 

 

 

You may be able to get around this limitation by trying the following approaches:

1. Use a stored procedure that contains the same SQL calls.

2. Substitute an iteration with a single SQL statement that contains a subquery. Here's an example:

String update = "UPDATE EMPLOYEE
    SET DEPTNO =
      (SELECT DEPTNO FROM DEPT
       WHERE LOC = `ATLANTA')
   WHERE TITLE = `ENGINEER'";

3. Call another method that issues the second SQL statement. The method must use the RequiresNew transaction attribute. If you try this approach, you should be aware that the second SQL statement is executed in another transaction. Therefore, if the second transaction fails, you need to mark the first transaction for rollback.

Scalability and Memory Requirements

The minimum memory requirement is 128 MB of memory. We recommend 256 MB for larger applications.

In the J2SE 1.3.1 software, an OutOfMemoryError can result when a very large number of classes are loaded by the Java virtual machine, even when there are free spaces on the Java heap. Workaround: Edit bin/setenv.sh or bin/setenv.bat to add the following option to the JAVACMD variable:

-XX:MaxPermSize=256M

See also

http://developer.java.sun.com/developer/bugParade/bugs/4390238

Common Development Environment

Each developer should work with his or her own J2EE SDK installation. Multiple developers should not share the same J2EE server.

RMI-IIOP and JAXP Standard Extensions

The J2EE SDK will not work with a J2SE installation which has the RMI-IIOP and JAXP standard extensions. The j2ee.jar file of the J2EE SDK already has the RMI-IIOP and JAXP classes. Workaround: Use a fresh J2SE installation without the standard extensions.

 

 

Known Bugs in J2EE

 

Known Bugs for This Release

Bug ID

Description

4461245

The SQL generator in the deploytool generates database table names for storing the persistent state of CMP entity beans. The table name is based on the bean class name. If there are two or more beans with the same bean class name (in the same EAR or in multiple deployed EARs), the table names will conflict. Workarounds: Use different datasources for storing beans in different EARs. Or, change the table names in the generated SQL statements in the Deployment Settings dialog for entity beans.

4533469

RMIC generates an incorrect stub when compiling an EJB remote interface of the following form:

 
public interface Foo extends EJBObject {
 
  public boolean isFoo() throws RemoteException;
 
  ...
 
}
 

This bug only occurs when the method name is of the form is<Name> where <Name> is the name of the EJB remote interface. In addition, the method takes no arguments and returns a boolean. When this method is called, the system may throw a CORBA BAD_OPERATION exception. Workaround: Rename the interface name or the method name.