Corporate Info | News | Solutions | Products | Partners | Services | Events | Download | How To Buy
BEA WebLogic Server 5.1 Release Notes: Previous Topic | Next Topic | Contents

Known Issues with BEA WebLogic Server 5.1

This document lists problems you should be aware of in the 5.1 release.

- EJB Issues

- WebLogic Server Tools and Wizards Issues

- Servlets Issues

- JMS Issue

- Licensing Keys Issue

- jDriver for Oracle Issues

- Remote Method Invocation (RMI) over IIOP Issues

- WebLogic Server Issues

- Cloudscape Evaluation Version 2.0.1

- WebLogic Enterprise Connectivity Issues

- Examples Issues

EJB Issues

- Issue 9988. To use the EJB DeployerTool utility on Solaris, you must use JDK version 1.2.2. Using other JDK versions on Solaris yields a java.lang.IllegalArgumentException or java.lang.NullPointerException at startup.

- Issue 9997. When running DeployerTool on Solaris, the utility may display exceptions when you load an existing EJB .jar file. These exceptions can be ignored, and you can use the utility to modify and deploy the .jar. When running DeployerTool on Solaris, you cannot deploy EJBs to remote servers on other Solaris platforms, or to remote servers on Windows NT platforms. This problem does not occur if you run DeployerTool on Windows NT, and it does not occur if you are deploying to a local server on Solaris.

- Issue 9902. Spaces in file and directory names in the classpath cause ejbc and rmic to fail.

- Issue 9897. When you create a new .jar file in DeployerTool and begin adding files to the .jar, you can only add files from subdirectories of directory you used to start DeployerTool. For example, if you started DeployerTool from c:\weblogic\myserver, you can only add files to a .jar that reside in \myserver, or in subdirectories of \myserver. If you attempt to load files from any other directory, DeployerTool displays an assertion error.

- Issue 9171. When you use DeployerTool to create a new .jar file that contains an entity EJB with WebLogic Server RDBMS-based persistence, DeployerTool highlights the EJB in red, indicating deployment errors. The Error messages are: "The following persistence types are invalid: Weblogic RDBMS persistence 5.1.0 The following finder methods contain invalid data: findByPrimaryKey". If you experience this problem, save the EJB .jar file with the indicated error message, and close the file. When you next open the same .jar file, DeployerTool reports only valid deployment errors. For example, you may still need to finish mapping EJB fields to database columns, but DeployerTool no longer reports an invalid persistence type.

- Issue 8107. If you use the JDK 1.1.7 jar utility to package EJB deployments, you may receive the following error when using a .jar file with WebLogic Server utilities: java.io.EOFException: Unexpected end of ZLIB input stream at java.util.zip.InflaterInputStream.fill. If you experience this problem, either use the JDK 1.2 jar utility to package the EJB, or use the -0 option with the JDK 1.1.7 utility to create an uncompressed archive.

- To use a WebLogic Server connection that you have created in the EJB DeployerTool utility, right-click on the connection name and select the Refresh command. DeployerTool indicates whether it was successful in connecting to the selected server. Connecting to a particular server enables you to view and assign principal names that are available in the server before deploying the EJB.

- DeployerTool enables you to create different transaction attributes and permissions for multiple EJB methods. To specify different transaction attributes for EJB methods, create multiple attribute names of tx-0, tx-1, tx-2, and so forth. Then click on each attribute name, select a method, and specify a transaction attribute for the selected method as described in the DeployerTool documentation. To specify different method permissions, create multiple permission names of perm-0, perm-1, perm-2, and so forth. Then click on each permission name, select a method, and specify permissions as described in the documentation.

- Reentrant calls for entity beans are only supported if both methods are executed under the same transaction context. Reentrant calls do not work for non-transactional methods.

- Issue 9714. In previous WebLogic Server versions, the isolation level for EJBs could be defined at the method-level, as required by the EJB 1.0 specification. In the EJB 1.1 specification, there is no such requirement, and the isolation level can be set only at the bean level.

- Issue 9569. You cannot have multiple EJBs in a single EJB deployment unit that share the same EJB implementation class name. If more than one class shares an implementation class name, the deployment unit will have naming conflicts when you compile using ejbc.

- Issue 9387. This release of WebLogic Server does not recognize method-permission and container-transaction settings for an EJB's home methods. By default, home methods receive access permission for "everyone," and transaction attributes are set to "Required."

- Issue 7376. If you manually edit or create XML deployment files for your EJBs, make sure you define the method-intf element for each method in your ejb-jar.xml file. If you do not define method-intf, WebLogic Server assumes that the method exists in the EJB's home interface, rather than the remote interface. This problem does not occur if you use the DeployerTool utility to automatically generate XML deployment files.

- Issue 5997. Container-managed JDBC persistence uses an inappropriate stack trace.

- Issue 2547. A multi-bean transaction of entity beans will fail because the JDBC drivers in a transaction with multiple resources do not support the two-phase commit protocol.

WebLogic Server Tools and Wizards Issues

Console Issue

- Issue 6022. EJB set ManagedProperty Value errors that occur during hot deployment in the WebLogic Console have a stack trace that is larger than the dialog can display.

ZAC Issue

- Issue 5755. Accepting null or empty when creating a shortcut icon on the bootstrap generator page can result in a NullPointerException and stack trace on the ZAC client. This does not cause a problem in practice and is a result of a Swing threading issue.

EJB Wizard

- Issue 29863. The EJB Wizard cannot generate an EJB Client JAR file. If you define the Client JAR file name at deploy time, it does generate the information to the ejb-jar.xml, but it does not physically generate the file specified for the user.

Servlets Issues

This release introduces support for the HTTP Servlet 2.2 specification, including the deployment of multiple Web Applications and multiple servlet contexts. All features of the Servlet 2.2 specification are supported unless otherwise stated.

- Issue 9628. The <load-on-startup> XML tag is not honored.

- Issue 9150. HTTP tunneling through a Network Address Translating firewall is not supported in this release.

- Issue 7640. The default value for the property weblogic.httpd.postTimeoutSecs may be too short for a slow network or Internet connection and may cause unexpected timeouts. To fix this problem, increase the value of weblogic.httpd.postTimeoutSecs.

- Issue 5403. There is a known issue using session persistence when running the server under Java 2 v1.2.1. JDBC Persistent sessions. The java verifier throws an exception: java.lang.VerifyError:(class:weblogic/servlet/internal/session/ClusteredSessionPSJDBC, method: findAllKeys signature: ()Ljava/util/Enumeration;. There are two workarounds:

  - Specify the -noverify command-line option when starting the Server under Java 2 v1.2.1

JMS Issue

- Issue 7462. If the number of subscribers to a JMS topic is larger than the number of execute threads in WebLogic Server, the server can run out of execute threads while pushing messages out to the subscribers. This problem will only occur if you are using auto-acknowledge or have implemented the onMessage method in your message listener. As a temporary work around, you can use client-acknowledge while implementing the onMessage method in your message listener, or you can increase the number of execute threads in the server.

Licensing Keys Issue

- Issue 6347. The semantics of our licensing scheme has multiple keys for individual features. If the licenses are of varying permission levels, the license file needs to be edited in order for the most permissive key to be used. For information on editing licenses, see Installing a WebLogic License.

jDriver for Oracle Issues

- Issue 10026. WebLogic jDriver for Oracle is only supported on HP when the Oracle client and Oracle server are the same version. For example, an Oracle 8.0.5 client is only supported when connecting to an Oracle 8.0.5 server.

- Issue 9431. WebLogic jDriver for Oracle is not supported when using the Oracle 8 API and connecting to an version 7 Oracle DBMS.

- Issue 9283. CallableStatement.getResultSet()with a defined ResultSet Cursor does not work when using the Oracle 8.1.5 DBMS on the Solaris operating system.

  When using Oracle client version 8.0.5 and executing a CallableStatement with a defined ResultSet Cursor, you must re-register the cursor prior to each CallableStatement.getResultSet() call. For example:

      weblogic.jdbc.common.OracleCallableStatement cstmt2 =
       (weblogic.jdbc.common.OracleCallableStatement)
       conn.prepareCall("{CALL single_cursor(?, ?)}");

      cstmt2.registerOutParameter(1, java.sql.Types.OTHER);

      // You can also set input parameters, execute the statement,
      // retrieve the query into a ResultSet, and print it
      // for each set of input parameters.

      System.out.println
       ("FIRST sproc 'single_cursor' exec for INT==1\n\n\n\n");

      cstmt2.setInt(2, 1);
      cstmt2.execute();
      rs = cstmt2.getResultSet(1);

      System.out.println("FIRST sproc 'single_cursor' exec for
       INT==2\n\n\n\n");

      // Add the following line to re-register the cursor:
      cstmt2.registerOutParameter(1, java.sql.Types.OTHER);

      cstmt2.setInt(2, 2);
      cstmt2.execute();
      rs = cstmt2.getResultSet(1);

- Cross-platform incompatibility when using Oracle 8.0.5 and 8.1.5 clients running on HP. The following combinations are known to be incompatible:

  - Oracle 8.0.5 Client running on HP connecting to an Oracle 8.1.5 DBMS running on Windows NT or Solaris.

  - Oracle 8.1.5 client running on HP connecting to an Oracle 8.1.5 DBMS running on Solaris.

- Issue 9708. Using the CLOB data type and using codeset conversions while running the Oracle client and Oracle server on different operating systems will fail.

- Issue 9992. The commented-out connection pool for Oracle (oraclePool) in the weblogic.properties file uses refreshMinutes. It should be changed to refrestTestMinutes.

Remote Method Invocation (RMI) over IIOP Issues

Client restrictions

Clients can call into RMI servers and EJB with the following restrictions:

- Return values and parameters are limited to RMI value types.

- Client-side callbacks are currently not supported.

CosNaming service

WebLogic Server's CosNaming service is restricted to lookup only (NamingContext.resolve()). This naming service delegates to WebLogic Server's JNDI implementation, so you only need to administer the JNDI tree to make objects accessible to CosNaming clients.

WebLogic Server Issues

- Issue 10065. Problems with the server connections when the client is an applet using the Java plug-in. The message "Connection rejected: 'Login timed out after: '5000' ms on socket:" is displayed. The port number increments indefinitely.

- Issue 9731. Possible security-related IOException when clients are multi-threaded. The exception is: java.io.IOException: weblogic.security.SSL.BadMACException.

- Issue 8925. If you want to start WebLogic Server without using dynamic class loading, pass the following property on the java command line when you start WebLogic Server: weblogic.system.disableWeblogicClassPath=true. You must then include all of the classes required to start WebLogic Server in the environment CLASSPATH variable. A WebLogic Server started in this way will be unable to deploy EJBs and servlets without restarting WebLogic Server.

- Issue 7127 and 5730. The server will occasionally print erroneous "SocketException: bad file number" messages in the log file. These messages can be ignored.

- Issue 9003. On Windows NT and Solaris, connection pools are sensitive to a JVM bug that crashes the server with a message "*** panic: 16-bit table overflow". See the Sun Bug Parade. The problem is more likely to occur with applications that use EJB and/or JMS and will only happen when running with the 1.1.7 JVM.

- Issue 37423. On COMPAQ Unix, the default buffer size is 9K and WebLogic Server sometimes send fragments of size 32K. This causes an IOException. Although this has been found to occur on COMPAQ Unix, other platforms may also experience similar problems. To avoid difficulties, increase the sending as well as receiving side buffer space. On COMPAQ Unix these parameters are called udp_sendspace and udp_recvspace. To find the pertinent configurable parameters on other platforms, please consult your platform's documentation.

Cloudscape Evaluation Version 2.0.1

- If you are using the evaluation version of Cloudscape bundled with this release of WebLogic, and you are starting the server from the command line, you must also add weblogic/eval/cloudscape/lib/cloudscape.jar to the Java system classpath with the -classpath option. Both the JMS and EJB examples use the evaluation Cloudscape database. For details, see Using the Cloudscape database with WebLogic and Setting up and Starting WebLogic Server.

- Issue 9883. On some platforms, you may receive the following error when creating the demoPool connection pool using the evaluation version of Cloudscape bundled with WebLogic Server.

  WARNING: Cloudscape (instance reference #) is attempting to boot the database /weblogic/eval/cloudscape/data/demo even though cloudscape (instance reference #) may still be active. Only one instance of cloudscape should boot a database at a time. Severe and non-recoverable corruption can result and may have already occurred.

This warning is harmless and occurs because a copy of a temporary locking file has been included within the demo database directory.

WebLogic Enterprise Connectivity Issues

Engineering Issues

- Issue 20363 (CR020363). When establishing an IIOP connection pool, WebLogic Server does not always provide meaningful exceptions. For example, if the WebLogic Server fails to establish a connection pool because it cannot connect to the primary server in the WLE domain, WebLogic Server provides two messages. The first error message is misleading because it says InvalidDomain but the domain name is correct. The second error message is the correct error. For this release, ignore the first error message.

  In the following example, the first message is an informational message that indicates that the WebLogic Server is trying to connect to the specified WLE domain. The second message is an error message that says InvalidDomain. The third message is the correct error message.

      Thu Mar 30 17:58:24 PST 2000:<I> <WLEConnection> Logon to corbaloc://wlehost:2468

      Thu Mar 30 17:59:24 PST 2000:<E> <WLEConnection> com.beasys.Tobj.InvalidDomain

      Thu Mar 30 17:59:24 PST 2000:<E> <WLEConnection> Unable to connect to primary server at corbaloc://wlehost:2468 Skipping....

- Issue 20471 (CR020471). When establishing the IIOP connection pool, WebLogic Server displays a success message even when an error occurs. For example:

      Fri Apr 07 08:11:04 EDT 2000:<E> <WLEConnection> Invalid pool configuration parameter.

      Fri Apr 07 08:11:04 EDT 2000:<E> <WLEConnection> Connection pool simple failed to start.

      Fri Apr 07 08:11:04 EDT 2000:<I> <WLEConnection> IIOP Connection Pool: simple initialization done

  The last message incorrectly indicates success even though the previous messages indicate failure.

- Issue 20563 (CR020563). The ctx.lookup("java:comp/UserTransaction") command does not work in WLEC. It throws a javax.naming.NoInitialContextException exception. The workaround for this problem is to use the following commands before new InitialContext(env):

      env.put(javax.naming.Context.URL_PKG_PREFIXES, "");
      new InitialContext(env);
      ctx.lookup("java:comp/UserTransaction");

- Issue 20628 (CR020628). When establishing a connection from WLS to WLE via WLEC, if the CertificateBasedAuth and SecurityContext parameters are both set to "yes," the SpecialServiceContext is not passed from WLEC to WLE. This situation prevents the user's identity from being propagated, which means that the user who invokes the connection is not verified. The connection can be used, but a client that is not authorized to invoke the server might be able to invoke the server. There is no workaround for this problem.

- Issue 20828 (CR020828). When the security is equal to or exceeds APP_PW (password protection), the connection is not set up if the application password exceeds eight characters. The connection appears to be initialized correctly: no error message appear in the ULOG file and the initialization is reported as finished. To avoid this problem, limit passwords to eight characters or less.

- Issue 21653 (CR021653). A client application that creates hundreds of thousands of threads, each of which opens a connection to WLE via the WLEC connection pool, may experience an OutOfMemory exception. This could occur on any platform. The workaround is to modify the application to create a smaller number of threads.

Documentation Errata

Starting and Configuring WLEC

- Configuring WLEC. In the "Configuring WLEC" section, which is in the "Setting Up WebLogic Enterprise Connectivity" document, the following information is missing:

  In the weblogic.policy file, add a line to the last grant section for the codebase "file:${java.home}/lib/ext/-" as follows (the line to add is shown in bold):

      grant codeBase "file:${java.home}/lib/ext/-" {
           permission java.security.AllPermission;
      };

      grant {
         // Permission "enableSubstitution" needed to run the WebLogic console
         permission java.io.SerializablePermission "enableSubstitution";
         // Permission "modifyThreadGroup" required to run the WebLogic Server
         permission java.lang.RuntimePermission "modifyThreadGroup";
         . . .
         permission java.util.PropertyPermission "java.vm.version", "read";
         permission java.util.PropertyPermission "java.vm.vendor", "read";
         permission java.util.PropertyPermission "java.vm.name", "read";
         permission java.util.PropertyPermission "org.omg.CORBA.ORBSingletonClass", "
         write";
         };

  If you do not add this line, WebLogic Server generates the following error when trying to establish a connection pool:

      Wed May 31 11:51:39 PDT 2000:<E> <WLEConnection> java.security.AccessControlException: access denied (java.util.PropertyPermission org.omg.CORBA.ORBSingletonClass write)

- Starting WebLogic Server with WLEC. Two places in the documentation say to add poolorb.jar to the Java system classpath. This filename is incorrect. The file to add to the Java system classpath is wleorb.jar. The places where this information occurs are:

  - "Setting Up and Starting WebLogic Server 5.1"

  - "Special Considerations for Running WebLogic with Java 2"

    For complete information about modifying classpaths, see "Setting Up WebLogic Enterprise Connectivity."

- Configuring an IIOP Connection Pool for SSL. When you configure an IIOP connection pool for SSL on a UNIX platform, perform the following steps before you start WebLogic Server:

  1. Define the $TUXDIR environment variable.

  2. add $TUXDIR/lib to the shared library path (LD_LIBRARY_PATH for Solaris).

EJB Simpapp Example

- You need to modify CLASSPATH before building or compiling java files. The current examples documentation tells you to modify CLASSPATH in Step 1 under "Running the Example." However, you need to modify CLASSPATH earlier in the process.

  The CLASSPATH modification to make is:

  Add wleorb.jar to CLASSPATH in %WL_HOME%\setenv.cmd (NT) or $WL_HOME/setEnv.sh (UNIX)

  Modify CLASSPATH in "Setting Up the Example" before "Step 4. Build the ejbSimpapp EJB application."

- The directory for running build.cmd (NT) or build.sh (UNIX) is incorrect. In "Step 4. Build the ejbSimpapp EJB application," which is in "Setting Up the Example," the directory should be weblogic/examples/wlec/ejb/simpapp (instead of SERVER_CLASSES) where weblogic is the directory where you installed WebLogic Server.

JSP Stateless Session Bean Example

- When you modify the weblogic.properties file to initialize an IIOP connection pool as described in Step 5 under "Setting Up the Example," set the domain name to simpapp in the weblogic.properties file if you are on UNIX or to ejbsample if you are on NT. These domain names enable you to connect to the WLE EJB statelessSessionBean domain.

  Note: Even though the example is for a stateless session bean, the domain name is simpapp on UNIX because the WLE Stateless Session Bean sample uses simpapp as a domain name in the UBBCONFIG file

- The path in Step 8 under "Setting Up the Example" incorrectly repeats the myserver directory. The step should be:

  Copy the statelessSessionBean.jsp file to %WL_HOME%\myserver\public_html\jsp (NT) or $WL_HOME/myserver/public_html/jsp (UNIX).

- The URL in Step 3 under "Running the Example" is incorrect. It should be:

      http://localhost:7001/jsp/StatelessSessionBean.jsp

JSP University Example

- You need to modify CLASSPATH before building or compiling java files. The current examples documentation tells you to modify CLASSPATH in Step 1 under "Running the Example." However, you need to modify CLASSPATH earlier in the process.

  The CLASSPATH modification to make is:

  Add wleorb.jar to CLASSPATH in %WL_HOME%\setenv.cmd (NT) or $WL_HOME/setEnv.sh (UNIX)

  Modify CLASSPATH in "Setting Up the Example" before "Step 5. Compile UniversityHelper.java."

- Perform the following step before "Step 7. Make sure the document root is configured correctly" in "Setting Up the Example":

  Enable the JSP by uncommenting the following properties in the weblogic.properties file:

      weblogic.httpd.register.*.jsp=\
           weblogic.servlet.JSPServlet

      weblogic.httpd.initArgs.*.jsp=\
           pageCheckSeconds=1,\
           compileCommand=c:/java/bin/javac.exe,\
           workingDir=d:/weblogic/myserver/classfiles,\
           verbose=true

  Make sure compileCommand points to a valid Java compiler. See "Setting Up WebLogic JSP" in the Administrator's Guide.

  (This step is the same as "Step 6. Enable the JSP ..." for the JSP Stateless Session Bean Example.)

- In Step 3 under "Running the Example," the filename for the HTML file is incorrect. It should be universityForm.html (not UniversityForm.html).

Servlet Simpapp Example

- You need to modify CLASSPATH before building or compiling java files. The current examples documentation tells you to modify CLASSPATH in Step 1 under "Running the Example." However, you need to modify CLASSPATH earlier in the process.

  The CLASSPATH modification to make is:

  Add wleorb.jar to CLASSPATH in %WL_HOME%\setenv.cmd (NT) or $WL_HOME/setEnv.sh (UNIX)

  Modify CLASSPATH in "Setting Up the Example" before "Step 4. Compile SimpappServlet.java."

Miscellaneous Information

- WebLogic Server error. WebLogic Server might generate the following exception:

      java.lang.Exception: Required file
      /tmp_mnt/net/manager/wlec/wls_l7/hp11/weblogic/myserver/demokey1024.pem,
      which is specified by weblogic.security.key.server, was not found
      at weblogic.t3.srvr.SSLListenThread.resolveProperty(SSLListenThread.java:159)
      at weblogic.t3.srvr.SSLListenThread.<init>(SSLListenThread.java:285)
      at weblogic.t3.srvr.SSLListenThread.<init>(SSLListenThread.java:214)
      at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:1177)
      at weblogic.t3.srvr.T3Srvr.main(T3Srvr.java:825)
      at java.lang.reflect.Method.invoke(Native Method)
      at weblogic.Server.startServerDynamically(Server.java:99)
      at weblogic.Server.main(Server.java:65)
      at weblogic.Server.main(Server.java:55)

  You can ignore this exception or you can comment out the following lines in the weblogic.properties file to prevent the exception from occurring:

      #weblogic.security.certificate.server=democert1024.pem
      #weblogic.security.key.server=demokey1024.pem
      #weblogic.security.certificate.authority=ca1024.pem

Examples Issues

JMS Examples

- Issue 9887. In order to run the JMS examples examples.jms.sessionpool, examples.jms.trader, and examples.jms.startup, you must un-comment the following line in you weblogic.properties file: weblogic.allow.create.weblogic.jms.ServerSessionPool=everyone.

- Issue 9885. On Solaris, running the examples.jms.drawdemo example causes a ClassCastException on WebLogic Server during JMS message delivery. The exception repeats in an infinite loop.

- Issue 9003. On Windows NT and Solaris, examples that use a connection pool are sensitive to a JVM bug that crashes the server with a message "*** panic: 16-bit table overflow". See the Sun Bug Parade. The problem is more likely to occur with applications that use EJB and/or JMS and will only happen when running with the 1.1.7 JVM. The examples affected by this problem include:

  - applications in the examples/intro directory that use the Emp EJB

  - examples/xml/jms

  - examples/xml/biztalk

  - examples/jms

  - examples/ejb

EJB Example Issues

EJB example applications exhibit the following problems in this release:

- Issue 10066. The build.cmd script for the example in \weblogic\examples\ejb\subclass contains an extra newline character that causes the script to fail. To build this example, remove the extra newline character from build.cmd, or use the included make file.

- 10014. The example EJBs for the examples.cluster.ejb.Client application do not demonstrate load balancing, as described in the documentation. To view load balancing behavior with this example, open cluster_ejb_Account.jar and ejb_cluster_Teller.jar in the DeployerTool utility, and define clustering properties before deploying the beans.

- Issue 7659. The example in /weblogic/examples/ejb/basic/containerManaged performs multiple operations against a pure Java RDBMS system, and generally takes six to eight seconds to complete.

- The servlet clients included with the examples in /weblogic/examples/ejb/basic/containerManaged and /weblogic/examples/ejb/basic/beanManaged do not function with Internet Explorer. Accessing these servlets with Internet Explorer yields the error "No credentials supplied," even if you specify the correct username and password. This problem does not occur with Netscape Navigator.

Copyright © 2000 BEA Systems, Inc. All rights reserved. Required browser: Netscape 4.0 or higher, or Microsoft Internet Explorer 4.0 or higher.