JRun Release Notes

JRun 4 Updater 2 Release Notes

JRun® 4 Updater 2 for Windows®,
UNIX™, and Linux™

Last Updated October 24, 2006

These Release Notes contain the following information about JRun 4 Updater 2:

JRun Known Issues is a separate document, available at


The JRun 4 Updater 2 upgrades JRun 4, JRun 4 SP1, and JRun 4 SP1a installations. It is a cumulative upgrade that includes all the SP1 and SP1a updates. You are not required to install SP1 or SP1a before installing Updater 2.

This document includes information on the JRun 4 Updater 2 release only. For information on the updates included in the SP1 and SP1a releases, see the following resources:


The Macromedia JRun 4 Updater 2 upgrades an existing JRun 4 installation (with or without the Service Packs). Before running the Macromedia JRun 4 Updater to install JRun 4 Updater 2, perform the following steps:

  • Stop all JRun 4 services. To check to see if JRun services are still running:
    • On Unix and Linux, view processes using ps -ef or similar command. Kill any remaining JRun processes.
    • On Windows, press Ctrl + Alt + Delete and select the Task Manager. On the Processes tab, stop any remaining JRun processes.

    NOTE: If you do not stop all JRun processes, the installation can fail.

  • Stop all web servers connected to JRun. If you use IIS as your web server for JRun, stop the World Wide Web Publishing Service.
  • Note the location of your JRun 4 installation root directory (for example, c:\jrun4).
  • On Windows XP and Windows 2003, if you uninstall JRun prior to running the Updater, you must manually delete the following registry key:

    "ProductName"="Macromedia JRun 4"

    For more information on editing the Windows Registry, see your system documentation.

To upgrade your JRun 4 installation with the Updater 2:

  1. Download and run the EXE or BIN file for your operating system.
  2. Follow the instructions in the installation wizard, and let it run to completion.
  3. Delete the contents of the SERVER-INF/temp directory for each JRun server.
  4. After the installation is complete, restart JRun services and, if necessary, your web server.
  5. Note: JRun 4 Updater 2 creates a directory, sp-backup, containing a copy of all the files that the Updater overwrites.

  6. On some versions of Linux, you may be required to manually install the web server connector. For more information, see issue 50586 in JRun Known Issues.


The JRun 4 Updater 2 includes the following enhancements:

  • JDBC 3.2 drivers - JRun 4 Updater 2 includes version 3.2 of the JRun JDBC drivers. For information about the JRun JDBC drivers, see
  • Axis 1.1 - JRun 4 Updater 2 includes the Axis 1.1 web services engine. For information about Axis 1.1, see
  • Flash Remoting Updater Release 1 - JRun 4 Updater 2 includes Flash Remoting Updater Release 1. For information see the Flash Remoting Updater Release 1 Release Notes.
  • Connector stability - Connector stability across all platforms and connectors has been enhanced, especially for Microsoft IIS and Apache on Linux and Unix platforms.
  • Windows support - JRun now supports Windows 2003 and IIS 6.
  • Apache source code - JRun now includes the Apache source code in the inside wsconfig.jar. For instructions on building the Apache module, see ApacheBuildInstructions.txt inside the file.
  • Apache support - JRun now supports Apache versions 1.3.2x-1.3.27, and Apache versions 2.043-2.045. Users with older versions of Apache 2.x must upgrade prior to installing JRun 4 Updater 2.

Resolved issues

The JRun 4 Updater 2 includes the following fixed bugs:

  • 39676, 49408, 49484, 49491 - The jrun.xml file did not set mapCheck=0. This could reduce performance or cause server instability on some platforms.
  • 44557 - The JRun Connector for Apache was writing verbose messages in the error_log even when the verbose directive was set to false in the Apache configuration file.
  • 45038 - On startup, the web server connecter sent requests to the application server before it had finished starting and deploying the application.
  • 45862 - The JRun OEM kit for Windows threw the following exception when using JDK 1.4:
    jrunx.xml.XMLMetaData$CouldNotCreateDocumentException: Could not create document from location
    This occurred when starting the server.
  • 47289 - When a servlet or JSP was invoked with a url-mapping, JRun 4 was not identifying the URL's extra path information. JRun returned a 404 ("File Not Found") HTTP error code.
  • 47650 - Connector clustering failover was not working on iPlanet 4.1 for Windows. When a JRun server failed, the cluster manager returned a server error in the browser.
  • 47661 - The JRun 4 Apache connector for Solaris was preventing other Apache virtual hosts on that machine from responding to any requests.
  • 47741 - The Netscape/iPlanet connector was not retrieving some HTTP headers, such as USER_AGENT on NS4.1 on Solaris and some iPlanet 6 configurations.
  • 48118 - Database connection failures were logged as JDBCPool error and not showing the SQL error.
  • 48281 - The JRun Web Server Configuration Tool (wsconfig.jar) was throwing a misleading "Could not connect to any JRun servers" error when attempting to connect to a JRun server version prior to SP1. The error now appears as follows: "The jrun server(s) found on host host_ip must be upgraded to use this version of the Web Server Configuration Tool."
  • 48316 - The java.ejb.getHandle() method was not working with the IBM 1.3 JDK.
  • 48363 - Under load, Apache 1.3 processes were sometimes using too much CPU which eventually resulted in the web server stopping.
  • 48370 - Logging out of a security role across applications was not working.
  • 48400 - The error message that appeared when a user entered nothing in the username and password fields when trying to access JNDI was "bad position: -1". After cancelling out of the error message, clicking OK in the previous window displayed the error message and did not return the user to the login screen. This error occurred when running the JRun Connector Wizard against a server that had guestAccessAllowed set to false in the security manager.
  • 48410 - After performing a silent install of the Windows OEM JRun installer, and then uninstalling JRun, the installer was leaving registry entries that prevented a future reinstalling of the OEM edition.
  • 48551 - It was not possible to set the java.rmi.server.hostname system property. It defaulted to the IP address of the machine which caused problems in environments using multiple IP addresses. The use of EJBs was restricted to environments in which some client requests were made through NAT and others were not.
  • 48585 - The DataDirect JDBC drivers were throwing an exception when a SQL statement used CALL.
  • 48753 - Calls to request.getServletInfo() returned an incorrect value when web.xml mappings were used.
  • 48822 - On SQLServer, using selectMethod=cursor with an aggregate function threw an error if the calculated column contained a NULL value.
  • 48844 - The JRun 4 web server connector was not recognizing PA-RISC2.0 as os.arch on HP-UX 11.
  • 48858 - JRun was returning a NULL value when a BigDecimal value was passed as an attribute to a findByName function to get values of a NUMERIC data type.
  • 48919 - Calls to getServletContext().getNamedDispatcher("dispatcher").forward(request, response) was stripping the forward slash from the request when the resource that was being dispatched was a mapped servlet.
  • 48922 - The maximum transaction timeout was hard coded to 10 minutes. The maximum transaction timeout is now configurable in the jrun_root/servers/server_name/jrun.xml file as the maximumTimeout attribute of the TXDomainService service. The following example sets the maximum transaction timeout to 600 seconds:
    <service class="jrun.transaction.TXDomainService" name="DefaultDomain">
     <attribute name="bindToJNDI">true</attribute>
     <attribute name="maximumTimeout">600</attribute> 
     <attribute name="timeout">30</attribute>
     <attribute name="maximum">0</attribute>
     <attribute name="waitTime">0</attribute>
     <attribute name="clusterEnabled">false</attribute>
    NOTE: The maximumTimeout attribute must be put before the timeout attribute in the TXDomainService definition.
  • 48924 - Some EJBs were not able to access Java classes without packaging the bean separately and adding it to the system classpath.
  • 48966 - The JRun Connector Wizard upgrade process did not upgrade Apache 2.x connectors properly. This caused Apache 2.0.xx to fail on startup when trying to load the Apache 1.3 connector.
  • 49033 - Calls to getPathInfo returned NULL when there was extra path information.
  • 49035 - JRun was improperly casting the java.util.Date object to java.sql.Date when using the JRun JDBC drivers. Also, CMP 2.0 table creation was not properly creating Date columns.
  • 49213 - JRun was experiencing memory leaks when connected to Apache 1.3.x virtual hosts.
  • 49242 - JRun 4 SP1a was throwing javax.naming.CommunicationException errors when trying to run the connector configuration utility in some clustered environments.
  • 49246 - When using commit option A with transactions, JRun was calling the ejbStore after each method call. This was causing performance issues.
  • 49266 - JRun was sometimes writing connector module information to the wrong place in the Apache httpd.conf file when connecting JRun to the web server. If at least one IfModule section was not already in the Apache httpd.conf, JRun wrote the module information section to the head of file rather than the tail of file.
  • 49283 - The JRun Connector Wizard's verbose mode identified the incorrect target directory when connecting JRun to Apache.
  • 49384 - The instance-pool setting in jrun-ejb-jar.xml was not being used by JRun.
  • 49438 - JRun was not properly using CMR management beans. As a result, CMP one-to-many relationships failed to get the Iterator from the CMR Collection object.
  • 49462 - JRun 4 SP1a JSP init-param data was not available when the JSP was requested.
  • 49466 - The JRun Web Server with SSL was failing with SSLPeerUnverifiedException errors.
  • 49478 - When the mapCheck configuration parameter for Apache was set to 0, early processes were failing to find mappings under heavy load.
  • 49480 - JRun was returning incorrect values for getRequestURI, getRequestURL, getRealPath, and getServletPath method calls when the target used a servlet alias to request the page.
  • 49525 - Calls by the JRun EJB container to invokeObjectMethod was throwing NullPointerException errors.
  • 49698 - The JRun Web server connector was writing duplicate messages to Apache error_logs on startup.
  • 49759 - The JRun web server connector for IIS had a memory leak.
  • 49801 - If users renamed the wsconfig.jar file, JRun still configured the web server but was not deploying the connector module to the correct directory. This caused errors when the web server started up.
  • 49807 - Apache processes were sometimes spinning in tight loops causing some requests to hang.
  • 49859 - If IIS returned no HTTP headers, JRun caused an Access Violation in the ISAPI extension.
  • 49860 - A memory leak existed in the connector when multiple HTTP requests were canceled.
  • 49861 - The connector tried to write message to browser when browser disconnected.
  • 49862 - Access violations and -12 errors were occurring for all web server connectors before JRun started completely.
  • 49864 - Access violations occurred when using JRun and IIS under load.
  • 49874 - The command line -list option of wsconfig.jar has be enhanced with clearer output and now lists configured and unconfigured sites for IIS.
  • 49882 - The connector closed the socket to JRun for errors where this was not appropriate, such as client-side (browser) errors or requests for invalid headers or paths.
  • 49892 - Compiling Solaris NSAPI connectors was throwing warnings.
  • 49984 - IIS was crashing due to sporadic memory heap corruption errors.
  • 49987 - The Apache 2 connector could generate a SEGV or SIGBUS error under some circumstances.
  • 50083 - Configuring an additional IIS web site using the wsconfig.jar -site "site_name" option added a new subdirectory under containing another jrun.dll.
  • 50135 - If you added an IIS web site to the global (0) "All" site, you would get a "This web server has not been configured for JRun." error message if you tried to remove the single site individually. You can now remove it by specifying the site number, as indicated by wsconfig.jar -list, or the site name. The site name is case sensitive.

    For example, if site 5 has the name web02, you can remove it with either of the following lines:

    java -jar wsconfig.jar -r -site "5" -ws iis -v
    java -jar wsconfig.jar -r -site "web02" -ws iis -v 
  • 50268 - Previous JRun upgrades did not always upgrade web server connectors due to issues with date-time stamps. The JRun Updater now ignores file dates and always replaces the connectors when you install it.
  • 50270 - Accessing one web application from another web application with authentication was causing a resource key error to appear in the browser.
  • 50478 - JRun was throwing a java.lang.IndexOutOfBoundsException error when trying to remove the last element in a collection of entity beans.
  • 50484 - When session beans called entity beans repeatedly under load, JRun was throwing a java.util.NoSuchElementException error.

JRun 4 in Action


JRun/Java Development Center


Support and Training


Related Products

ColdFusion 9

Add ColdFusion for the most productive scripting layer for J2EE.

Adobe Dreamweaver CS5

The ultimate tool for building web applications.

Adobe Flash Professional CS5

Leverage Flash and JRun to build Rich Internet Applications.