WebLogic 4.5.2 Service Pack 2

Contents
Installation and uninstallation instructions
Installation
Uninstallation
Release notes for service pack 2
Resolved issues
Known issues
Miscellaneous issues

Contents

This service pack contains files that resolve some issues pertaining to the released product. A detailed list of these issues is provided in this document.

The service pack download is shipped as a .zip file (weblogic452sp2.zip) and contains:

  • README.html (this file)
  • README.txt
  • images/bea_logo_small.gif
  • bin/iisproxy.dll
  • bin/iisforward.dll
  • bin/proxy30.dll
  • bin/proxy35.dll
  • bin/proxy36.dll
  • bin/wlntio.dll
  • bin/wlntio_g.dll
  • bin/wlntio_g_jni1_1.dll
  • bin/wlntio_jni1_1.dll
  • examples/servlets/logging/MycustomEFLogger.java
  • lib/aix/libproxy.so
  • lib/hpux11/libproxy.sl
  • lib/hpux11/mod_wl.so
  • lib/hpux11/mod_wl_ssl.so
  • lib/linux/mod_wl.so
  • lib/linux/mod_wl_ssl.so
  • lib/linux/mod_wl_ssl_raven.so
  • lib/solaris/libmuxer.so
  • lib/solaris/libproxy.so
  • lib/solaris/mod_wl.so
  • lib/solaris/mod_wl_ssl.so
  • lib/solaris/mod_wl_ssl_raven.so

Installation and uninstallation instructions

Installation

  1. Read this document for instructions on installing the service pack and release notes about what the service pack does.

  2. Unzip the contents of the service pack into a temporary directory, such as /temp.

  3. Copy weblogic452sp2.jar from /temp to a location where it can be referenced by your WebLogic Server installation. If you've installed WebLogic Server in its default location of /weblogic, then an appropriate place to copy the .jar file would be to the directory /weblogic/lib.

    If you are running the installation from a drive that is not writable, then you'll need to copy the service pack .jar to a directory outside of the installation, but whose path is accessible. The directory where the weblogic.properties file that you're using to start WebLogic Server is an alternative. Also, if the server is running under Java 2, the jar must be in a directory that's been made accessible in the security policy file.

  4. Add the path to weblogic452sp2.jar to the start of the WebLogic classpath before you start the WebLogic Server.
      $ java ... 
          -Dweblogic.class.path=c:\weblogic\lib\weblogic452sp2.jar;
          c:\weblogic\classes;
          c:\weblogic\license;c:\weblogic\lib\weblogicaux.jar;
          c:\weblogic\myserver\serverclasses 
          ... weblogic.Server

    You can do this by editing the command line script that you use to start the WebLogic Server, as described in the Installation Guide, Setting up and Starting WebLogic Server 4.5. Note, that in many cases, it is also beneficial to have the fixes made available with the Service Pack installed on the client. To place the Service Pack on the client, the weblogic510sp8.jar has to be prepended to the CLASSPATH of the client.

  5. If you are running on NT and are using either the Start Menu commands or running as an NT Service, you'll need to use t3config.exe to make changes to your installation configuration. You'll need to set values for weblogic.class.path and JAVA_HOME.

    Save the current values of your configuration to a file before making changes in case you need to revert your changes:

      C:\> t3config > config.txt

    You'll need to set weblogic.class.path to include the .jar file at the start (to be entered on one line):

      C:\> t3config -Dweblogic.class.path=c:\weblogic\lib\weblogic452sp2.jar;
            c:\weblogic\license;c:\weblogic\classes;
            c:\weblogic\myserver\serverclasses;
            c:\weblogic\lib\weblogicaux.jar

    You'll also need to set JAVA_HOME to point to a JDK that you've installed, as the JREs that were shipped with the distribution do not support multi-byte character sets:

      C:\> t3config -JAVA_HOME c:\java117

  6. The following files are included in the service pack and as they are not Java class files, you will have to manually copy them into their appropriate locations to use them. This is completely optional and should only be done if you are interested in resolving the issue they correspond to.

    bin/iisproxy.dll (31006, 31032, 31051 , 31211, 31312, 31343, 31397, 31389)
    bin/iisforward.dll (33909)
    bin/proxy30.dll (31006, 31032, 31051, 31211, 31312, 31343, 31397)
    bin/proxy35.dll (31006, 31032, 31051, 31211, 31312, 31343, 31397)
    bin/proxy36.dll (31006, 31032, 31051, 31211, 31312, 31343, 31397)
    bin/wlntio.dll (38329)
    bin/wlntio_g.dll (38329)
    bin/wlntio_g_jni1_1.dll (38329)
    bin/wlntio_jni1_1.dll (38329)
    examples/servlets/logging/MycustomEFLogger.java
    lib/aix/libproxy.so (31211)
    lib/hpux11/libproxy.sl(31397), 31006, 31343, 31397, 32174)
    lib/hpux11/mod_wl.so (32174)
    lib/hpux11/mod_wl_ssl.so (32174)
    lib/linux/mod_wl.so (32174)
    lib/linux/mod_wl_ssl.so (32174)
    lib/linux/mod_wl_ssl_raven.so (32174)
    lib/solaris/libmuxer.so (35012)
    lib/solaris/libproxy.so (31006, 31032, 31051, 31211, 31312, 31343, 31397)
    lib/solaris/mod_wl.so (31006, 31032, 31051, 31211, 31312, 31317, 31343, 31397, 32174)
    lib/solaris/mod_wl_ssl.so (31006, 31211, 31312, 31317, 31343, 31397, 32174)
    lib/solaris/mod_wl_ssl_raven.so (31006, 31211, 31312, 31317, 31343, 31397, 32174)

    For each of these files you can follow the same procedure for deployment.

    As an example, here are the steps for deploying /weblogic/lib/solaris/libproxy.so. You would deploy this shared library if you are interested in resolving issues 31006, 31032, 31051, 31211, 31312, 31343, or 31397, otherwise you would not need to use this file at all.

    To deploy the libproxy.so, make a copy of the original to a safe location and then copy the one from the service pack over the original. For instance, if you installed WebLogic in /weblogic and want to use the NSAPI plugin on AIX (/aix/libproxy.so), then these commands will backup the original library and copy in the new one:

      $ cp /weblogic/lib/aix/libproxy.so /weblogic/lib/solaris/libproxy.so.452
      $ cd /tmp
      $ jar xvf weblogic452sp1.jar
      $ cp /tmp/lib/solaris/libproxy.so /weblogic/lib/solaris/libproxy.so

  7. Once you've made these changes and started the Server, you can check that the service pack is being used by checking the server version:
      java weblogic.Admin t3://Host:Port VERSION
    should return
      WebLogic Build: 4.5.2 Service Pack 2 ...

Uninstallation

  1. Shut down the WebLogic Server.

  2. Remove weblogic452sp2.jar from the start of the WebLogic classpath used to start the WebLogic Server.

  3. Delete weblogic452sp2.jar and any other files unzipped from the service pack download.

  4. If you used t3config.exe to make changes to your installation configuration as described under Installation, change your configuration back to the previous values: reset the JAVA_HOME if you changed it and remove the weblogic452sp2.jar from the start of the weblogic.class.path.

  5. Restore any non-java class files that you copied over.

  6. You can then start the WebLogic Server without the service pack.

  7. Once you've made these changes and started the Server, you can check that the service pack is no longer being used by checking the server version with:
      java weblogic.Admin t3://Host:Port VERSION

Release notes for service pack 2

Resolved issues

Service Packs are cumulative. All fixes made in earlier Service Packs have been incorporated into the latest Service Pack. For release notes on fixes made in earlier Service Packs follow the links below.

Service Pack 2
Service Pack 1

Service Pack 2

  • CR026207: There was a problem that was causing the server to display harmless 'SocketException: Bad file number' messages. This was caused by one thread trying to close the socket while another thread was reading from it. Synchronization has been added around the read() and close() messages to avoid this.
  • CR028364: Fixed a problem in clustering where WebLogic was failing to create new sessions on Solaris after running servers for a period of time with session replication.
  • CR029085: JDBC drivers now work around new synchronization in DriverManager.
  • CR029308: Fixed bug in Servlets with HttpSession.getLastAccessedTime().
  • CR029968: Timed out transactions were not returning connections to the connection pool.
  • CR030001: Fixed session ID length problem so that it may be modified by a new property, weblogic.httpd.session.sessionIDLengthURL. This can be set anywhere from 10 to Integer.MAX_VALUE. WAP dependent devices were having difficulty accessing some URLs due to increased URL length after rewriting. A particular problem was the session id, which is lengthy and often appended in the rewrite of the URL.
  • CR030023: Fixed a problem in JMS. Setting "weblogic.jms.tableNamePrefix" in the properties file results in all destID's=0. With messages in two separate queues, when the server goes down and is restarted, all messages in both queues are sent to all receivers. This is occurring because all destID's are set equal to 0. Now each message queue has a distinct destID.
  • CR030298: Introduced a new property to signal which encoding to use for the input stream. The property is weblogic.httpd.inputCharset and it allows users to specify charset for the post parameter. It can be set to different values. See additional details
  • CR030334: If, while executing in a servlet, a transaction times out and is rolled back, the thread it was working on maintains the transaction ID. This results in a TransactionRolledbackException when a new transaction is attempted because the container thinks that there is already an active transaction. Hence, the container will not start a new transaction. In order to remedy this problem, a more thorough transaction status check is now done before throwing a TransactionRolledbackException.
  • CR030406: Altered JSP Java File convention. We have reverted to prepending an underscore to generated file names
  • CR030429: Fixed a problem in the server where it was failing in the ListenThread.
  • CR030441: Japanese messages that jsp output were not being read correctly. This has been fixed.
  • CR030500: Fixed a problem in EJB with receiving an assertion error while creating bean managed entity beans.
  • CR030648: Now we can associate a character set to a mimetype. (See additional details)
  • CR030683: Fixed AssertionError in ejbPassivate for statefullSession, which has a reference to statelessSession bean's Home and Object. The EJBHome reference will be set to null after ejbActive() since we do not have to serialize EJBHome references in EJB 1.0.
  • CR030695: Fixed a problem in the server with exception handling by the socket readers.
  • CR030700: There was a problem with getEJBObject was returning null. Now it returns a valid EJBObject. For a stateless session bean, now the server creates a reference in the context to the object, so that getEJBObject() will return a reference to the object.
  • CR030707: Fixed a problem in Servlets where modifying the virtual binding of FileServlet was causing problems.
  • CR030925: Fixed a problem in the server so that it will no longer have any dependencies on AWT.
  • CR030944: Fixed a problem with the setObject method passing an object reference instead of object copy.
  • CR031005: Fixed a problem using servlets when no port is specified. ServletRequest.getServerPort returns 7001 when it should be returning 80.
  • CR031114: Fixed a problem with WAP and UTF-8 support where parameter values were not being read in UTF8.
  • CR031211: Fixed a problem with the Apache plug-in; the 401 Error code was not being propagated back to the client. If the client calls a servlet, on which an ACL is set, through Apache, there was not a prompt for username and password, but rather "No credentials supplied".
  • CR031213: If a header is not formed correctly a 400 error code is now sent. For example, if you set your headers accordingly, but at the end of setting them, you accidentally send a /r/r/n instead of a /r/n, a 400 error code is now sent.
  • CR031317: A per-server-config in mod_weblogic.c has been added to support virtualhosting with the Apache plug-in.
  • CR031360: Fixed a problem in JTS where when one phase commit failed, the transaction rolled back but the lock to the entity was not being released. Now, during one phase commit failure, rollback transaction releases locks on other entities.
  • CR031389: Fixed a problem with the iisproxy.dll not finding the location of the iisproxy.ini in the registry.
  • CR031397: Fixed a problem with NSAPI Plug-in sending one extra host header to WebLogic. Also, with the ServletRequestImpl, if https and the host header came in without a port, another host header was added rather than setting the port.
  • CR031532: Added new features to ClusterServlet and made changes for performance. You can now set the following initial parameters in your web.xml file for the ClusterServlet: pathTrim, and trimExtension.(see additional information)
  • CR031551: Fixed a problem in HTTP where spaces in filenames were not handled properly.
  • CR031575: The properties "weblogic.cluster.multicastDelayMillis" and "weblogic.cluster.mutlicastMaxDelayIncrements" have been replaced by a single property "weblogic.cluster.multicastSendDelay". This property has a range of 0-100 and the default is 15.
  • CR031699: If security-role and security-role-ref tags are specified in the ejb-jar.xml file, the server starts throwing a NullPointerException. This has been fixed.
  • CR031721: Added new property, weblogic.system.idleTimeout. This acts as a timer that can be set to the maximum idle period (in milliseconds) to wait before tearingdown an RJVM. A value of 0 means no timeout.
  • CR031758: Changed the RequestDispatcher and how request parameters are forwarded to other servlets/JSP's.
  • CR031843: Added error checking to Durable Subscribers in JMS.
  • CR031857: To remain current, we have updated our Cloudscape databases to version 3.5.0.
  • CR031943: Fixed expression constructor so longProperty will work.
  • CR032090: Fixed a problem when an applet is trying to read certain properties off of the server. The problem occurred with the Java plugin, as it follows Java 2, where reading system properties is a special permission.
  • CR032133: There is a new parameter, DefaultFileName, for all plug-ins. (see additional details)
  • CR032174: Fixed some problems with the Apache plug-in. We added functionality to handle cases when users had multiple <Location> tags embedded within a <VirtualHost> tag.
  • CR032195: Fixed a problem using IBM Visual Builder to generate some servlets.
  • CR032501: JSPC's package argument points to jhtml files instead of jsp's. This has been fixed.
  • CR032558: Fixed jsp/plugin syntax (added 1.1 syntax) plus added translation time expression capabilities for plugin applet-parameters.
  • CR032576: Until the buffer fills up it was using 8859-1 codeset. After the buffer overflows it is using UTF8. Now it uses the 8859-1 codeset before and after filling up.
  • CR032634: Dealt with some minor JMS DataBase improvements to reduce an extra hit on the DataBase for every 16 messages message id's.
  • CR032806: There was a problem with the log rotation feature and its handling of dates that has been fixed.
  • CR032952: Fixed a potential deadlock while deserializing the transaction context.
  • CR033320: There is now the ability to turn on/off HTTP Tunneling. The property weblogic.httpd.tunnelingenabled should be set to true to enable http tunneling. By default it is set to false.
  • CR033343: Load balancing has been improved with the Apache and NSAPI's plug-in support of multiple clusters. Maintaining a static variable "lastIndex" was breaking load balancing. This has been fixed.
  • CR033616: Fixed a problem with EJB's when using Security.verify on the client, where no realm structure exists.
  • CR033794: A bug allowed all TxContext objects (ie, all transactions on a particular server) to be serviced by a single static coordinator. All transactions bottleneck around one transaction coordinator. In a situation where a client needs to start multiple transactions on multiple servers (not clustered or different clusters), this wasn't safely possible because the static coordinator could be overwritten by the lookup to the second server. This fix now allows one coordinator per UserTransaction per server.
  • CR033846: When using jsp:param with jsp:forward, the values are not passed to the forwarded page. This has been fixed.
  • CR033859: Fixed a problem with entity EJBs when not implementing hashcode() and equals() method for the Primary key class. If the primary key class contains primitive data types, under high loads the Server was getting NullPointerExceptions.
  • CR033909:IIS users may now proxy by path. See http://www.weblogic.com/docs51/admindocs/isapi.html#path
  • CR033914: If you change the WebLogicSession cookie to some invalid value, such as 1, a NullPointerException was being thrown. Now the server checks the validity of the session cookie before using it, doing a minimal check for the primary ID.
  • CR034021: When JTS defers the call to the T3 JDBC driver for a distributed transaction, it expects a non-null properties object.
  • CR034041: You can now rotate your jdbc log. We only allow you to do this based on date. You can specify how often we should rotate the log file and when we should begin that rotation. (See additional information)
  • CR034251: A ClassCastException was thrown when the EJB handle was retrived from HttpSession, this has been fixed.
  • CR034733: Fixed a potential deadlock involving problems with the native io.
  • CR035012: Now the build date/time is shown for the native socket muxer libraries if weblogic.system.nativeIO.enable=true. Note: To have the native socket muxer load for NT, you must copy the bin/wlntio.dll included in this Service Pack to your weblogic/bin directory.
  • CR035271: Fixed a problem running SSL client with Netscape.
  • CR035328: Fixed a problem when there were more servlet requests than the number of execute threads. All the requests were waiting for a message in the response queue which never arrived because there were no threads left to process the message from the JMS client.
  • CR035440: Fixed a problemn in JMS. The state of QueueSessions was corrupted when more than one QueueReceiver was used. The result was lost acknowledgements. This change fixes some race conditions which lead to message acknowledgements being lost.
  • CR035953: Fixed a deadlock problem in the server. The deadlock was due to synchronization of two threads, one of which was waiting for the lock that the other was not releasing.
  • CR036196: Fixed a problem with the JMS connection pool when using setLong or setObject methods on a callable statement and passing in a Long object.
  • CR036212: Fixed a problem with the ms type-4 driver not working with Sun's RowSet class.
  • CR036269: Fixed a problem in JDBC with BigDecimals.
  • CR036295: If a stateless session EJB calling a second stateless session EJB within the same transaction throws an exception, then in certain instances the second EJB is not returned to the free pool.
  • CR036455: Fixed a problem running JSP's by ensuring that the destination of a JVMID of the ConnectionManager is valid.
  • CR036505: Fixed the deadlock with dispatch-in-thread pattern by using a new ExecuteThreadQueue.
  • CR036507: Improvements were made to prevent multicast buffer overflow.
  • CR036509: The config timer had changed to incorrectly start 2 resend triggers. Fixed by ensuring only one is started.
  • CR036510: Fixed a problem in clusters. Now we make sure that the non-blocking execute thread queue will be initialized on clients.
  • CR036511: Fixed a problem in clusters. Now we use a non-blocking execute queue for SlidingWindow acks.
  • CR036514: Revised JMS indices for performance improvements to the JMS store.
  • CR037291: When the java weblogic.jspc command was used with -encoding UTF8, it generates a .java file in which the code is different from the generated java file in the same JSP, when this JSP is run in the WebLogic Server. This has been fixed.
  • CR037692: Fixed a problem in Servlets. Servlets were being treates as a SingleThreadModel.
  • CR038062: Fixed a recent problem with the native performance pack for HPUX-11.
  • CR038329: To use the NT performance pack on different versions of JDK's, copy the appropriate dll to the /INSTALL/bin directory. (See additional details)
  • CR038353: Fixed JDBC Session Persistence for reading broken serialized data.
  • CR039411: Made improvements to the NSAPI plug-in to prevent segmentation faults and crashes.
  • CR039503: Fixed a problem with CGI requests. Sent requests being handled one by one were not being processed in the desired time intervals.
  • CR040092: The JSP compiler generated repetitive java statements on compilation. This has been fixed.
  • CR040763: Fixed a recent EJB problem where a stateless session bean (TX_REQUIRED) calls an entity bean (TX_REQUIRES_NEW). When the method commits, WebLogic Server was throwing an IllegalStateException.
  • CR040134: Fixed a problem with servlets. Using getHeader was returning the last element when there were multiple headers with the same name. Now, following the 2.2 specs, the server brings back the first one.
  • CR040776: A known problem exists with JSP. Query strings encoded in non-english characters are not working with jsp include and forward. There are two possible work-arounds to this problem (See additional details)
  • CR041037: MS SQLServer has a special column type 'uniqueidentifier' with some valuable behaviors and properties. MS stores this column data in a varbinary(10) format. Previous drivers have treated this type as any other generic varbinary(10) field. However, one of the special behaviors MS provides for this column type, at least in it's front-end tools like isql, is a special string representation of this field. This change to the driver makes our getString() methods return this data in the MS-specific string representation. For example, a varbinary(10) value whose generic representation would be, 0x814B42718B2AD411B8E500104B9643BB, if it is a uniqueidentifier value, its String representation will be changed to, 71424B81-2A8B-11D4-B8E5-00104B9643BB, as isql does.

Service Pack 1

  • CR024253(Issue 3796): Upon customer request, WebLogic Sever now supports HTTP access log rotation.
  • CR028155(Issue 7734): In the file TimeServicesImpl.java, the currentTime Millis() method was performing incorrect calculations to compute the Offset. The calculations have been corrected.
  • CR028364(Issue 7955): Fixed a problem in Clustering where the server was failing to create new sessions on Solaris after running servers for a period of time with session replication.
  • CR029085(Issue 8734): JDBC drivers need to work around the new synchronization in DriverManager.println. JDBC 2.0 has made println a synchronized method, which may lead to deadlocks between getConnection and other methods that call println. This problem was solved by reorganizing when and where the println method is called.
  • CR029308(Issue 8961): Fixed a bug in Servlets with HttpSession.getLastAccessedTime(). The method was returning the same time for different sessions in different browsers. The abstraction of this method to a super class has allowed for implementation to occur differently in different types of sessions.
  • CR029968(Issue 9631): Fixed a problem in Clustering where JDBC persisted sessions were not getting cleaned if an exception was thrown while finding keys.
  • CR030327(Issue 9994): Fixed a problem in JMS where Message.setJMSDeliveryMode (DeliveryMode.PERSISTENT) was not persisting a message.
  • CR030334(Issue 10001): Fixed a problem in EJB where an EJB client to stateful session bean was giving different results if a java application client was used versus a servlet client. If, while executing in a servlet, a transaction times out and is rolled back, the thread it was working on maintains the transaction ID. This results in a TransactionRolledbackException when a new transaction is attempted because the container thinks that there is already an active transaction. Hence, the container will not start a new transaction. In order to remedy this problem, a more thorough transaction status check was done before throwing a TransactionRolledbackException.
  • CR030406(Issue 10073): The JSP Java File naming convention was altered. The naming standard has been reverted to prepending an underscore to generated file names.
  • CR030429(Issue 10096): Fixed a problem where certain failure scenarios could cause the ListenThread to prematurely shut down. This was done by improving the back off algorithm used by the ListenThread to retry after failures in the accept() method.
  • CR030441(Issue 10108): Fixed a problem with the readability of Japanese messages output by JSPs. ByteArrayOutputStream does not properly handle double-byte chars. CharArrayWriter is now used instead.
  • CR030500(Issue 10169): Fixed a problem in EJB with receiving an assertion error when creating bean managed entity beans. This bug occurs when an entity bean has a create method which it has inherited from a super interface.
  • CR030527(Issue 10198): Fixed a problem in JMS where the server was logging a weblogic.rmi.NoSuchObjectException. This was being thrown due to the way the server looks through the TimeTable.
  • CR030695(Issue 10368): Fixed a problem in the Server with exception handling by the socket readers. The problem was in that not all of processSockets were protected by a try/catch block, essentially a mistake in exception handling. Exceptions or errors could be caught eventually, but would not necessarily be indicative of what is actually causing the problem.
  • CR030707(Issue 10380): Fixed a problem in Servlets where modifiying the virtual binding of FileServlet was causing problems.
  • CR030925(Issue 10598): Fixed a problem in the Server where it will no longer have any dependencies on AWT libraries.
  • CR030944(Issue 10617): The setObject method was passing an object reference instead of object copy.
  • CR031006(Issue 10679): Fixed a problem with a cookie never being set if setCookie is issued, and a res.sendRedirect is issued after. With the apache plugin, the redirect is sent before the cookie is set in the header.
  • CR031032(Issue 10705): Fixed a problem where plug-ins have failover difficulty. NSAPI and ISAPI, in clustered environments, should revert back to the static server list if the dynamic list is dead.
  • CR031051(Issue 10724): Fixed bug in plug-ins and now we increased the max limit on ConnectRetrySecs from 10 to ConnectTimeoutSecs. Please note even if ConnectRetrySecs == ConnectTimeoutSecs the server tries to connect at least twice.
  • CR031114(Issue 10787): Fixed a problem with WAP and UTF8 support where parameter values were not being read in UTF8.
  • CR031211(Issue 10885): Fixed a problem with the Apache plugin. The 401 Error code was not being propegated back to the client. If the client calls a servlet, on which an ACL is set, through apache, there will not be a prompt for username and password, but rather "No credentials supplied".
  • CR031213(Issue 10887): Fixed a problem in Servlets where if the header is not formed correctly, a 400 error code should be sent. For example, if you set your headers accordingly, but at the end of setting them, you accidentally send a /r/r/n instead of a /r/n, a 400 error code is now sent.
  • CR031274(Issue 10948): Per customer request, WLS now has the ability to proxy HttpClusterServlet in order to proxy requests to multiple servers.
  • CR031287(Issue 10961): Modified server's timing as heart beats are not being processed in time. This is because the server was not processing heart beats in the same thread.
  • CR031304(Issue 10978): In adding the functionality of HTTP log access rotation, a flag needed to be set marking the log rotated at the correct time.
  • CR031312(Issue 10986): Certified the Apache plugin with Raven 1.4.3/Apache 1.3.12. The previous version of Covalent Raven SSL used Apache 1.3.9, but is no longer available(additional details).
  • CR031317(Issue 10991): Fixed a problem in the Apache Plugin by adding virtual host support. Apache has the ability to perform different functions depending on the host it is using. However, our plugin does not utilize the functionality.
  • CR031343(Issue 11017): Fixed problem with plugins returning double Content-Type headers for JSP pages. This problem appears differently on different browsers. Something in the plugin is inserting Content-type=text/jsp into the header, when it should be text/html. This bug is in the proxy.
  • CR031360(Issue 11034): Fixed a problem in JTS where when one phase commit failed, the transaction rolled back but the lock to the entity was not being released. Now, during one phase commit failure, rollback transaction releases locks on other entities.
  • CR031361(Issue 11035): Fixed a problem where JSPs were getting compiler errors. These errors were logged because the compiler was seeing java reserved words in file names. The file naming standard was reverted to an unproblematic naming system.
  • CR031397: Fixed a problem with NSAPI Plugin sending one extra host header to WebLogic. In addition, with the ServletRequestImpl, if https and the host header came in without a port, another host header was added rather than setting the port.
  • CR031492: Fixed a problem in Jolt where session pool's did not provide a mechanism to set RECVTIMEOUT. In slow systems, this causes a problem because RECVTIMEOUT is often exceeded and administrators are unable to tailor the setting(additional details).
  • CR031551: Fixed a problem in HTTP where spaces and %20 in filenames were not handled properly. Now there can be spaces or %20's in a URL filename and the correct file is displayed.
  • CR031575: Fixed a problem in clustering where large amounts of multicast traffic are now more efficiently handled. A new multicast property ("weblogic.cluster.multicastSendDelay"), which handles the buffer overflow properties, has been added. This new property replaces the multicast properties "weblogic.cluster.multicastDelayMillis" and "weblogic.cluster.mutlicastMaxDelayIncrements". "weblogic.cluster.multicastSendDelay" has a range of 0-100 with a default of 15.
  • CR031758: Fixed a regression from 4.5.1 that had to do with the RequestDispatcher. Request parameters were being incorrectly forwarded to other servlets/JSPs.
  • CR031775: Fixed a problem in Servlets where we made PathTrim and trimExt optional. Extensions can now be stripped when setting the trimExt property in the INIT argument to the cluster servlet--in the WebLogic properties file.
  • CR031843: Fixed a problem in JMS where an NullPointerException was being thrown when durableSubscribers were being used. This was done by adding error checking to Durable Subscribers in JMS.
  • CR031868: Fixed a problem in the ClassLoader where we were encountering a ConcurrencyModificationException. The code was synchronized in order to resolve this issue.
  • CR031889: Fixed a problem in JSPs, where setProperty values were not replicated across a in-memory-state-replicated session. The problem was fixed by ensuring that the session.putValue() method was called whenever useBean is updated and the bean's scope is session.
  • CR031943: Fixed expression constructor so the longProperty will work. One particular piece of data was being cast as an int rather than as a long.
  • CR032037: Fixed a problem with "show code" vulnerability in JSPs to enhance security. We recommend to register the FileServlet under a virtual name "*.html" (instead of "file"). The fix ensures that a hacker is not able to prepend the path leading to JSP by *.html and see the code of the JSP. In other words, URLs like http://www.abc.com:7001/*.html/path/to/foo.jsp do not result in displaying the code of the JSP in a browser.
  • CR032090: Fixed a problem where "java.security.AccessControlException: access denied" was being logged. With Java 2.0, reading system properties is allowed only by special permission. Applets needed to have this permission to gain access to the system property ignoreIncomingProtocol.
  • CR032105: Fixed a problem in EJB with the way a stateful session bean is handled in a cluster. Flags were added to be set according to whether or not the bean was a stateful session bean.
  • CR032174: Location tags embedded in VirtualHost tags have been fixed to correctly work with the apache plug-in. This was done by adding locationKeys, pathTrimTable, and pathPrependTable in ConfigInfo structure to handle more than one location tag used in virtual hosting.
  • CR032204: All calls to the method DriverManager.getConnection() were removed. The method that is currently used is Driver.connect(). This was done to enhance performance.
  • CR032309: Fixed a rare problem with the dispatch in-thread pattern resulting in a deadlock (additional details).
  • CR032634: Enhanced performance in the JDBC. The messageIdBlockSize was set too low. The number to which this property is set determines how often there is an extra database hit(per productive data base hits).
  • CR032576: Fixed a problem with inconsistent character sets. While characters were being buffered, they were represented by the 8859-1 codeset. However, once the buffer overflowed, the remainder of the characters were represented by UTF8. This was resolved by representing all characters with the 8859-1 codeset.
  • CR032806: In HTTP logging, if a log rotation's begin date has past, DAY_OF_WEEK should only be used in setting a new date if the rotation time period is greater than a week(additional details).
  • CR032952: Fixed another rare case where dispatch in-thread pattern resulted in a deadlock. Avoid sending out the transaction context as part of the remote call to create, update or remove secondaries used by the in-memory replication machinery. Part of the reason is that not sending the context is more efficient especially under heavy loads and also due to rare cases where there is a potential deadlock while deserializing the transaction context(see also CR032309).
  • CR033252: Fixed a problem in exception handling. Now a message is logged when a remote exception is caught while trying to create a secondary.
  • CR033255: Fixed a problem with the over-synchronization of the DriverManager.getConnection() method. This problem was resolved by synchronizing this method with the less synchronized method, Driver.connect().
  • CR033256: Per customer request, a property, setEmptyStrings, was added in JSPs that gives users the option of allowing a bean to take String attributes even when the request attribute is the empty string.
  • CR033603: This fix only applies to stateful session beans running in a cluster accessed by java clients either in standalone applications or applets. Upon handle reactivation of the stateful session bean, there was no guarantee that the client would get back the reference to the bean on the server to which the bean was pinned. The fix is to make the client aware of the stateful session bean server and go back to the same server that the stateful session bean is actually on. Accessing this fix requires the redeployment of /weblogic/ejb/internal/HandleImpl.class on the client.


Additional details on CR031312 (ISSUE 10986):

1. mod_wl.so for standard Apache (non EAPI) installations
2. mod_wl_ssl.so for Apache + SSL/EAPI installations(Stronghold, modssl etc)
3. mod_wl_ssl_raven.so for Apache + Raven installations

mod_wl_ssl_raven.so was required because Raven applies frontpage patches which makes it incompatible with mod_wl_ssl.so

mod_wl_eapi.so is no longer required. That has been removed from the GNUmakefile.

These binaries have been certified against C2Net's Stronghold/3.0 (Apache/1.3.12) and Covalent's Raven/1.4.3 (Apache/1.3.12).


Additional detail on CR30298: weblogic.httpd.inputCharset.<Dir name>=<charset name>

A new property can be used to specify charset for the getParameter() and getParameterValues().

Using GET/POST requests from a Client or Browser, the servlet container determines charset of the string using the request URI of the HTTP request.

To specify encoding for the string of GET or POST request, the following properties need to be set in the weblogic.properties file:

weblogic.httpd.inputCharset.<Dir name>=<charset name>

<Dir name> is for the resource path used in the request URI. <charset name> is IANA character set name.

For Example: If you want to use EUC-JP charset as a default, Shift_JIS for under /i and iso-8859-1 for under /en, such as:

public_html ---- products
(EUC-JP)         (EUC-JP)
            ---- about
                 (EUC-JP)
            ---- download
                 (EUC-JP)
            ---- i
                 (Shift_JIS)
            ---- en
                 (iso-8859-1)
In this case, then the following properties need to be set:

weblogic.httpd.inputCharset./*=EUC-JP weblogic.httpd.inputCharset./i/*=Shift_JIS weblogic.httpd.inputCharset./en/*=iso-8859-1

Additional Notes:

 1) Mapping IANA charset and JAVA encoding

 You can specify mapping between IANA charset and JAVA encoding as follows:

 weblogic.httpd.charsets.<IANA charset>=<Java encoding>

The following makes mapping from a IANA EUC-JP charset to Java EUCJIS encoding.

 weblogic.httpd.charsets.EUC-JP=EUCJIS

 2) Default Mapping

 WebLogic Server has a default mapping table between IANA charset and Java encoding. Normally, you don't have to specify 
 particular mapping specification.

 3) Default charset

 If you don't specify inputCharset, then WebLogicServer handles charset the same as the Server's VM default encoding.

For example, getParameter works on MS932 on Japanese NT without specification of inputCharset.


Additional details on ISSUE 30648:

If you set mimeType as the following:

weblogic.httpd.mimeType.text/x-hdml;charset=Shift_JIS=hdml

It will be stored as:

extension="hdml"
mimeType="text/x-hdml;charset=Shift_JIS"

So that when you do a context.getMimeType("foo.hdml") it will return: "text/x-hdml;charset=Shift_JIS"


Additional details on CR031492:

The following properties need to be set in the weblogic.properties file:

weblogic.system.startupClass.demojoltpoolStart=\
bea.jolt.pool.servlet.weblogic.PoolManagerStartUp
weblogic.system.startupArgs.demojoltpoolStart=\
poolname=demojoltpool,\
appaddrlist=//lcsol1:6000,\
failoverlist=//lcsol1:6000,\
minpoolsize=1,\
maxpoolsize=3,\
recvtimeout=200 (number of seconds)


Additional details on CR031532:

The following parameters can be set in the web.xml file for the Cluster Servlet:

pathTrim=string
String to be trimmed from the beginning of the original URL, before the request is forwarded to WebLogic. Default is "". For example, pathTrim="/weblogic" will result in a stripping off "/weblogic" before the URL is handed to the WebLogic Server.

trimExt=string

Set this to trim off any trim any extensions before the request is forwarded to WebLogic. For example, to trim of any extensions, such as foo set trimExt=foo


Additional details on CR032133:


There is a new parameter for all plug-ins: DefaultFileName. This can be set as DefaultFileName=filename If the URI is "/" then the default filename will be appended to the URI. This prevents redirects from the WebLogic Server. The DefaultFileName should be set to the default welcome page of the WebLogic Server. If the DefaultFileName is set to welcome.html, a http request like "http://somehost/weblogic" will become "http://somehost/weblogic/welcome.html". For this parameter to function, the same file must be specified in the weblogic properties file. For example, in this case, the weblogic properties file must be set to weblogic.httpd.initArgs.file=defaultfilename=welcome.html.


Additional details on CR032309:


The WebLogic Server uses the "dispatch in-thread" optimization to handle in-memory replication traffic. Normally the request that is read off the socket is handled by a different thread once the request has been placed on the ExecuteQueue by the socket reader thread. In handling the "in-memory" replication traffic, the updates to the objects that are replicated need to be performed in a timely fashion. Hence the "dispatch in-thread" pattern is used to avoid a context switch and thread contention that is incurred by this request being placed on the ExecuteQueue. However, on rare occasions this pattern results in a deadlock when both sides of the connection try and update objects on behalf of each other. The deadlock has been fixed with this change by introducing an alternate ExecuteQueue--the NonBlockingExecuteQueue to service message traffic that is guaranteed not to block. This queue is used *only* by the Weblogic Server internally i.e. application requests are never placed on this queue--they are handled by placing them on the regular ExecuteQueue.


Additional details on CR032806:


Setting up access log rotation
Note: Access log rotation requires WebLogic Server 4.5.2, Service Pack 1 or later.

Access log rotation allows you to rotate your HTTP access log when it reaches a certain size or after a specified amount of time has passed. When the access log rotates, a new log file with a new file name is started. The access log's file name includes a numeric portion that is incremented upon each rotation.

To set up access log rotation, set the following properties (in addition to those properties you set to enable access logs) in your weblogic.properties file:


Additional detail on CR31492: weblogic.httpd.inputCharset.<Dir name>=<charset name>

weblogic.httpd.logRotationType
Set to date to rotate your access log by date. If you choose this option, you must also set two additional properties: weblogic.httpd.logRotationPeriodMins and weblogic.httpd.logRotationBeginTime.

Set to size to rotate your access log when it exceeds a certain size. If you choose this option, you must also set the weblogic.httpd.maxLogFileSizeKBytes property. The default value is size.

weblogic.httpd.logRotationPeriodMins
If you are rotating your access log by date, set this to the number of minutes after which the access log will rotate. (1440 minutes = 24 hours, 100080 minutes = 1 week). The default value is 1440.

weblogic.httpd.logRotationBeginTime
Sets the date when the first access log rotation will occur. If you do not set this property, the access log rotates after the amount of time specified with the weblogic.httpd.logRotationPeriodMins property. Enter the date using the java.text.SimpleDateFormat, MM-dd-yyyy-k:mm:ss. See the javadocs for the java.text.SimpleDateFormat class for more details. For example:    11-24-2000-12:30:00

If, when you start WebLogic Server, this date has already passed, the first access log rotation will occur on the day you start WebLogic Server, at the hour, minute, and second specified by weblogic.httpd.logRotationBeginTime.

weblogic.httpd.maxLogFileSizeKBytes
Set to the maximum size, in kilobytes, for your access log file. When the access log reaches this size, it is rotated. If set to 0 (the default value) access log files do not rotate based on size. This property is ignored when weblogic.httpd.logRotationType is set to date


Additional detail on CR34041

You can now rotate your jdbc log. We only allow you to do this based on date. You can specify how often we should rotate the log file and when we should begin that rotation. For example, rotate every 6 hours and start the first rotation at 4pm today.

If rotation is enabled we will automatically append a date/time stamp to the end of the log file, you can control the format of this timestamp with the property weblogic.jdbc.logFileNameFormat. The reason we have to do this is that we do not control the output stream of the jdbc.log, this is handling in java.sql.DriverManager, so we cannot lock the file, move it to a backup and then restart the log file with the same name. Thus the current jdbc.log file is the file that has the most recent date timestamp at the end of the file name.

Added properties:

weblogic.jdbc.rotateLog

Whether or not to rotate jdbc log file. This is false by default.

weblogic.jdbc.logRotationPeriodMins

Defines the period in minutes when the jdbc log will be rotated. 24 hours is 1440 minutes. One week is 10080 minutes

weblogic.jdbc.logRotationBeginTime

Defines the date when the first rotation of jdbc log will begin. The format follows java.text.SimpleDateFormat, MM-dd-yyyy-k:mm:ss see the javadocs for more details. For example: 11-24-2000-12:30:00 Note: If not set, the next rotation is the next weblogic.jdbc.logRotationPeriodMins. If the date has already past, then the DAY_OF_WEEK, HOUR_OF_DAY, MINUTE and SECOND are used with the current date to recalculate.

weblogic.jdbc.logFileNameFormat

Defines the format of the date string that is appended to the jdbc log when rotation is turned on. The format follows java.text.SimpleDateFormat, and defaults to: dd_MMM_yyyy__HH_mm_ss see the javadocs for more details.


Additional detail on CR38329

To use the NT performance pack, copy the appropriate dll to the /INSTALL/bin directory. For example, if you are using JDK 1.3.copy wlntio_jni1_1.dll. Any JDK version higher that 1.2.x should use the bin/wlntio_jni1_1.dll. Each file also has a corresponding _g version (for example: wlntio_g_jni1_1.dll). These are debug versions of the muxer, only use them if they are needed for debugging purposes.
JDK 1.1.x
bin/wlntio.dll
bin/wlntio_g.dll

JDK 1.2.x or higher
bin/wlntio_jni1_1.dll
bin/wlntio_g_jni1_1.dll

Known issues

Additional details on CR40776

There is a known problem with JSP's and WebLogic Server 4.5.2. When using <jsp:include> or <jsp:forward> the server will not process any non-english characters within a query string. If you have a single non-English character, your query string will be unreadable. The following will not work:

<%@ page contentType="text/html; charset=Big5"%>
<html>
<meta http-equiv="content-type" content="text/html; charset=Big5">
<body>

<%

String test;

test = "./jay1.jsp?test=±ä©v³Ç";

%>

<jsp:include page="<%= test %>" />

</body>
</html>

There are two possible work-arounds to this problem. You can assign a variable to the query string that contains non-english encoding. For example:

<%@ page contentType="text/html; charset=Big5"%>
<html>
<meta http-equiv="content-type" content="text/html; charset=Big5">
<body>

<%

String test;
String temp = "\261\344\251v\263\307";
test = "./jay1.jsp?test="+temp;

%>

<%= test %>

<jsp:include page="<%= test %>" />

</body>
</html>

You may also use test.getBytes before the <jsp:include> tag. The string will then be converted to bytes, therefore bypassing the problem. For example:

<%@ page contentType="text/html; charset=Big5"%>
<html>
<meta http-equiv="content-type" content="text/html; charset=Big5">
<body>

<%

String test;

test = "./jay1.jsp?test=¦S¬v¦¦";
test = new String(test.getBytes("Big5"));

%>

<jsp:include page="<%= test %>" />

</body>
</html>


Miscellaneous

General files included with every service pack:
  • utils/version.class

This file will update the message returned when you use the version utility to show that you're using "Service Pack 2".

Copyright © 2001 by BEA Systems, Inc. All rights reserved.

Last updated 2/12/2001