JRun Release Notes

JRun 4 Updater 4

For Windows®, UNIX™, Linux™, and MacOSX™

Release Notes

Last Updated September 7, 2004

These Release Notes describe issues that have been resolved in Macromedia JRun 4 Updater 4 and contains the following information:

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


JRun 4 Updater 4 upgrades any existing JRun 4 installation (with or without Service Packs or prior Updaters).

Before running the Macromedia JRun 4 Updater 4 release, perform the following steps:

  1. Ensure that the default JDK installed on the system is version 1.3 or later (required by the installer).
  2. Stop all JRun 4 services. If you do not stop all JRun processes, the installation can fail. To determine if JRun services are still running:
    • On UNIX and Linux, view processes by entering the ps -ef or similar command. Stop any remaining JRun processes.
    • In Windows, press Control + Alt + Delete, and then 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.
  3. On the Processes tab, stop any remaining JRun processes. If JRun servers are installed as Windows services, stop them using the Services Control Panel.
  4. Stop all web servers connected to JRun. If IIS is your web server for JRun, stop the World Wide Web Publishing Service in the Services Control Panel.
  5. Make a note of your JRun 4 installation root directory location (for example, c:\jrun4).
  6. In Windows 2000, Window XP, and Windows 2003, stop the Windows Management Instrumentation Service to avoid locking some DLLs that the Updater will replace in {jrun.home}/bin.
  7. In Windows XP and Windows 2003, if you uninstall JRun prior to running the Updater, you must manually delete the following registry key or any full product or updater installation will fail:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\955648EA1E7DC4D4FA99677EE7413103]"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 4:

  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. Some versions of Linux might require you to manually install the web server connector. For more information, see issue 50586 in JRun Known Issues.


  • JRun 4 Updater 4 creates a directory, {jrunroot}/updater4-backup, that contains a copy of all the files that the Updater overwrites.
  • For Mac OSX users, run the .bin from a shell. Stuffit cannot unpack this .bin and generates the following message: "Archive was compressed with an unknown compression method"


The JRun 4 Updater 4 includes the following enhancements:

  • Updated JDBC drivers - JRun 4 Updater 4 kit includes version 3.3 build 31 of the JRun JDBC drivers.
  • Connectors - Performance enhancements and improvements, especially for Microsoft IIS 6.0.  SunOne 6.1 SP2 is now supported.  For NSAPI, the following platforms are currently supported:
    • iPlanet 4.1 (NSAPI version 3.0)
    • iPlanet 6.0 (NSAPI version 3.1)
    • Netscape Enterprise Server 6.0 (NSAPI version 3.1)
    • Netscape Enterprise Server 6.1 (NSAPI version 3.1)
    • Sun One Web Server 6.1 (NSAPI version 3.2)
    For instructions on upgrading existing installations using NSAPI (IPlanet, Netscape, SunOne) connectors, see the Web Server Connectors section.
  • Windows support - JRun supports Windows 2003 and IIS 6 since Updater 3.
  • Apache support - JRun supports Apache versions 1.3.2x-1.3.31, and Apache versions 2.043-2.050. Users with older versions of Apache 2.x must upgrade Apache before installing JRun 4 Updater 4. On Redhat 8 and Redhat AS2.1, Apache 1.3.x is supported if you are using the Apache rpm.
  • Linux support - JRun 4 is now supported on RedHat 8, Redhat AS2.1 and AS3.0, and Novell Suse Linux 8.0.
  • Clustering - Server performance enhancements have improved load balancing and failover in clusters.
  • JavaMail and JAF update - JRun 4 now uses JavaMail version 1.3.1 and JAF 1.0.2.

Resolved issues in this release

The JRun 4 Updater 4 includes the following fixed bugs.

Built-in JDBC database drivers

Updater 3 contained an update to the original Updater 2 version 3.2 JDBC macromedia_drivers.jar database drivers.  The Updater 3 drivers solved several problems. The JRun 4 Updater 4 includes additional fixes to the Updater 3 driver pack, which is now 3.3 build 31. 


  • 54831, 55217 - Oracle clob hangs when there is a trailing null in the clob. (NLS_Characterset UTF8)
  • 55313 - An incorrectly registered output param causes a Net8 Protocol error.
  • 54994 - Drivers return 16 bytes for char(8) on Oracle. (NLS_Characterset JA16SJIS)
  • 55605 - Cannot insert Japanese characters into a clob column. (NLS_Characterset UTF8)
  • 55308 - There is a 2K limit for a LONG returned from a stored procedure. (32K now)

SQL Server

  • 51266 - Terse "No more data available to read" error thrown by database driver when connections max'd out on SQL Server.  The new message is:  "[Macromedia][SQLServer JDBC Driver]A problem occurred when attempting to contact the server (Server returned: Connection reset)."


  • 54536 - JRun is unable to connect to a DB2 database using Chinese Cp1114 encoding.

All Databases

  • 54826 - An ArrayIndexOutOfBounds message appears if columns are not specified in an INSERT statement.

Web Server Connectors

SunOne, Netscape, and IPlanet connectors

The NSAPI modules now use the latest libraries.  Individual modules based on different versions have been consolidated into one module for each major platform.  UNIX and Linux modules are The Windows module is jrun_nsapi.dll.

The Updater 4 installation does not upgrade the connector module. After installation, you must manually uninstall and reinstall NSAPI modules using the Web Server Configuration Tool (wsconfig.jar) to update the connector.  

  • 56697 - Support for the latest SunOne web server: SunOne 6.1 SP2. Multiple NSAPI connectors were consolidated into one connector: or jrun_nsapi.dll.
  • 55695 - Memory leak with SSL and ISAPI.
  • 54985 - Mappings for .swf, .mxml, .and crf filenames were added during connector configuration for ColdFusion 7 and Flex integration.
  • 54150 - There are IIS 6.0 access control problems when writing to the jrun connector logs in /wsconfig/ or the For example:

    jrISAPI[6512:4552] could not open "C:/JRun4/lib/wsconfig/1/ : Permission denied

  • 53703 - Connector configuration completes for Apache for RHAS 3.0, but recognizes it as RH 7 or earlier. Apache does not respond after installing.
  • 54190 - Apache connector does not load on Mac OS X 10.3. Apache error log shows:
Cannot load /Applications/JRUN4/lib/wsconfig/1/ into server: dyld: /Applications/apache2048/bin/httpd Undefined symbols: dyld_stub_binding_helper
  • 56506 - IIS 6.0. ERRORURL is supported in lib\wsconfig\jrun_iis6.ini.  The user must create this file.  ErrorURL shows a customized server error page on startup when JRun is down; for example, errorurl=http://localhost/servernotavailable.html.


  • 44972 - Enhancement (as of Updater 3). JRun is installed as a Windows service. The jrunsvc.exe [-starttimeout] [-stoptimeout] parameters added.

    After a power outage or cold reboot (in past releases) the JRun server could take too long to start causing the service to prevent the JRun server from starting. Users can adjust the Windows service threshold for server start and stop times before the service throws an error (Service-specific error 2). The current defaults are 4 minutes (240 seconds - for server start) and 2 minutes (120 seconds -for server stop). The new feature works for ColdFusion MX 6.1 or later or JRun 4 build 73557 or later. The following is a command-line example:

    jrunsvc -starttimeout 300 "Macromedia JRun Default Server".

  • For a list of JRun server command-line options, see the command line jrunsvc help. (jrunsvc --help)

    For more information, see TechNote 18799.

  • 47375 - The -norestart switch was added to jrunsvc.exe to provide the same behavior for the JRun 4 server as with JRun 3.1 (no restart on failure). The default behavior is to automatically restart on failure. With Windows 2000 and later, the user can use the Recovery tab in the Windows service to control server restart. The following is a command-line example:

    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.   When starting and stopping remote servers through the JMC, do not use Windows services unless all the servers are installed in the Control Panel with the [-norestart] switch.   The Windows service startup type is set to  automatic by default, which means a reboot restarts server without using the JMC.

  • 55681 - Updater 3 regression.  A request sent to application before it is fully deployed (for example, during startup) causes the deployment to fail.
  • 52346 - The jrun -stop command uses the maximum heap size (-Xmx) from jvm.config. This command can hang memory-limited or loaded systems when trying to stop the JRun process.
  • 55263 - The system.out took 10 times longer in JRun 4 (10 sec) than in JRun 3 (1 sec) (2000 lines written).
  • 49452 - Japanese characters displayed as MojiBake in Netscape browsers.
  • 55803 - The JRun service (jrunsvc) stop process ends the JRun server too soon, which breaks session persistence U2->U3 regression). The jrunsvc stops the server after 10 seconds rather than waiting for the stop timeout.  This issue only occurred in Windows when using JRun as a service.
  • 55700 - The expires attribute of the ColdFusion CFCOOKIE tag did not work properly. Cookie expiration time was not set up correctly, which affected JRun. Cookie.setMaxAge() was using an old Calendar object.
  • 53346 - Explicit system.gc() is removed in objectpool. This could cause the server to hang when using certain jrun-resources.xml settings.
  • 55725 - The JRun server becomes unresponsive when the number of WebService (JRun Web Server) threads (web-xx) reaches zero.
  • 50753 - The "Port already in use" error appears when you start a newly created server using the same port number as an existing server with different IP address.  JNDI binds to all IPs on the machine even though you specify an IP address and port when defining a new server.
  • 56800 - JavaMail is updated to version 1.3.1 and JAF (javax.activation) to version 1.0.2.
  • 55768 - Wildcards that are used in virtual mappings for <resource-path> in jrun-web.xml cause the FIRST one of a certain length to be ignored; for example,
<resource-path>/cftest1/*</resource-path> // ignored
  • 55438 - A memory leak in jspInit() was found when using reload=true in jrun-web.xml.  This affected performance because JRun reloads the servlet every 1500 ms. This was not an issue for development environments. The following message was added to system.out file during startup for production applications:

    "web application has 'reload' as true in jrun-web.xml. Consider setting it false if the application is running in production environment

  • 55439 - The jspDestroy() method (which destroys the earlier servlet) was not getting called when reload=true in the jrun-web.xml. This performance issue is related to 55438 and could cause a memory leak.
  • 56311 -  A nested custom tag using the TagExtraInfo implementation threw the following compilation error: "duplicate declaration of local variable".
  • 48589 - The JMC "Check for Updates" button is fixed.
  • 52853 - When locks are not released in the database, transactional applications hang.
  • 53422 - JVM deadlock occurs between TransactionImpl and TransactionManagerImpl because both are waiting for each other.
  • 56900 - JMC shows the encoded server name when using a remote server registration with an IP address.
  • 55829 - To avoid requests that time out prematurely, threadWaitTimeout is set to 300 (from 20) for all existing servers (by the Updater) for ProxyService and WebService. The jrun4/servers/ jrun.xml is also updated for newly created servers.
  • 56262 - jrun.xml optimizations. SchedulerService defaults were added to prevent the server from hanging with specific types of applications.  If no settings exist, it adds them; otherwise, it reads the existing values and ensures that they do not violate any internal rules. The following table lists the old and new defaults.
Parameter Name Old Default New Default
MaxHandlerThreads 20 500
MinHandlerThreads 1 20
ActiveHandlerThreads 10 25
ThreadWaitTimeout 20 180

Connection pooling

  • 53486 - JRun loops for 30 seconds (30 attempts) trying to get a connection from pool. This looping affects connection-limited data sources - jrun-resources.xml <maximum-size>.   The old default was 10.

Connection-limited data sources
JRun and ColdFusionMX users who are using JRun pooling (for data sources that were entered in the JRun Management Console) can set the <maximum-soft> attribute to false for the data source in jrun-resources.xml. This attribute forces the pool to respect the <maximum-size> setting. Otherwise, the connection pool can push the database limit under load.  For more information on data source settings, see JRun Administrator's Guide.


Clustering and failover has been improved in Updater 4. Users should apply Updater 4 to all JRun installations in a cluster. Running different versions of the Updaters simultaneously is not supported. The following issues have been resolved in JRun Updater 4:

  • 50179 - The JRun connector doesn't immediately detect a remote server that is stopped.
  • 54628 - The jrun.serverstore file can become inaccurate if JRun servers and web servers are being restarted frequently.
  • 54629 - The jrun.serverstore does not re-initialize after startup. This can cause the web server connector to have inaccurate data if any cluster members are down when the connector starts up.
  • 52732 - Failover is unpredictable when hardware failures (such as a network outage) occur.


  • 56674 - When a null is passed to the findByPrimaryKey, an illegalArgumentException is thrown instead of a FinderException.

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.