JRun Release Notes

JRun 4 Updater 3 Release Notes

JRun® 4 Updater 3 for Windows®, UNIX™, Linux™ and MacOSX™

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

JRun Known Issues for the JRun 4 Updater 3 is a separate document, available at


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

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

Note: SP1a is a cumulative patch and includes all SP1 updates and issues.


The Macromedia JRun 4 Updater 3 upgrades an existing JRun 4 installation (with or without the Service Packs or prior Updaters).

Before running the Macromedia JRun 4 Updater 3 release , 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. If JRun servers are installed as Windows services, stop them using the services control panel
    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:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\955648EA1E7DC4D4FA99677EE7413103]"ProductName"="Macromedia JRun 4"
    or any full product or updater installation will fail.

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

To upgrade your JRun 4 installation with the Updater 3:

  1. Download and run the EXE, BIN or SIT 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. 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.


  • JRun 4 Updater 3 creates a directory, {jrunroot}/updater3-backup, containing a copy of all the files that the Updater overwrites.
  • For MacOSX users, run the .BIN from a shell. Stuffit cannot unpack this .BIN and will throw "Archive was compressed with an unknown compression method"


The JRun 4 Updater 3 includes the following enhancements:

  • Updated JDBC drivers - JRun 4 Updater 3 kit includes an updated version of the JRun JDBC drivers.
  • Axis 1.1 - JRun 4 Updater 3 includes the Axis 1.1 web services engine. For information about Axis 1.1, see
  • Flash Remoting Updater Release 1 - JRun 4 Updater 3 includes Flash Remoting Updater Release 1. For information about the Flash Remoting Updater Release 1, see the Flash Remoting Updater 1 Release Notes.
  • Connectors - Connector enhancements and improvements 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. The source code is also included in <jrun-root>/connectors
  • Apache support - JRun now supports Apache versions 1.3.2x-1.3.29, and Apache versions 2.043-2.048. Users with older versions of Apache 2.x must upgrade Apache prior to installing JRun 4 Updater 3. On Redhat 8 and Redhat AS2.1 Apache 1.3.x is supported if using the apache rpm.
  • Linux support - JRun 4 Updater 3 is now supported on RedHat 8 and Redhat AS2.1 and Novell Suse Linux 8.0.

Resolved issues in this release JRun 4 Updater 3

The JRun 4 Updater 3 includes the following fixed bugs.

Built-in JDBC database drivers

The original JDBC 3.2 drivers released with JRun 4 Updater 2 build 61650 had most of these problems.


  • 53182 - Clobs of around 3-6MB return 0 bytes
  • 53366 - Charset "ELM8MSWIN1253" hangs while retrieving CLOBs
  • 53357 - Clob retrieval returns 0 bytes from EL8MSWIN1253 , JA16SJIS
  • 52262 - Clob update with 2000+ chars fails with EL8MSWIN1253, JA16SJIS NLS_CharacterSets.
  • 53466 - Clob select throws java.lang.ArrayIndexOutOfBoundsException. NLS_CharacterSet: JA16SJIS.
  • 53477 - "No more data available to read" connected to Oracle 9i JA16SJIS database. (could be SELECT, UPDATE, INSERT)
  • 53758 - ArrayIndexOutOfBoundsException on CLOB SELECT Oracle9i NLS_CharacterSet: JA16SJIS.
  • 53752 - Hang with clob retrieve and WE8ISO8859P15 NLS_Characterset.
  • 53750 - Driver will not accept VARCHAR out params > 2000 char.
  • 53357 - Clob Update fails with NLS_CharacterSet WE8ISO8859P15.
  • 49775 - Net8 Protocol error with large amounts of client variable data. (light load)

SQL Server

  • 52851 - Regression. CPU spins when SQL server unexpectedly closes a connection
  • 53556,53280 - Regression. ArrayIndexOutOfBoundsException 2048 char SQL Statement.

Web Server Connectors

  • 53456 - Solaris. Segfault writing to log with Apache 1.3.27 connector.
  • 49111 - iPlanet 4.1 mappings get corrupted.
  • 50475 - Asp pages are not getting processed if there is servlet mapping with '/*' as url-pattern in the web.xml.
  • 50761 - JRun not in the Server header when running behind an external web server.
  • 52363 - IIS connector is installing as extension instead of filter for updater 2. Jrun has always installed as filter by default.
  • 53381 - Apache connector compile throws "undefined symbol: normalizeURI". New file jrun_utils.c (see ApacheBuildInstructions.txt in wsconfig.jar/
  • 53576 - response.getDateHeader("If-Modified-Since") throws IllegalArgumentException: Unparseable date exception when running with IIS connector
  • 53589 - Occasional garbled headers for NSAPI throws "java.lang.NullPointerException"
  • 53606 - Under IIS5, If two headers are sent and the first header has no value then getHeader("header1") shows "header2" and header 2's value.
  • 53720 - IPlanet 4.1 Error message in the log file for each and every request. "jrNSAPI[0] reports: nsapi_perm_strdup(NULL)!"
  • 54356 - Apache 1,3.2x and 2.0.4x connector now works with MacOS 10.28.
  • 53451 - Apache 2.x bad request thread causes the server to stop responding and requires a web server restart. "Too many concurrent requests" logged.
  • 47462 - SunOne. Not all CGI variables are returned (USER_AGENT for example)
  • 50907 - JRun now throws (Access Denied) error when it can't write jrun.xml to set the deactivated attribute to false for the jrpp service. Before, the connector wizard would configure the connector but the proxy service didn't show in the jrun start output (port listening on 51000) and no pages could be served.
  • 51802 - IPlanet on Solaris. Memory leak uploading large files 51983 - For JRun4/Microsoft IIS there is a 4K limit for each header so all cookies combined can not exceed 4K. The new default follows the RFC spec.
  • 52179 - Updater 2 kit doesn't include connector sources.
  • 53969 - JRun does not work properly with the headers having '_' in the header names. JRun replaces '_' with '-' if SM_USER is present. If there are two header names as SM_USER and SM-USER, jrun takes into consideration only SM-USER.
  • 54614 - Access Violation when running CFMX under JRUN with a context path set to "/". (all connectors)


  • 53299 - Cannot install on MacOSX
  • 52159 - Portscan.dll not included in the kit . Causes hang in JMC discovering servers (to display running status)
  • 51981 - response.encodeRedirectURL("http://localhost/foobar.jsp) causes 404 error on the redirection.
  • 53072 - When a JSP forward forwards to a servlet and the servlet gets the output stream JRun throws an illegal state exception.
  • 53568 - ServletContextListener contextInitialized() method should always be called before Servlet init() method.
  • 54059 - Accessing a servlet that doesn't exist causes a nullpointerexception.
  • 49519,52346 - jrun -stop [ server ] causes 2 jrun.exes to spawn sometimes causing out-of-memory condition or CPU spike.
  • 54102 - JRun Web Server (JWS) with SSL enabled doesn't accept connection from any machine other than localhost.
  • 53668 - A JSP fails to compile when it depends upon a class which had an old version in a jar file under WEB-INF/lib, and a new version (with interface changes which were needed) under WEB-INF/classes.
  • 53448 - In One-to-Many relationship, if 'many' side has a composite primary key, 'Argument Type mismatch' Exception is thrown while retrieving the iterator for the collection.
  • 49452 - JRun4 causes Japanese mojibake with Netscape browser.
  • 54756 - JRun will sometimes reject a valid session it generated.
  • 44972 - Enhancement. JRun installed as a Windows service. jrunsvc.exe [-starttimeout] [-stoptimeout] parameters added.

    In the past, the JRun server could take too long to start after a power outage, cold reboot, etc., and the service would not allow the JRun server to start cleanly.

    Users can adjust the Windows service threshold for server start / stop before the service throws an error (Service-specific error 2). Current defaults are 4 minutes (240 seconds - start) and 2 minutes (120 seconds - stop). The new feature works for ColdFusionMX 6.1 or higher or JRun 4 build 73557 or higher. (See techdoc 18799 for more information).

    jrunsvc --help will show the options

    Example: jrunsvc -starttimeout 300 "Macromedia JRun Default Server"
  • 47375 - Enhancement. -norestart switch added to jrunsvc.exe to allow the JRun4 server the same behavior as JRun 3.1 (no restart on failure). Restart (on Win2k and above) can be control by the user by the "Recovery" tab of the Windows service. The default behavior is to autorestart on failure.

    jrunsvc -install -norestart Server2 "Macromedia JRun Server2 Server" "Macromedia JRun Server2 Server" "Macromedia JRun Server2 Server"

    NOTE: When using a windows service for JRun, users should start servers from the Windows Control panel, not the JMC.
    For starting/stopping remote servers via the JMC, do not use Windows services unless all the servers are installed in the control panel with the [-norestart] switch.

JDBC/Connection Pooling

  • 49902 - UpdateRow doesn't work with SQLServer using DataDirect driver when using the JRun datasource. It works fine using the DriverManager.
  • 50157 - ResultSet.first() throws Unsupported method with CallableStatement and a JRun datasource that has native-results set to true. It works with native-results false and with the Driver Manager.
  • 50285 - ResultSet.first() and ResultSet.last() don't work with Oracle and PreparedStatement and native-results=true. It works with the DriverManager and with native-results set to false. Probably related to bug 50157.
  • 51908 - Scrollable ResultSet with ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE) doesn't work with SQLServer and the Merant jdbc driver.
  • 52485 - JRun hangs when a query runs longer than the datasource timeout and the datasource is pooled. It holds up all attempts to get a connection until it completes.
  • 53486 - JRun can hang in a recursive loop trying to get a connection from pool. (affects connection-limited datasources - jrun-resources.xml <maximum-size>). 

    Connection-limited datasources
    JRun and/or ColdFusionMX users using JRun pooling (datasources entered in the JRun Management Console) can set <maximum-soft> attribute to false for the datasource in jrun-resources.xml. This forces the pool to respect the <maximum-size> setting. For more information on datasource settings, see the JRun Admininstrator's Guide.


  • 44859 - Remote invocations requires entity bean primary keys to be in the system classpath
  • 52821 - The classpath element in the manifest of the ejb jar doesn't work on linux. The same manifest file works on Window.


  • 51728 - JRun returns null for sessionContext.getEJBObject(). This used to work in JRun 4.0 sp1a.
  • 54291 - When adding data with CMR, if CMPs are having primary keys in primitive type wrapper classes that is not "String" type, JRun throws a java.lang.InstantiationException although the data is inserted into the database.

Java Messaging Service

  • 51652 - "jms.session.closed" is missing from jrun/jms/core/client/
  • 53167 - JRun leaks memory when JMS QueueBrowser is used to browse JMS queues.
  • 53342 - JMS startup error with existing tables when using Oracle as rdbms. Works fine if tables don't exist.
  • 53560 - JMS Message listener does not consume database persisted messages properly. JRun server and message listener have to be restarted to consume all the messages.
  • 54119 - During load testing, MDB does not retrieve all the messages when jdbc persistance is used to persist JMS messages.


  • 50179 - The JRun connector doesn't detect a down remote server immediately.
  • 54628 - jrun.serverstore file can become inaccurate if JRun servers and web servers are being restarted frequently.
  • 54629 - jrun.serverstore will not re-initialize after start-up. This causes the web server connector to have inaccurate data if some cluster members are down when the connector starts up.
  • 52732 - Failover is unpredictable when hardware failure occurs (network outage, etc).

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.