# WebLogic Server 5.1 Service Pack 9 |  |
4. Contents Installation and removal instructions Installation Removal Release notes for Service Pack 9 Resolved issues Additional details on new plug-in parameters New WebLogic properties Additional details on WebLogic_RDBMS.jar Additional details on specific issues Known issues (Includes important issue for JDBC and File session persistence users) Miscellaneous issues and new items BEA WebLogic Enterprise Connectivity README ## Contents This service pack contains files that resolve issues pertaining to the released product. A detailed list of these issues is provided in this document. Service Packs function for both domestic and exportable versions of WebLogic Server. The service pack download is shipped as a .zip file (weblogic510sp9.zip) and contains: 510sp9/SERVICEPACK_README.html (this file) 510sp9/SERVICEPACK_README.txt 510sp9/README2.html 510sp9/README2.txt 510sp9/README3.html 510sp9/README3.txt 510sp9/ldaprealm.properties 510sp9/relnotes.html (new ldap documentation) 510sp9/ddl/jms_cloudscape.ddl 510sp9/ddl/jms_db2.ddl 510sp9/ddl/jms_mssql.ddl 510sp9/ddl/jms_oracle.ddl 510sp9/ddl/jms_sybase.ddl 510sp9/wlec/README_wlec.html 510sp9/wlec/README_wlec.txt 510sp9/wlec/weblogic.properties 510sp9/wlec/wlec_classes.jar 510sp9/wlec/wlec_examples.jar 510sp9/wlec/wleorb.jar 510sp9/wlec/wlepool.jar bin/beasvc.exe bin/installNtService.cmd bin/uninstallNtService.cmd bin/iisproxy.dll bin/iisforward.dll bin/proxy30.dll bin/proxy35.dll bin/proxy36.dll bin/wlconfig.exe bin/wlntio.dll bin/wlntrealm.dll bin/wlserver.exe bin/wlstartup.dll bin/oci734_7/weblogicoci36.dll bin/oci805_7/weblogicoci36.dll bin/oci805_8/weblogicoci36.dll bin/oci815_8/weblogicoci36.dll bin/oci816_8/weblogicoci36.dll bin/win32_12/install.exe bin/win32_12/remove.exe bin/win32_12/wlconfig.exe bin/win32_12/wlserver.exe bin/win32_12/WLService.exe bin/win32_12/wlstartup.dll examples/applets/phonebook1.jsp examples/applets/phonebook2.jsp examples/jolt/servlet/jadmin/exmples.jolt.servlet.jadmin.BounceJoltServlet.html examples/jolt/servlet/jadmin/BounceJoltServlet.java examples/jolt/servlet/jadmin/index.html examples/jolt/servlet/jadmin/joltadmin.html examples/jsp/tagext/sql/WEB-INF/classes/weblogic/taglib/sql/ConnectionTag.class examples/jsp/tagext/sql/WEB-INF/classes/weblogic/taglib/sql/QueryExtraInfoTag.class examples/jsp/tagext/sql/WEB-INF/classes/weblogic/taglib/sql/QueryTag.class examples/jsp/tagext/sql/WEB-INF/classes/weblogic/taglib/sql/ResultsTag.class examples/security/sslclient/jsseH.bat examples/security/sslclient/jsseWLS.bat examples/security/sslclient/SSLClient.java examples/security/sslclient/SSLClientServlet.java examples/security/sslclient/wlsH.bat examples/security/sslclient/wlsWLS.bat examples/servlets/AuthFilterImpl.java examples/webapp/index.html examples/xml/http/StockClient.java lib/weblogic-tags-510.jar lib/weblogic510sp9.jar lib/weblogic510sp9boot.jar lib/aix/libproxy.so lib/aix/libmuxer.so lib/aix/libproxy36.so lib/aix/libproxy40.so lib/aix/libweblogicunix1.so lib/aix/libwlenv.so lib/aix/mod_wl.so lib/aix/mod_wl.ssl.so lib/aix/oci805_7/libweblogicoci36.so lib/aix/zac_aix lib/hpux11/libmuxer.sl lib/hpux11/libproxy.sl lib/hpux11/mod_wl_ssl.so lib/hpux11/mod_wl.so lib/hpux11/mod_wl_ssl_raven.so lib/hpux11/zac_hpux lib/hpux11/oci816_8/libweblogicoci36.sl lib/linux/libmuxer.so lib/linux/libwlenv.so lib/linux/mod_wl.so lib/linux/mod_wl_ssl.so lib/linux/mod_wl_ssl_raven.so lib/linux/wlauth lib/linux/zac_linux lib/linux/zac_linux_g lib/persistence/WebLogic_RDBMS.jar lib/solaris/libmuxer.so lib/solaris/libproxy.so lib/solaris/libstackdump.so lib/solaris/mod_wl.so lib/solaris/mod_wl_ssl.so lib/solaris/mod_wl.ssl_raven.so lib/solaris/wlauth lib/solaris/zac_solaris lib/solaris/oci734_7/libweblogicoci36.so lib/solaris/oci805_7/libweblogicoci36.so lib/solaris/oci805_8/libweblogicoci36.so lib/solaris/oci806_8/libweblogicoci36.so lib/solaris/oci815_8/libweblogicoci36.so lib/solaris/oci816_8/libweblogicoci36.so lib/tru64unix/libmuxer.so lib/tru64unix/libproxy.so lib/tru64unix/libweblogicunix1.so lib/tru64unix/libw1env.so lib/tru64unix/mod_wl.so lib/tru64unix/zac_tru64unix lib/tru64unix/zac_tru64unix_g lib/tru64unix/oci805_7/libweblogicoci36.so lib/unixware/oci804_7/libweblogicoci36.so myserver/ca.pem myserver/democert.pem myserver/demokey.pem zac/AIX_ppc.res zac/AIX_ppc_g.res zac/DECUnix_alpha.res zac/DECUnix_alpha_g.res zac/HPUX_parisc.res zac/HPUX_parisc_g.res zac/Linux_x86.res zac/Linux_x86_g.res zac/Solaris_sparc.res zac/Solaris_sparc_g.res zac/TRU64Unix_alpha.res zac/TRU64Unix_alpha_g.res ## Installation and removal instructions ### Installation Read this document and the release notes. Unzip the contents of the service pack into a temporary directory, such as /temp. Copy weblogic510sp9.jar and weblogic510sp9boot.jar from /temp to a location where it can be referenced by your WebLogic Server installation. If you have 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 will need to copy the service pack jar to a directory outside of the installation, but whose path is accessible. The directory of the weblogic.properties file that you are 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 has been made accessible in the security policy file. If you are using VisualAge, import both jars to your workspace, first weblogic510sp9.jar and then weblogic510sp9boot.jar. Add the path of weblogic510sp9boot.jar to the beginning of the Java system classpath. Add the path of weblogic510sp9.jar to the beginning of the WebLogic classpath before you start the WebLogic Server:
         $ java ...
             -classpath c:\weblogic\lib\weblogic510sp9boot.jar;
             c:\java\lib\classes.zip;
             c:\weblogic\classes\boot;
             c:\weblogic\eval\cloudscape\lib\cloudscape.jar
             -Dweblogic.class.path=c:\weblogic\lib\weblogic510sp9.jar;
             c:\weblogic\classes;
             c:\weblogic\license;c:\weblogic\lib\weblogicaux.jar;
             c:\weblogic\myserver\serverclasses
             ... weblogic.Server
5. 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 5.1. Also, add the Service Pack Jars in front of the classpath of the startConsole script. This will allow the console to attach itself to your updated server. If you are running on NT and are using either the Start Menu commands or running as an NT Service, you need to use wlconfig.exe to set values for classpath, 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:\> wlconfig > config.txt
   Include the weblogic510sp9boot.jar file at the start of classpath (to be entered on one line):
         C:\> wlconfig -classpath c:\weblogic\lib\weblogic510sp9boot.jar;
               c:\java\lib\classes.zip;
               c:\weblogic\classes\boot;
               c:\weblogic\eval\cloudscape\lib\cloudscape.jar
   Include the weblogic510sp9.jar file at the start of weblogic.class.path (to be entered on one line):
         C:\> wlconfig -Dweblogic.class.path=c:\weblogic\lib\weblogic510sp9.jar;
               c:\weblogic\license;c:\weblogic\classes;
               c:\weblogic\myserver\serverclasses;
               c:\weblogic\lib\weblogicaux.jar
   Next, set JAVA_HOME to point to a JDK that you have installed, as the JREs that were shipped with the distribution do not support multi-byte character sets:
         C:\> wlconfig -JAVA_HOME c:\java117
6. The file lib/persistence/WebLogic_RDBMS.jar will need to be copied to your /weblogic/lib/persistence directory if you are developing or deploying EJBs, and are interested in resolving issues related to WebLogic_RDBMS.jar. To deploy the lib/persistence/WebLogic_RDBMS.jar, make a copy of the original to a safe location and then copy lib/persistence/WebLogic_RDBMS.jar from the service pack to replace the original file that you backed up in another location. For instance, if you installed WebLogic in /weblogic, here are the sample commands:
         $ cp /weblogic/lib/persistence/WebLogic_RDBMS.jar
        /weblogic/lib/persistence/WebLogic_RDBMS.jar.510
         $ cd /tmp
         $ jar xvf weblogic510sp9.zip
         $ cp /tmp/lib/persistence/WebLogic_RDBMS.jar
        /weblogic/lib/persistence/WebLogic_RDBMS.jar
7. If you are using VisualAge, import lib/persistence/WebLogic_RDBMS.jar into your workspace. The following files are also included in the service pack and are not Java class files. Therefore you need to manually copy them into their appropriate locations to use them. This is optional and files should only be copied if you are interested in resolving an issue. Native NT Executables: bin/wlconfig.exe Issue 31853 bin/wlserver.exe Issue 31853 Files for beasvc.exe (See additional information) bin/beasvc.exe bin/installNtService.cmd bin/uninstallNtService.cmd Plug-ins: Issues 10368,10381, 10610,10680,10885,9536, 10228,10399,10428, 10986,11017,31317,31397 ,31532,28929,31034,31315, 31317,31719,31878, 32053,32132,32133, 32136,32060, 38832, 39177, 37035, 37172 , 37837 , 37873 , 37951 , 37992 , 38018 , 38118 , 38377 , 38730 , 38832 , 38995 , 39177, 39341 , 39411 , 39673, 39839, 39768, 39882,40928, 40977,41062,41206, 41243, 42019, 42277, 42326,42808,43200 bin/iisproxy.dll bin/iisforward.dll bin/proxy30.dll bin/proxy35.dll bin/proxy36.dll lib/aix/libproxy.so lib/aix/libproxy20.so lib/aix/libproxy36.so lib/aix/libproxy40.so lib/aix/libweblogicunix1.so lib/aix/libwlenv.so lib/aix/mod_wl.so lib/aix/mod_wl.ssl.so lib/hpux11/libproxy.sl lib/hpux11/mod_wl_ssl.so lib/hpux11/mod_wl.so lib/linux/libmuxer.so lib/linux/libwlenv.so lib/linux/mod_wl.so lib/linux/mod_wl_ssl.so lib/linux/mod_wl_ssl_raven.so lib/linux/wlauth lib/solaris/libmuxer.so lib/solaris/libproxy.so lib/solaris/libstackdump.so lib/solaris/mod_wl.so lib/solaris/mod_wl_ssl.so lib/solaris/mod_wl.ssl_raven.so lib/tru64unix/mod_wl.so Database Drivers: Issues 9765,30410, 32061,32063,36269 ,39238 ,39426, 33423, 34041, 34242,31331, 36671, 37427, 37398, 37693,37893, 38229, 39025, 39887, 40509, 40598, 40851, 41351, 41352, 41356, 42022, 42028, 42054, 42175 bin/oci734_7/weblogicoci36.dll bin/oci805_7/weblogicoci36.dll bin/oci805_8/weblogicoci36.dll bin/oci815_8/weblogicoci36.dll lib/aix/oci805_7/libweblogicoci36.so lib/aix/oci816_8/libweblogicoci36.so lib/hpux11/oci816_8/libweblogicoci36.sl lib/solaris/oci734_7/libweblogicoci36.so lib/solaris/oci805_7/libweblogicoci36.so lib/solaris/oci805_8/libweblogicoci36.so lib/solaris/oci806_8/libweblogicoci36.so lib/solaris/oci815_8/libweblogicoci36.so lib/solaris/oci816_8/libweblogicoci36.so lib/tru64unix/oci805_7/libweblogicoci36.so lib/unixware/oci804_7/libweblogicoci36.so Files that update or add examples: examples/applets/phonebook1.jsp examples/applets/phonebook2.jsp examples/jolt/servlet/jadmin/exmples.jolt.servlet.jadmin.BounceJoltServlet.html examples/jolt/servlet/jadmin/BounceJoltServlet.java examples/jolt/servlet/jadmin/index.html examples/jolt/servlet/jadmin/joltadmin.html examples/jsp/tagext/sql/WEB-INF/classes/weblogic/taglib/sql/ConnectionTag.class examples/jsp/tagext/sql/WEB-INF/classes/weblogic/taglib/sql/QueryExtraInfoTag.class examples/jsp/tagext/sql/WEB-INF/classes/weblogic/taglib/sql/QueryTag.class examples/jsp/tagext/sql/WEB-INF/classes/weblogic/taglib/sql/ResultsTag.class examples/security/sslclient/jsseH.bat examples/security/sslclient/jsseWLS.bat examples/security/sslclient/SSLClient.java examples/security/sslclient/SSLClientServlet.java examples/security/sslclient/wlsH.bat examples/security/sslclient/wlsWLS.bat examples/servlets/AuthFilterImpl.java examples/webapp/index.html examples/xml/http/StockClient.java Files that add ZAC support (See additional information): lib/aix/zac_aix lib/hpux11/zac_hpux lib/linux/zac_linux lib/linux/zac_linux_g lib/solaris/zac_solaris lib/tru64unix/zac_tru64unix lib/tru64unix/zac_tru64unix_g zac/AIX_ppc.res zac/AIX_ppc_g.res zac/DECUnix_alpha.res zac/DECUnix_alpha_g.res zac/HPUX_parisc.res zac/HPUX_parisc_g.res zac/Linux_x86.res zac/Linux_x86_g.res zac/Solaris_sparc.res zac/Solaris_sparc_g.res zac/TRU64Unix_alpha.res zac/TRU64Unix_alpha_g.res For each of these files you can follow the same procedure for deployment. As an example, here are the steps for deploying /weblogic/lib/aix/libproxy40.so. You would deploy this shared library if you are interested in resolving issue 32053, otherwise you would not need to use this file at all. To deploy the lib/aix/libproxy40.so, make a copy of the original to a safe location and then copy lib/aix/libproxy40.so from the service pack to replace the original file that you backed up in another location. For instance, if you installed WebLogic in /weblogic and want to use the NSAPI plugin on AIX (/aix/libproxy40.so), then these commands will backup the original library and copy in the new one:
         $ cp /weblogic/lib/aix/libproxy40.so /weblogic/lib/aix/libproxy40.so.backup
         $ cd /tmp
         $ jar xvf weblogic510sp9.zip
         $ cp /tmp/lib/aix/libproxy40.so /weblogic/lib/aix/libproxy40.so
9. #### Installing the Service Pack on the Client (optional) Typically the service pack jar is placed on the server. However, in many instances, it is also required to put the service pack jar on the client as well. This may not be necessary for some users, yet has been found to resolve many possible problems. To place the Service Pack on the client, The weblogic510sp9.jar has to be prepended to the CLASSPATH of the client. There are many instances in which it is necessary to update the client; BEA has found that it is especially required if user's wish to resolve one or more of the following issues: 27890, 30485, 30527, 33244, 33289, 33794. Once you have made all the above necessary changes from steps 1-8, start the WebLogic Server. You can check that installation was successful by checking the server version:
         java weblogic.Admin t3://Host:Port VERSION
   should return
         WebLogic Build: 5.1.0 Service Pack 9 ...
7. ## Removing the Service Pack Shut down the WebLogic Server. Remove weblogic510sp9boot.jar from the start of the Java system classpath and weblogic510sp9.jar from the start of the WebLogic classpath used to start the WebLogic Server. Delete weblogic510sp9boot.jar, weblogic510sp9.jar and any other files unzipped from the service pack download. If you used wlconfig.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, remove the weblogic510sp9boot.jar from the start of the classpath and remove the weblogic510sp9.jar from the start of the weblogic.class.path. Restore any non-java class files that you replaced in the installation process (eg WebLogic_RDBMS.jar) You can then start the WebLogic Server without the service pack. Once you have made these changes and started the Server, you can check that the service pack is no longer in use by checking the server version, as shown below:
         java weblogic.Admin t3://Host:Port VERSION
## Release notes for WebLogic Server 5.1 Service Pack 9 ### Resolved issues: Below are the issues resolved in the current Service Pack and a link to the previous Service Pack release notes. Service Packs are cumulative, so all of the issues in Service Pack 1-9 have been fixed in the latest Service Pack. Service Pack 1-9 Clustering Issues: ISSUE 28431: Fixed a problem in clustering with multiple, comma-separated, host names. ISSUE 31686: Fixed some problems in clustering when using Windowns NT and instate memory replication. ISSUE 32364: Fixed some performance issues with failover in RMI Objects in a cluster. ISSUE 40660: Fixed problems with the HTTPClusterServlet when using Solaris Servers in a cluster. ISSUE 41237: Fixed some problems in the HTTPClusterServlet when the connection header is set to close. EJB Issues: ISSUE 29007: A BMP findByPrimaryKey call now always checks the EJB container's cache before making a database round-trip. ISSUE 30164: Now you can set the isolation level with finders. ISSUE 31072: Read-Only entity beans weren't failing over to another server under clustered environments. ISSUE 31148: Fixed some problems in EJB when finder methods for CMP beans were overloaded. ISSUE 31604: Fixed a bug where EJBs with large Primary Keys caused OutOfMemoryErrors. ISSUE 31968: Now, when a protocol exception is thrown, we include the URI to help discover what had possibly caused the exception. ISSUE 36008: Fixed a problem with WebLogic and JDK 1.1.7. EJBs passing an array of a user defined object were causing errors only when used with this particular JDK. ISSUE 38245: Fixed a problem in EJB. Array data type method parameters were not handled properly. ISSUE 39285: A <cache-type> tag has been added to the <caching-descriptor> in the weblogic-ejb-jar.dtd. ISSUE 39314: Now we undeploy Stateless Seesion Beans on Server shutdown. ISSUE 39816: The server was throwing out of memory exceptions when a high number or requests per second were made for session EJBs. This has been fixed. ISSUE 39904: Fixed some problems with CMP entity beans and finders-call-ejbload resulting in twice the number of database reads. ISSUE 40511: The ejbc compliance checker was giving the wrong error message if the super-interface implemented Serializable. ISSUE 40829: Fixed a problem in EJB when a second bean (a Stateless, TX_NOT_SUPPORTED bean) throws an error and the transaction started by first bean is incorrectly rolled back. ISSUE 41259: Fixed a problem with the <stateful-session-persistent-store-dir> tag when using Stateful Session Beans. ISSUE 41297: When, under load, the Server creates an instance of an entity bean and invokes a business method without calling either ejbFindByPrimaryKey or ejbLoad. The result is a NullPointerException. this behaviour appears to occur under load. ISSUE 41312: Now, when we throw a TransactionRolledBackException, we include an embedded exception so that it is easier to figure out why the transaction rolled back. ISSUE 41804: Cleaned up some unnecessary error messages with transactions with no resources or synchronizations. ISSUE 41924: When calling a business method on a Stateless Session Bean with Bean-managed transactions that throws a non-appException, the container was not throwing a RemoteException to the client. ISSUE 42044: Some EJB logging messages were not being sent correctly. ISSUE 42067: Fixed some problems in EJB doing "where 1=0" queries with CMP beans. ISSUE 41935: Fixed problems invoking an overloaded public method when connecting to an EJB as an RMI-IIOP client. ISSUE 42430: The RemoteException detail field was not being set correctly sometimes. ISSUE 43322: An application exception thrown from a bean method with bean managed transaction demarcation was not being properly propagated to the client. JDBC Issues: ISSUE 33423: There were dbKona problems with QueryDataSet and the OCI805_8 driver. This has been fixed on Windows NT, but is still a problem on HPUX and Solaris. ISSUE 34041: 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) ISSUE 34242: Fixed a problem when getting a LONG RAW column with ResultSet.getBinaryStream(), the OCI driver GeneralProtectionFaults's when using Oracle 8.1.6 client libraries. ISSUE 31331: There were problems enabling OS authentication and using Oracle 8.1.6/oci8 with the jDriver. This has been fixed on NT and HP-UX, but still is an issue on Solaris. ISSUE 36671: With a char(1) field defined in Oracle, which maps to a variable defined as a char on the java side, Weblogic was failing to compile. ISSUE 37427: The Oracle 8.1.6 JDBC driver caused cluster's booting to be extremely slow. ISSUE 37398: Fixed a JDBC problem with OutOfMemoryErrors when deleting data from tables. ISSUE 37693: There are no longer problems with the Oracle driver and ROWID selects when running examples.dbkona.rowid. ISSUE 37893: Fixed getBytes() to return null instead of a zero-length byte array with Oracle LONG RAW columns. ISSUE 38229: The jDriver for Oracle 8.1.6 caused managed servers to run out of memory. ISSUE 39025: Fixed a problem with JDBCStore not recognizing the MS-SQL driver when it was modified by an ISV. ISSUE 39887: There was an issue with preparedStatement.setCharacterStream and the type 2 driver. This has been fixed. ISSUE 40305: Fixed NPE when trying to get a pool connection. ISSUE 40509: Fixed a small problem with Solaris 2.6 and the jdriver. ISSUE 40598: Fixed some recent problems (as of Service Pack 6) with the type 2 JDBC Driver on Tru64-UNIX. ISSUE 40851: We increased our internal cursor buffer to prevent errors like the following: java.sql.SQLException: Parameter cursor pool exhausted - make sure you call Statement.close(). ISSUE 41351: Previously, Oracle's driver couldn't set the DBMS's transaction isolation level, so WebLogic intercepted that call and did it via SQL. Now we leave this task to the driver and the server now longer interferes. ISSUE 41352: Added a performance enhancement to JDBC connection pools, especially useful for CMP JDBC. ISSUE 41356: JOE allow arbitrary test SQL. Also remove "Unable to shrink pool" message, and add more synchronization to prevent that case. ISSUE 42022: Fixed problem with the WebLogic jDriver and AIX 4.3.3. ISSUE 42028: WebLogic's implementation of getColumnDisplaySize() was quadrupling the character size of nchar and nvarchar data types. ISSUE 42054: Fixed problems with the RMI driver and JDBC 2.0 calls. ISSUE 42175: Fixed problems with getBigDecimal and using MS-SQL Server. JSP Issues: ISSUE 33013: Fixed a problem with the JSP FORWARD tag when using a symbolic link. ISSUE 34303: There were problems encountered in running some JSP examples from Sun. (See additional information) ISSUE 34389: Escaping Quotes were not working in the value tag for JSP parameters; the server now functions per the spec-where quotations are to be escaped with \". ISSUE 38661: Compiling a jsp that contains an include directive was not resulting in the file's path being parsed correctly. ISSUE 38016: A request for a JSP whose source file no longer exists undeploys the JSP and returns a 404. The server was not undeploying JSPs that were deleted from the file system. ISSUE 38354: If there is no errorPage attribute specified inside the JSP, the server will use an error page specified by the <error page> tag in web.xml. ISSUE 38623: A new parameter, compileOptions, can now be used in the weblogic.properties file under the JSP initial arguments (JSPServlet.initArgs) or in web.xml as a <context-param>. Use this parameter to specify your compiler options. ISSUE 40107: There were problems with nested (tags inside of tags) custom tags in JSPs. This has been fixed. ISSUE 40776: The JSP tags <jsp:include> and <jsp:forward> were not taking into account query strings done in different encoding. ISSUE 41093: Added a new property: weblogic.httpd.compileJspEnabled. The default is set to TRUE. ISSUE 41242: We have updated the JSP Cache tag. This fixes problems with JSP requests after the server has been restarted, and when clients try to reload their browsers. ISSUE 41755: When there were multiple, simultaneous requests for a JSP page using jsp:useBean tags, sometimes the bean was getting instantiated too many times. ISSUE 41950: Fixed a bug in JSP when calling the findAttribute method of page context. Attributes in session scopes or application scope were not being found. ISSUE 42145: Using a multi-byte enabled browser, with WebLogic Server and Service Pack 9 (this means having set weblogic.httpd.inputCharset./*=UTF-8 in the weblogic.properties file), the multi-byte characters were not displayed properly by a JSP page. This has been fixed. ISSUE 42951: When a JSP file has an included JSP, which is a JSP-tag extension, then, if an error occurred, weblogic.jspc was not specifying which JSP file had the error. ISSUE 42360: Fixed some problems in JSPs with getCharacterEncoding returning the incorrect character set. ISSUE 42451: Fixed a problem in Servlets/JSP, with using setLocale(). ISSUE 44031: Fixed a problem with JSP pages calling bean classes. Plug-in Issues: ISSUE 39768: When using the NSAPI plug-in, we now allow the JSP size to be viewed through the NES log, when those files have been served by WebLogic through NES. ISSUE 39882: Fixed some recent problems loading performance packs on AIX and Linux. ISSUE 40928: Fixed some problems with the Apache plug-in and an operation READ failed error that was related to only partial pages showing up in a browser. ISSUE 40977: Fixed a problem with the WebLogic plug-ins when there are multiple cookies coming from the browser and the total length exceeds 1024 characters. ISSUE 41062: We now support multiple entries in WlForwardPath when using the ISAPI plug-in. ISSUE 41206: The WebLogic plug-ins now will add the missing "/" to the obj.conf if a user has forgot to place it in front of a filename specified by DefaultFilename. ISSUE 41243: Fixed a problem in plug-ins with PathTrim and the <Files> tag using virtual hosts. ISSUE 42019: Using the mod_usertrack module from Apache, when the WebLogic Apache Bridge is enabled, the configuration of the apache session tracking was being ignored. The the mod_usertrack module was not finding the expected cookie. ISSUE 42277: Fixed some problems with the ISAPI plug-in when Debug=ON in the iisproxy.ini file. ISSUE 42326: Fixed a problem with the ISAPI plug-in failing to find the existing session id, and unnecessarily failing over to the secondary server--creating a new request and causing lost sessions. ISSUE 42808: Fixed some potential problems with Service Pack 7-8 and uploads with the NSAPI plug-in. ISSUE 43200: When setting the plug-in property 'idempotent: OFF', the server was failing over to the secondary server in the cluster without sending an error back to the browser. Now if idempotent=off and the primary server is down, an error page with status=500 is correctly returned and there is no fail-over to the secondary server. Servlets Issues: ISSUE 31269: Added two properties to define a maximum size for POST and PUT requests which can be used as a mechanism to defeat denial of service attacks. The two new properties are weblogic.httpd.maxPostSize and weblogic.httpd.maxPostTimeSecs. Default values for both properties are -1. This means the maxPostSize and maxPostTime are unlimited. ISSUE 33935: There was a problem with the weblogic.httpd.enableEvents property. It has been fixed. ISSUE 36867Now the server can reload JSP pages if its associated .class file has been modified. To do this you must have pre-compiled your JSP's using the new -neverStale flag in JSPC. ISSUE 39203: If there are multiple headers with the same name in a request, the getHeader method now returns the first header contained in the request. ISSUE 39458: Fixed a problem including a .jar file in the servlet classpath in the weblogic.properites file. ISSUE 39503: Improved performance with CGI requests. ISSUE 40077: Using SHTML and server side includes, parameters specified in the PARAM tag were not working. This has been fixed. ISSUE 40147: Enabled logging of ResetExceptions if weblogic.debug.httpd=true ISSUE 40659: When specifying getParameter()--for example, <%= new String(request.getParameter(itemQ[i]).getBytes ("iso-8859-1"), "SJIS") %> --encoding as iso-8859-1, the POST method was not working properly. ISSUE 40686: The correct IllegalStateException is now thrown if a session is invalidated more than once. ISSUE 40878: Using the Apache plug-in, query strings were being trunctated when they included blank spaces. This was only happening with redirects. ISSUE 40903: We now have an EAPI version of the mod_wl_ssl.so for Apache SSL with Raven on HP-UX 11.0. ISSUE 41320: Fixed some problems with headers (X-Forwarded-For) used by caching proxy engines. ISSUE 41335: Fixed some problems occurring in a non-clustered environment, when modifying attributes saved in the HttpSession. ISSUE 41552: Fixed a problem with JSP compilation when using jsp:use bean and setting type to an interface. ISSUE 41661: When HttpRequest.isUserInRole() is called on a servlet with an ACL and after the user has been successfully logged in, a null pointer exception was thrown when using WebLogic Server 5.1 with Service Pack 7 or 8. This has been fixed. ISSUE 41686: The file servlet was serving up files correctly through an open directory Web Application, but not through a .war file Web Application. ISSUE 41687: The CGI servlet works now for Web Applications in a .war file, as well as in open directory Web Applications. ISSUE 41888: Fixed a recent problem in Service Pack 7-8. When an HTTPS Servlet/JSP request came into a WebLogic Proxy and then was forwarded to the Server the Servlet/JSP was not executed, the browser received nothing and the request timed out. ISSUE 41973: Now, the only time when the lastAccessedTime of a session is updated is at the end of a request related to that session--or when the session is created. ISSUE 41977: When a Web Application creates an HttpSession and then forwards a user's request to another Web Application, the second Web Application calling Request.getSession() obtains access to the first session and all of its data--this second Web Application should have just created its own new session. This has been fixed. ISSUE 42564: Fixed some problems with the HttpClusterServlet throwing a Broken Pipe Exception during a socket write operation. The HttpClusterServlet was recycling sockets that WebLogic had closed. ISSUE 42605: Fixed a problem using the HTTP_REFERER environment variable with the CGIServlet. ISSUE 42055: The weblogic.httpd.inputCharset property was working using GET, but not using POST. ISSUE 42081: The weblogic.httpd.session.persistence property no longer functions, use weblogic.httpd.session.persistentStoreType. You can set the StoreType to memory, file, jdbc, or replicated. It will default to memory. ISSUE 42161: The CGI servlet was having problems extracting scripts from .war files. This has been fixed. ISSUE 42204: When a broken CGI script cannot execute, the browser was showing a blank page rather than an error page. When this occurs, now we send a 500- INTERNAL SERVER ERROR. ISSUE 42219: Added Location: and Status: header handling in CGIServlet ISSUE 42228: Now, according to the spec, CGI will recognize headers of scripts starting with -nph and will not parse them. ISSUE 42518: Added a new property called weblogic.cluster.interfaceAddress. If you are using NT and wish to direct your multicast traffic to a different Network Interface Card, setting this property is an option. ISSUE 43371: HttpServletRequest.getRemoteAddr() was not returning the actual client IP address when WebLogic was used as a proxy. It returned the proxy's address. Miscellaneous Issues: ISSUE 28253: The AppletArchiver now supports the Java Plug-in--for both IE, and Navigator. ISSUE 29639: Now we log the appropriate error message when the Server is started without a clustering license. ISSUE 31786: Added a new property for the weblogic.properties file: weblogic.login.logAllReadTimeouts. By default this property is set to true. If you set it to false, the server won't log a message when a read on login times out. ISSUE 32605: Now it is possible to do JSSE with WebLogic Server 5.1. An example has been provided with this Service Pack. ISSUE 34351: We have added a utility (beasvc.exe) to install and remove WebLogic instances as NT services. This issue was also tracked as issue 27525. (See additional information) ISSUE 35071: Now we conform to the Extended Log Format when logging String and Text data formats by ensuring the value is in quotes. ISSUE 36076: There were problems generating thread dumps with JDK 1.2. These problems have been fixed. ISSUE 36867: Now the server can reload JSP pages if its associated .class file has been modified. ISSUE 36874: CachingRealm was only resetting ACLs with the delegate realm's information, but it was also necessary for it to do it with the Group memberships as well. ISSUE 37097: Added ZAC support when using JDK 1.2 and 1.3 on Solaris.(See additional information) ISSUE 38986: Fixed a deadlock occurring in JMS under heavy load. ISSUE 39124: We now support SSL between a proxy server and a WebLogic Cluster ISSUE 39254: There was the wrong information in the SNMP Trap Agent field. The actual agent host's IP address was not appearing; it was always being set as the localhost. This has been fixed. ISSUE 39309: Fixed multiple problems with the UnixRealm. ISSUE 39825: A new property "weblogic.jolt.connectionPool" has been added. If this property is defined in the weblogic.properties file, then the Jolt session pool will be started before EJBs get deployed. ISSUE 40106: When running the server as an NT Service with JDK 1.3, the server was shutting down when the user logged off the machine. ISSUE 40402: Fixed a problem with RMI, occuring after hundreds of succesful calls to remote objects. The client was exiting with a PeerGoneException. ISSUE 40249: WebLogic now supports the use of single sign-on for Web Applications. ISSUE 40258: Fixed some problems using JMS Persistence when disableGuest=true. ISSUE 40418: Some java.net.SocketException: JVM_recv in socket input stream read (code=10053) errors were unnecessarily sent to the log. ISSUE 40481: Added a utility that allows Jolt pools to be reset. The following example files included in this service pack demonstrate the use of this utility: examples/jolt/servlet/jadmin/examples.jolt.servlet.jadmin.BounceJoltServlet.html, examples/jolt/servlet/jadmin/BounceJoltServlet.java, examples/jolt/servlet/jadmin/index.html, and examples/jolt/servlet/jadmin/joltadmin.html. ISSUE 40526: On HPUX-11.0, native IO was not working with when using WebLogic 5.1 with Service Pack 7/8. this has been fixed. ISSUE 40544: Fixed some problems with JMS queries and MS SQL Server. ISSUE 40681: Now you can set the time to live when using the MulticastTest utility. ISSUE 40683: There was a problem with the performance pack not loading on AIX 4.3.3. ISSUE 40826: Now we attempt to log the username and password that were entered when a user submitted the wrong credentials in a form auth. ISSUE 40836: Network disconnects can cause WLEC connections to be used up. If certain kinds of network distturbances occur, WLEC connections will get stuck in active use forever. This poblem has been fixed. ISSUE 40856: Added ZAC support for AIX, Solaris, HP-UX, and Linux on JDK 1.2 and 1.3. Also added ZAC support for JDK 1.2 and 1.3 on the Tru64unix platform.(See additional information) ISSUE 40872: When a startup class took a long period of time to complete (~2 minutes), and the session timeout parameter is relatively short (1 minute), the session invalidation trigger was firing only once. This means that sessions are never automatically invalidated. Now this has been changed so that it is possible for the trigger to be rescheduled to run once an exception is thrown. ISSUE 41024: There was a problem with Service Packs 7 and 8 with Netscape and pages getting redirected to port:80. ISSUE 41029: Now the weblogic classpath can be read from a file. If the -Dweblogic.class.path property starts with a @ character, then the server will read the classpath from the file that is specified next. ISSUE 41173: We have addded i-net as a known driver that can be recognized by JMS. ISSUE 41339: Fixed a problem in JMS with the IBM type 2 JDBC driver not being correctly identified. ISSUE 41343: Jolt Session pools were slowing WebLogic Server down when a TUX node/network failure occurred. ISSUE 41356: Now you may test pool connections with something other than "select count(*) from <testTable>". If the pool's testTable starts with "SQL ", then we will execute the remainder as SQL. ISSUE 41387: If you called getUsers or getGroups with an NTRealm, the server's performance was very poor. This has been improved. ISSUE 41497: Fixed a problem with non-secure protocols and the use of JNDI from applets. ISSUE 41516: When running weblogic.admin commands(like PING and VERSION) in a clustered environment PeerGoneExceptions were being sent to the log. ISSUE 41769: Fixed a problem connecting to a URL through HTTPS when using an applet archiver. ISSUE 41777: Now the HttpClusterServlet has the ability to use the static server list as a back up if the dynamically generated list of servers is corrupted. ISSUE 41900: Fixed some problems in JMS due to a change in Object Messages that was incorporated into Service Packs 7-8. ISSUE 42089: Using Service Pack 7-8, a Web Application could not have the name 'app'. This has been fixed. ISSUE 42295: Fixed extraneous NullPointerExceptions clogging up the logs in response to uncommon URL requests. ISSUE 42518: Added a new property called weblogic.cluster.interfaceAddress. If you are using NT and wish to direct your multicast traffic to a different Network Interface Card, setting this property is an option. Set this to the appropriate ip address: weblogic.cluster.interfaceAddress=<ip address> ISSUE 42724: When there was a problem, javax.jts.RollbackException was not correctly putting the exception thrown in its detail field. ISSUE 43059: A UDFDataFormatException was being raised when a Jolt client received a message from Tuxedo service containing a STRING buffer type and the STRING contained extended ASCII characters in certain positions. This has been fixed. ISSUE 43068: When a PathPrepend parameter in the IPlanet obj.conf file is set to prepend the path information on requests to JSP's on WebLogic, the path is prepended twice when a redirect is issued to the browser. ISSUE 43547: Fixed some problems in a client-to-client RMI configuration that uses WebLogic as the JNDI provider and as the router between the clients. ## Additional details on new plugin parameters: The following parameters have been added and are available for the specified plugins. For information on how to install plug-ins, see the online administrator's guides.
Parameter Name | Defaults | Pertains To | Description
--- | --- | --- | ---
DynamicServerList | ON/OFF (Default: ON) | ISAPI only | It will be "ON" by default. If set to "OFF" then the dynamic list returned by WebLogic with the response will be ignored by the plugin. There will be some shortcomings if the users go for this architecture. First, they cannot add new servers in the cluster as the plugin will try to connect only to the servers in it's static list. Second, if they add a new server to the list and it becomes the secondary, then the plugin will not failover (because of isServerInList) hence sessions will be lost. Finally, if any server goes down the plugin will hit that dead server again and again. This may affect the performance.
| Debug | ON/OFF (Default: OFF) | All Plug-ins | "Debug" will log the following messages to c:\tmp\wlproxy.log on NT and /tmp/wlproxy.log on UNIX: --All headers coming in from the client/browser --All headers sent to WebLogic --All headers returned by WebLogic --All headers returned back to the browser/client --Dynamic Cluster List --Connection info --Other informational, warning and error messages
| DebugConfigInfo | ON/OFF (Default: OFF) | All Plug-ins | This parameter is used to enable the magic query parameter "__WebLogicBridgeConfig". This is used to get details about configuration parameters from the plugin. For example, if you enable "__WebLogicBridgeConfig" by setting DebugConfigInfo=ON and then send a request like: http://www.mywebserver.com:8000/weblogic/foo.jsp?__WebLogicBridgeConfig, then the plug-in will gather the configuration information and return it back to the browser. Note that it will not connect to the WebLogic Server in this case. This parameter is strictly for debugging and the format of the output message can change with releases. For security purposes it is advised to keep this parameter turned OFF in production systems. | DefaultFileName | filename | All Plug-ins | 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.
HungServerRecoverSecs | 10:300:600 for min:default:max | All plugins | You should set this to a very large value. If it is less than the time the servlets take to process, then you will see unexpected results. This implementation takes care of the hung or unresponsive servers in the cluster. So the plugin waits for HungServerRecoverSecs for the the server to respond and then declares that server dead and fails over to the next server.
Idempotent | ON/OFF (Default: ON) | All plugins | This is a URL level flag. By default it will be "ON" so if the servers do not respond within HungServerRecoverSecs, the plugins will failover. If set to "OFF" the plugins will not failover. It can be set differently for different URL's or Mime types.
MaxSkips | 5:10:1000 for min:default:max | ISAPI only | Currently if a server goes down the plugin marks it as bad and skips it for the next ten requests for that server. Ten skips doesn't mean ten requests but ten calls to getNextServer(). This happens when the request comes without the cookie, and the PRIMARY and SECONDARY are down. By using this parameter the user can change the MAX_SKIPS for dead servers.
| DisableCookie2Server | ON/OFF (Default: OFF) | Apache only | If set to ON, the plug-in will not use the server information in cookies. This fixes a problem with WAP devices that have a limitation using cookies.

## New WebLogic Properties:

#### weblogic.jms.ignoreMemExhaustCheck=[true|false] (Issue 33227)

If set to true, the JMS memory check is ignored and messages can be sent and published when 75% or more of the server memory is used up. When this property is set to false, the memory check is NOT ignored. By default this is set to false.

#### weblogic.httpd.inputCharset.<Dir name>=<charset name> (Issue 30298)

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.

#### weblogic.httpd.unkownMimeTypeIsDefault=[true|false] (Issue 35589)

Added new property, weblogic.httpd.unknownMimeTypeIsDefault=[true|false] which fixes a problem retrieving mime-type. By default this is set to false. The J2EE spec says that getMimeType() takes a filename for input as a String, and should return a NULL value if the MIME type is not known. By setting this new parameter to true, the spec is followed and the default mime type is disabled to allow null.

#### weblogic.httpd.session.neverReadPostData=[true|false] (Issue 36827)

Added a new property weblogic.httpd.session.neverReadPostData=[true|false] This prevents the server reading the post data in search of a SessionId. Anyone experiencing problems with missing POST data should try setting the the property to true.

#### weblogic.system.maxExecuteThreadCount (Issue 30826)

A new property "weblogic.system.maxExecuteThreadCount" has been added to configure the maximum number of the threads the weblogic will support. This sets the maximum the property "weblogic.system.executeThreadCount" will take. This property is configurable both from client and server. Note that there may be problems incurred by setting this property too high. See our tuning documentation for more information on performance with the WebLogic Server and execute threads.

#### weblogic.jsp.windowscaseSensitive=[true|false] (Issue 30869)

Added weblogic.jsp.windows.caseSensitive property. The default is false. If set to true, jspc and JspServlet do not change to lower-case the name of the generated file. The property is relevant on Windows only. The default is false (as it should be on Win32).

#### weblogic.security.ntrealm.domains=hostname1,hostname2 (Issue 33792)

The contents of the ntrealm.properties file has been moved into the weblogic.properties file. The following property is now used: weblogic.security.ntrealm.domains=hostname1,hostname2. This property can be set to a string list of hostnames of all the trusted domains. This adds the ability to search multiple trusted domains. If a ntrealm.properties file still exists, it will be used before the weblogic.properties file will, so it's suggested to remove all instances of ntrealm.properties on your system. These can sometimes reside in c:\winnt\, so please search your entire system for the file. The command line is a good way to test connectivity. Use the following command: java weblogic.security.ntrealm.NTRealm username password. This should produce output similar to the following:

    NTDelegate using Primary Domain Controller \\VULCAN
    auth ? joe
    enum users:
       #1 'Administrator'
       #2 'joe'
       #3 'Guest'
       #4 'NTTestUser'
    enum groups:
       #1 'None'
       #2 'Administrators'
       #3 'Backup Operators'
       #4 'Guests'
       #5 'Power Users'
       #6 'Replicator'
       #7 'Users'
    enum groups for user: joe
       #1 'Administrators'
       #2 'Backup Operators'
       #3 'Power Users'
       #4 'Users'
       #5 'None'
    is user joe an Administrator? true
    done

For details on NTRealm see WebLogic's online docs.

#### weblogic.httpd.WAPEnabled=[true|false] (Issue 38376)

Added weblogic.httpd.WAPEnabled property. The default is false. The plugin did not recognize sticky sessions when WebLogic Server was not clustered. This property determines whether or not the server includes the JVMID. If the server is WAP enabled (weblogic.httpd.WAPEnabled=true) we will not send the server info (JVMID) in non-clustered cases.

#### weblogic.httpd.maxPostSize and weblogic.httpd.maxPostTimeSecs (Issue 31269)

Added two properties to define a maximum size for POST and PUT requests which can be used as a mechanism to defeat denial of service attacks. The two new properties are weblogic.httpd.maxPostSize and weblogic.httpd.maxPostTimeSecs.

The default value of both properties is -1 (unlimited). If the maxPostSize or maxPostTime is exceeded, WebLogic sends an error message (a PostTimeoutException) back to the browser and breaks the connection. When the POST size is greater than the maxPostSize we return a response with status code HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE and the connection is broken

Note: If the client has not finished sending the POST data it doesn't receive an error message from WebLogic. Instead it gets a Connection Aborted error. Plugins will be able to handle this broken pipe and send an appropriate message to the browser.

Default values for both properties are -1. This means the maxPostSize and maxPostTime are unlimited.

#### weblogic.login.logAllReadTimeouts=[true|false] (Issue 31786)

Added a new property for the weblogic.properties file: weblogic.login.logAllReadTimeouts. By default this property is set to true. If you set it to false, the server won't log a message when a read on login times out.

#### compileOptions (Issue 38623)

A new parameter, compileOptions, can now be used in the weblogic.properties file under the JSP initial arguments (JSPServlet.initArgs) or in web.xml as a <context-param>. Use this parameter to specify your compiler options.

    For example:
    weblogic.httpd.initArgs.*.jsp=\
           pageCheckSeconds=1,\
           compileCommand=/usr/local/jdk1.2.2_05/bin/javac -O,\
           compileOptions=-g -O
    	   workingDir=/home/weblogic/ivarServer/classfiles,\
           verbose=true,\
           keepgenerated=true

#### weblogic.jolt.connectionPool (Issue 39825)

A new property "weblogic.jolt.connectionPool" has been added. If this property is defined in the weblogic.proeprties file, then the Jolt session pool will be started before EJBs get deployed. The following is an example of how to set this property:

    weblogic.jolt.connectionPool.demojoltpool=\
        appaddrlist=//bavaria.bea.com:27000,\
        failoverlist=//bavaria.bea.com:28000,\
        minpoolsize=1,\
        maxpoolsize=3

#### weblogic.httpd.compileJspEnabled=[true|false] (Issue 41093)

Added a new property: weblogic.httpd.compileJspEnabled. The default is set to TRUE. Adding weblogic.httpd.compileJspEnabled=false to the weblogic.properties file will disable compiling jsp's entirely-- please do not use this property unless you are sure that it is appropriate for your uses.

## Additional details on WebLogic_RDBMS.jar:

We include the lib/persistence/WebLogic_RDBMS.jar file in the service pack to resolve issue 9999. This jar file requires special attention because it is not a jar file that gets pre-appended to any classpaths. Instead, this EJB CMP jar file just needs to replace the original WebLogic_RDBMS.jar file in the lib/persistence directoy. No modifications are needed to the java or weblogic classpaths.

It is important to note that EJBs must be recompiled if the new WebLogic_RDBMS.jar file is installed from a service pack. They must also make sure that their classpaths are set correctly. In general, if you wish to resolve issue 9999, apply the weblogic510sp9.jar file as follows:

- Server - Apply weblogic510sp9.jar to weblogic.class.path
- EJB Deployer/Developer - Apply weblogi510sp9.jar to CLASSPATH
- Client - Do not apply weblogic510sp9.jar

  ## Details on Specific Issues

  #### Additional details on ISSUES 10228, 10399, 10428, and 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 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 ISSUE 31335 and ISSUE 30768:

    1. The "ntrealm.properties" file is no longer necessary for single domain systems.
    In the case of a single domain, the ntrealm.properties file need to be either removed or renamed from the system. Search for the existence of this file by doing a search on the root directory.
    2. If an additional trusted domain is to be added to the default domain, the ntrealm.properties file is still needed. In this case, in the ntrealm.properties, give the hostname of the other, trusted domain (note: not the domain name, the hostname).
    3. However the following property needs to be set in the weblogic.properties file in either case:
    weblogic.security.realmClass=weblogic.security.ntrealm.NTRealm
    4. For details on NTRealm see online docs.

    #### Additional details on ISSUE 31492:

    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 ISSUES 31822:

    The following diagram illustrates the differences between setting secureProxy="ON" and secureProxy="OFF".
    This feature is set in the WebLogic properties file.
    secureProxy=ON
    BROWSER<------>HTTPS------>PROXY<------>HTTPS----->WEBLOGIC SERVER CLUSTER
    secureProxy=OFF
    BROWSER<------>HTTPS------>PROXY<------>HTTP----->WEBLOGIC SERVER CLUSTER

    By passing the secureProxy parameter as an initial argument (in WebLogic init.Args) in the cluster servlet and setting it to ON, SSL between the proxy and the clusters will be enabled. Below is a demonstration of how to turn on the secure proxy feature:

    weblogic.httpd.register.cluster=weblogic.servlet.internal.HttpClusterServlet
    weblogic.httpd.initArgs.cluster=\
    defaultServers=server1:7001:7002|server2:7001:7002,\
    secureProxy=ON

    #### Additional details on ISSUES 31877:

- How to get userid: request.getRemoteUser()
- How to get referred/attempted URL: request.getAttribute("weblogic.formauth.targetURL")

  These will both work on the error page of the webapp.

  #### Additional details on ISSUE 32309:

  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 ISSUE 32806:

  Setting up access log rotation: Note: Access log rotation requires WebLogic Server 5.1, Service Pack sp4 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:

  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 details on ISSUE 33258:

  Sun's ldap does not work with Microsoft's Site Server, but Netscape's ldap 4.1 does. Please follow the following steps to configure WLS5.1 with MS Site Server 3.0.

  1. Download Netscape's ldap 4.1 from Netscape's web site http://www.iplanet.com/downloads/developer/index.html and decompress it to your local directory.

  2. Include Netscape's ldap4.1's jar files (ldapfilt.jar, ldapjdk.jar, ldapsp.jar) from your local directory in WEBLOGICCLASSPATH in the startweblogic startup script.

  3. Add the following line to your ldaprealm.properties file. weblogic.security.ldaprealm.factory=com.netscape.jndi.ldap.LdapContextFactory

  #### 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

  Set to true or false the above property in order to set whether or not to rotate the JDBC log file. This is set 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.

  #### Additonal details on ISSUE 34303:

  There are workarounds for making these examples run. For the template example put the following in the web.xml:

          <context-param>
            <param-name>weblogic.jsp.packagePrefix</param-name>
            <param-value></param-value>
          </context-param>

  For the iteration example, do the same as above. Additionally, change the list.jsp. Replace the following:

      <td><jsp:getProperty name="member" property="name"/></td>
      <td><jsp:getProperty name="member" property="phone"/></td>
      <td><jsp:getProperty name="member" property="email"/></td>

      with:

      <td><%= member.getName() %></td>
      <td><%= member.getPhone() %></td>
      <td><%= member.getEmail() %></td>

  #### Additional details on ISSUE 34351:

  We have added a utility (beasvc.exe) to install and remove WebLogic instances as NT services. These files have been included with this Service Pack:

            - beasvc.exe              (Binary to start and stop services)
            - installNtService.cmd    (Script to start service)
            - uninstallNtService.cmd  (Script to stop service)

  DESCRIPTION:

  Multiple instances of WebLogic servers as NT services can be installed/removed with "beasvc.exe".

  All configurations for multiple services are stored in the registry using a different service name each time and under a server-specific hive at: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

  The included scripts (installNtService.cmd and uninstallNtService.cmd) show how one can start/stop multiple services.

  OPTIONS:

  The following are the options supported by "beasvc.exe". Options should be separated by spaces. '/' may be substituted for '-'.

  Required options:

  -install | remove Install or remove the specified service. -svcname:<user_specified_service_name> Service name associated with this service. Use the following options only when installing the service.

              -cmdline:<java_cmdline_parameters>
                    Required java command line parameters.
                    This should not include specification of the java command.
              -javahome:<java_home_directory>
                    Root directory of targeted java distribution.
                    The java command will be formed by appending \bin\java.
              -execdir:<base_directory_for_execution>
                    Directory out of which this command will be executed.
              -extrapath:<additional_path_environment_settings>
                    Additional path settings that will be prepended to the path
                    applicable to this command execution only.
              -help | /?
                    Prints out help.

      Installing a service sample:

       beasvc -install \
              -svcname:<Service_Name> \
              -javahome:<Java_Home_Directory> \
              -execdir:<WebLogic_Home_Directory> \
              -extrapath:<Path_To_Prepend> \
              -cmdline:%CMDLINE%

      Uninstalling a service sample:

       beasvc -remove \
              -svcname:<Service_Name>

      Starting a service:
          Go to Start->Settings->Control Panel->Services
          Start the service.

  #### Additional details on ZAC: ISSUE 40856 and 37097:

  ZAC is now compatible with JDK 1.2 and 1.3. To add ZAC support, copy the following files into the /lib folder of your WebLogic installation:

      	lib/aix/zac_aix
          	lib/linux/zac_linux
          	lib/hpux11/zac_hpux
          	lib/solaris/zac_solaris
          	lib/tru64unix/zac_tru64unix

      Also copy the following files to $WL_HOME/classes/weblogic/drp/admin
      (NOTE: Make sure you backup your original files):

      	zac/AIX_ppc.res
          	zac/AIX_ppc_g.res
          	zac/DECUnix_alpha.res
          	zac/DECUnix_alpha_g.res
          	zac/HPUX_parisc.res
          	zac/HPUX_parisc_g.res
          	zac/Linux_x86.res
          	zac/Linux_x86_g.res
          	zac/Solaris_sparc.res
          	zac/Solaris_sparc_g.res
          	zac/TRU64Unix_alpha.res
          	zac/TRU64Unix_alpha_g.res

      The above binaries ensure that the bootstraps generated will recognize both JDK 1.2 and JDK 1.3.

  Special notes For Win32 Systems

  If there is more than one JDK 's installed, ZAC will default to using JDK 1.1 To make ZAC run on a particular version of JVM, you must do two things. First, the 1.1 registry entry must be renamed to something other than 1.1. The HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java RunTime Environment's "Current Version" key *MUST* be set to the particular JRE version you wish to use. Secondly, if you have a folder titled '1.1' or a similar name inside HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java RunTime Environment, you must change this folder to some other name. Windows will ignore the setting of the current version key if it finds a folder which it thinks contains a 1.1 JRE
  Note:Editing your registry can damage your system - Make a backup before starting ("export registry").

  ## Known Issues

  ### JDBC and File session persistence changes

  510 Service Pack 9 requires some administrative changes if your current server is using either JDBC or FILE session persistence. These changes were necessary in order to support "single signon" over multiple servlet contexts and affect all servers using session persistence. The following instructions describe how to upgrade and preserve your existing sessions.

  Please note that the workarounds suggested here to preserve existing session data only apply to web-applications that rely on long-life session persistence, where it is unacceptable to lose the session-data between server-upgrades.

  Admin changes for JDBC session persistence

  If you are using JDBC persistence you need to change the wl_servlet_sessions table to the following schema: (Note: this is Oracle syntax and you should involve your dba in making the necessary changes required to the table to reflect the schema below)

      create table wl_servlet_sessions
            (wl_id                         VARCHAR2(100) NOT NULL,
             wl_context_path               VARCHAR2(100) NOT NULL,
             wl_is_new                     CHAR(1),
             wl_create_time                NUMBER(20),
             wl_is_valid                   CHAR(1),
             wl_session_values             LONG RAW,
             wl_access_time                NUMBER(20),
             wl_max_inactive_interval      Integer,
             PRIMARY KEY (wl_id, wl_context_path) );

  In order to preserve your existing JDBC sessions, you will need to populate the new wl_context_path with an appropriate context according to the following criteria:

    * If you are not using the WebApp mechanism to deploy your web services, then all of your current sessions belong to the default servlet context. You should populate the new WL_CONTEXT_PATH field with the string "General".

    * If you are using only a single WebApp that is not the default, then populate the WL_CONTEXT_PATH field with the context-path name of that WebApp.

    * If you are using multiple WebApps, you must replicate each session entry in the table so that there is one entry for each WebApp. You will need to populate the WL_CONTEXT_PATH for each entry respectively with the context-path name of that entry's associated WebApp.

    Admin changes for FILE session persistence

    There are no requirements to upgrade the file structure for FILE session persistence. However if you wish to preserve your existing sessions, you must move the serialized files as follows.

    You will find the serialized directories and files under the directory specified by the property:

    weblogic.httpd.session.persistentStoreDir=storage_dir

    This defaults to the value "session_db". Where the value is a relative path, this directory exists under the "myserver" directory. You must create a new directory under this persistentStoreDir, and move the existing directories at that level to this new directory as follows. These instructions assume that the persistentStoreDir is "session_db" for simplicity:

    * If you are not using the WebApp mechanism to deploy your web services, then all of your current sessions belong to the default servlet context. Create a new subdirectory called "General" under "session_db", and move other directories under the new directory "General".

    * If you are using only a single WebApp that is not the default, then create a new directory under "session_db" with the same name as the context-path of that WebApp. Move the existing directories under "session_db" to this new directory.

    * If you are using multiple WebApps, you must create a new directory under "session_db" for each WebApp with the same name as the context-path of that WebApp. Copy the existing directories under "session_db" to each new directory that you created, then delete the original directories.

    Extra note on retrieving existing session cookies

    This note applies to deployed sites using non-default WebApp configurations that rely on session cookies.

    In ServicePack-8, WLS introduced a naming convention for session cookies whereby the context-path was appended to the default cookie-name, separated by a "-" symbol. For example, if my WebApp had the context-path "mysite", and the default session cookie name "WebLogicSession" was used, then the resulting cookie name would be "WebLogicSession-mysite". This workaround enabled separate WebApps to differentiate between session cookies that used the default cookie name. This convention has been removed in ServicePack-9 in favor of using a single session ID in conjunction with the context-path to identify a session for a particular WebApp. That is, the session id is no longer required to be unique but is used in conjunction with the context-path to obtain a primary-key.

    If your WebApplication is designed to rely on long-life session cookies and you wish to retrieve these existing session cookies, you must explicitly set the cookie name in each WebApp to continue to follow this convention. While this solution will allow you to retrieve an existing user cookie, you will not be able to use the single-signon feature since that requires that you use the same cookie name for all WebApps that wish to share single-signon. If this situation applies to your site, we recommend you devise a migration strategy to move away from this model

    ### Pentium 4 users

    If you are installing WebLogic 5.1 or WebLogic 5.1 Service Pack 9 on a Pentium 4, you may run into an access violation when trying to run the password setup screen. This is an issue with the JRE that is acknowledged as a problem by JavaSoft. In the near future we will include a JRE that remedies this problem. This is only a problem with the installer and you may unzip the Service Pack directly into your installation to avoid this issue.

    ### Servlets

    Note that the value returned by session.getId() will no longer return the same value as request.getRequestedSessionId(). The strings are different. Also note: if you wish to figure out if an incoming cookie has a valid session, using request.getSession(false) is the best method.

    ### The weblogic.properties file (ISSUE 30561)

    There was a typo in the weblogic.properties file shipped with the release.

    The weblogic.properties file with the release says:

    # Add a TXDataSource for the connection pool:
    #weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.demoPool=demoPool

    It should actually be:

    # Add a TXDataSource for the connection pool:
    #weblogic.jdbc.TXDataSource.demoPool=demoPool

    ### DriverManager.getConnection()

    WebLogic's documentation and examples still, in certain instances, use the DriverManager.getConnection() method. If you are using JDK 1.2, this may sometimes generate deadlock in DriverManager.println. DriverManager.println was changed to become a 'synchronized' method with JDK 1.2. We highly recommends you use Driver.connect instead of DriverManager.getConnection(). See, http://www.weblogic.com/docs51/classdocs/urls.html#structure, for details.

    ## 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 are using "Service Pack 9".

- We have included demo security certificates with extended expiration dates in this release.

- We have included Apache plugins for Solaris, HP, AIX, Linux, and Tru64 in this release.

  Required browser for viewing this document: Netscape 4.0 or higher, or Microsoft Internet Explorer 4.0 or higher.
  Last updated 04/18/2001

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