Home / Products / JRun / Support / Release Notes Icon or Spacer
JRun Icon Macromedia JRun Support Center : Release Notes
JRun 4 Service Pack 1a Release Notes

JRun 4 Service Pack 1a for Windows®, UNIX™, and Linux™

Last Updated June 29, 2004

These Release Notes contain the following information about JRun 4 Service Pack 1a:

Click here to view Release Notes for the base JRun 4 release.

JRun Known Issues is a separate document, available at


The JRun 4 Service Pack 1a upgrades JRun 4 and JRun 4 SP1 installations. It includes all the SP1 updates. You are not required to install SP1 before installing SP1a.

Product editions

JRun 4 SP1a is an update to JRun 4 SP1 and JRun 4. It includes updated DataDirect JDBC drivers.

An updated SDK is available for OEMs from the Macromedia website.

Service Pack contents

New features and previously undocumented features are described in the JRun Service Pack 1 Guide, a separate document available in the Service Pack install and at


System requirements

  • Memory - 64MB minimum, 128MB recommended
  • Disc Space - 40MB minimum, 80MB recommended
  • Java Runtime Environment - JRE 1.3.x, JRE 1.4.x
Supported operating systems
  • Windows 98/ME/NT/2000/XP
  • Solaris 7,8,9
  • Red Hat Linux 6.2, 7.x
  • SuSE Linux 7.3, 8.0
  • HP-UX 11i
  • IBM AIX 4.3, 5.x
  • Compaq Tru64 5.1 UNIX
Supported platforms for web server connectors

JRun 4 Service Pack 1a supports the following web servers on these platforms:

IIS 4.0
IIS 5.x
Apache 1.3, 2.0
Netscape (iPlanet) 4.0, 6.0
Zeus 3.3.x, 4.x
WinNT 4.0
RedHat Linux 6.2, 7.x    
Solaris 7, 8, 9    
HP-UX 11    
Tru64 v5.1    
IBM AIX 4.3, 5.x    
SuSE Linux 7.3, 8.0  
WinXP (64 bit Itanium)  
RedHat Linux 7.x (64 bit Itanium)    
HP 11i (64 PA_RISC)    

NOTE: For 64 bit HP-UX/PA-RISC, the connector is 32 bit and will deploy but not load in a 64 bit Apache server. Users need to recompile the connector manually on the 64 bit system for 64 bit Apache.

Installation procedure

Upgrade installation

The Macromedia JRun 4 Updater upgrades an existing JRun 4 installation. Before running the Macromedia JRun 4 Updater to install JRun 4 Service Pack 1a, perform the following steps:

  • Stop all JRun 4 services on your computer.
  • Note the location of your JRun 4 installation root directory (for example, c:\jrun4).

To upgrade your JRun 4 installation with the Service Pack:

  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 Service Pack 1a creates a directory, sp-backup, containing a copy of all the files that the Service Pack overwrites.

Full installation

For a full installation of JRun 4, containing Service Pack 1a, follow the JRun 4 installation procedure at:

Note: If you uninstall JRun 4 before performing a full install and you have installed any patches, be sure to delete jrun_root/servers/lib/jrun-patch.jar after running the uninstall. Failure to remove jrun-patch.jar in this situation can cause server startup problems. JRun 4 Service Pack 1a includes the SP1 updates and all pre-SP1 patches.

New features

The JRun Service Pack includes the following new features:

EJB enhancements
  • New CMP store manager that lets you access existing tables through CMP 2.0 entity beans.
  • EJB interceptors: Service Pack 1a includes an extension of the EJB architecture that lets advanced users define custom interceptors.
  • Enhanced EJB metrics.
JNDI security enhancements
  • A new security scheme that prevents unauthorized access to objects accessible through the JRun JNDI context, including EJBs, data sources, clusterable JRun services, and JMS objects.
  • An interface you can use to customize your own JNDI security. You can use custom connection filtering to apply more granular control over the host-based authentication that the file allows, or you can extend it to include custom logic of your own.
  • Service Pack 1a supports server-specific login and limits access to servers from the JMC.
Other security enhancements
  • Service Pack 1a supports custom principals and using JRun 3.1 custom security implementations.
Data source enhancements
  • Service Pack 1a supports the passing of additional data source connection arguments.
  • Additional database vendor support for CMP1.1 and CMP2.0 (PostgreSQL and mySQL).
  • Includes new JDBC metrics.
Web Server Configuration tool
  • Apache 2.0.40 web server is now supported (and required) by the Apache web server connector.
  • Includes support for Solaris 9.
  • Supports custom load-balancing implementations.
  • Includes enhancements that let you customize XDoclet features.
Web services
  • Includes a new web services implementation, using Apache Axis 1.0 RC1.
  • Fully JAX-RPC compliant.
Updated DataDirect drivers
  • Includes updated JDBC drivers.
Enterprise Deployment Wizard

The Enterprise Deployment Wizard includes the following new functionality:

  • Improved CMP 2.0 support.
  • Generates web services from EJBs.
  • View Project files.
  • Compiles EJB class files.
  • Integrates with IntelliJ IDEA 3.0, JBuilder 6, and JBuilder 7.
  • Revised user interface.
  • Enhanced online Help that contains how-to topics for many common tasks, including step-by-step instructions for compiling, assembling, packaging, and deploying EJBs.

For more information, see JRun Service Pack 1 Guide accessible from jrun_root/docs/dochome.htm or at

Other features
  • Service Pack 1a includes custom ant tasks for start/stop, deploy/redeploy/undeploy, and access to JRun services through JMX. For more information, see the ant documentation at jrun_root/docs/ant/jrun.html.

Resolved issues

JRun 4 Service Pack 1a includes the following fixed bugs:

  • 37715 - You can now deploy across a cluster to a server that is not set up to resolve the IP address to the server name (for example, no entry in the /etc/hosts file on UNIX).
  • 37730 - Fixed a problem with transactions not being processed in certain high-volume situations.
  • 39093 - Fixed a problem with rolled-back transactions in certain high-volume situations.
  • 39404 - Fixed a problem forwarding from a JSP to a previously uncompiled JSP.
  • 39501 - The JMC now enables the proxy service for a server added to a cluster that is using connectors. If you create a cluster in which one or more servers are using connectors, the JMC alerts you to configure the connector to refer to the cluster, rather than the individual servers.
  • 39734 - On startup, the JRun installer now creates the jrun_root/logs directory before a JRun service starts.
  • 44389 - The samples server PointBase service now successfully starts the databases when using JDK 1.4.x on Windows 2000.
  • 44614 - Specifying the JMS client-jndi provider-url in the jrun-jms.xml file is now optional and not included in the server template. By default, it uses the JRun server JNDI provider.
  • 44649 - JRunConfig settings are now written in the Apache httpd.conf file, so the LoadModule appears before any VirtualHosts settings in the file.
  • 44777 - If you install a web server connector for a cluster of JRun servers with a local web server on the localhost computer, all the servers in the cluster are added using their IP addresses. If there is a file, it has the computer IP address for each JRun server.
  • 44859 - EJB custom primary key classes for entity beans no longer must be in the system classpath for remote invocations.
  • 45616 - In session.setAttribute, passing a null value to setAttribute has the same effect as calling removeAttribute.
  • 45675 - You get an error message if a Java compiler is not in the executable search path when JRun starts. You can resolve this by adding the JDK's bin directory to your path environment variable.
  • 45729 - JRun now dynamically reloads JSP and servlet helper classes when modified.
  • 45732 - JRun 4 Service Pack 1a includes a new CMP store manager (the JRun component that manages CMP persistence) that lets you access existing tables through CMP 2.0 entity beans. For more information, see JRun Service Pack 1 Guide.
  • 45900 - In some high-volume situations, the IIS connector DLL produced an access violation with very large headers or URLs. This has been fixed.
  • 45936 - JRunStatement.execute(sqlString) now calls statement.execute and examines the result when deciding whether to populate JRunResult, depending on the native-results flag.
  • 45950 - You can use JBuilder 6 with the Enterprise Deployment Wizard.
  • 46026 - The JMS now correctly handles queues of more than five messages.
  • 46059 - When creating a data source using the JMC, the Oracle 8 OCI URL was listed incorrectly. It now reads "".
  • 46148 - The EJB container no longer calls setEntityContext and ejbActivate for each method call.
  • 46190 - JRun correctly handles whitespace surrounding a numeric value.
  • 46243 - JRun correctly handles query strings when using getRequestURI with getRequestDispatcher.
  • 46286 - Fixed a JRun 4 security issue.
  • 46300 - The Web Server Configuration tool can now display all existing IIS websites.
  • 46328 - Debug is set to false in the TwoFish algorithm.
  • 46394 - Fixed session swapping so that JRun maintains a fixed number of sessions in memory and saves the rest (oldest) in the persistence store (file, JDBC, or custom class).
  • 46424 - Apache 2.0.40 web server is now supported (and required) by the Apache connector.
  • 46449 - Fixed problems with prepareCall method and CallableStatements.
  • 46506 - Fixed the data source skimmer-frequency to evaluate and add connections, as appropriate.
  • 46560 - Fixed a JRun 4 security issue.
  • 46562 - Fixed a potential logfile and .ini file disclosure issue.
  • 46580 - Fixed the problem of jsp:param not being able to handle a primitive value (int, double, long).
  • 46594 - Fixed a problem with RequestDispatcher.forward(new HttpServletRequestWrapper(req), res).
  • 46599 - Inner class on JSP pages now work correctly.
  • 46603 - You can now use a custom authentication class with a custom principal. For more information, see the JRun Service Pack1Guide.
  • 46668 - For updating web server connectors, JRun 4 Service Pack 1 adds a command line switch to upgrade a single website with the latest connector and one to upgrade all connectors. If the installed connector is the the same or newer than the connector in the wsconfig.jar, it is not upgraded. For more information, see JRun Service Pack 1 Guide.
  • 46689 - The Web Server Configuration tool now works with Apache StrongHold.
  • 46691 - Apache 1.3 and 2.0 can resolve servlet URL mappings that differ only by a trailing slash (/).
  • 46706 - Under certain conditions, a heap overflow occurred with the IIS connector. This has been fixed.
  • 46733 - Setting verbose=false (default) in the jrun.ini still outputs logging and failures to the jrun connector logs when using the IIS / ISAPI filter.
  • 46772 - Fixed errors in Apache Stronghold configuration.
  • 46813 - When using getBoolean on a bit column, it now correctly returns FALSE if the bit is 0, and TRUE if the bit is 1.
  • 46818 - You can now create and edit a local-only EJB using the EJB Deployment Wizard.
  • 46841 - The EJB Deployment Wizard now correctly generates code for LocalHome and Local interfaces.
  • 46855 - You can now call a servlet defined in the web.xml file, by passing in a JSP or a servlet class.
  • 47076 - Fixed session context information (caller principal) passed to session beans.
  • 47133 - You can now configure additional properties for the data source connection. For more information, see JRun Service Pack 1 Guide.
  • 47145 - Fixed the log viewer to escape angle bracket (<>) characters.
  • 47150 - Security authentication and authorization fixes for Flash Remoting MX.
  • 47239 - Under certain conditions, JRun erroneously created a directory when a JSP page was requested. This has been fixed.
  • 47480 - Enhanced entity bean performance with commit transactions.
  • 47481 - The EJB container no longer calls setEntityContext every time ejbFindByPrimaryKey is called.
  • 47524 - Fixed the problem of bypassing web application security, when security is set for *.jsp extension.
  • 47542 - Fixed the problem with load-system-classes-first not working correctly for getResource(s) calls.
  • 47558 - Enhanced JDBC metrics logging. For more information, see the JRun Service Pack 1 Guide.
  • 47577 - When using the Enterprise Deployment Wizard to create CMP, the get and set methods of generated code now throw RemoteException.
  • 47618 - The EJB Deployment Wizard now correctly generates resource-ref information in the jrun-ejb-jar.xml file.
  • 47724 - Settings for some JavaMail properties of individual mail session resources (configured in the jrun-resources.xml file) now overwrite the default settings for those properties (configured in jrun.xml).
  • 48010 - (SP1a) The statement.setMaxRows() was not returning the full ResultSet. This has been fixed with updated JDBC drivers.
  • 48585 - (SP1a) Stored procedures with a parameter were throwing java.sql.SQLException exceptions. This has been fixed with updated JDBC drivers.
  • 48626 - (SP1a) Pooled prepared statements were failing under load. JRun would return "Object has been closed" or "No more data available to read" errors. This has been fixed with updated JDBC drivers.
  • 48644 - (SP1a) Database performance has been increased.

Other SP1a changes, additions, and notes

The following lists describes late-breaking changes, additions, and other information:

  • Existing CMP 2.0 entity beans—If you deployed CMP 2.0 entity beans with the JRun 4 base release, you must remove the automatically generated tables before accessing the beans through the SP1 store manager. To remove the tables, use the InitDatabase utility, described in JRun Programmer’s Guide. To continue accessing the existing tables, use the Greylock store manager, described in JRun SP1 Guide. In particular, if you ever started the JRun 4 samples server, tables were created for the CMP 2.0 entity bean example. You must remove these auto-generated tables before using the CMP 2.0 examples with JRun 4 SP1.
  • ColdFusion MX for JRun 4—If you are running ColdFusion MX for J2EE on top of JRun 4 SP1, you must resolve the conflict between Axis engines by performing the following steps:
    1. Add the following top-level element to the cfusion/WEB-INF/jrun-web.xml file (note that this change disables web service support for JSPs and servlets within the coldfusion web application):
    2. Specify false for the load-system-classes-first element in the cfusion/WEB-INF/jrun-web.xml file.
    3. In the JRun server that runs ColdFusion MX, disable web services for the default application by specifing false for the enable-jrun-web-services element in default-ear/default-war/WEB-INF/jrun-web.xml or delete the default-ear/default-war/WEB-INF/server-config.wsdd file.
    4. Delete jrun_root/servers/lib/jrun_axis.jar or move it to a location outside of JRun. This JAR file addressed issues that are fixed in JRun 4 SP1 and will cause server startup problems if allowed to remain in servers/lib.
  • Using the JMC with JNDI security—The JMC allows limited access to JRun servers that disallow guest access. Regardless of guest access specifications, you can use the JMC to start a server, view server status, and perform offline administration. If you use the JMC to stop a server that disallows guest access, you will be prompted for a user name and password before stopping the server.
  • Using the launcher with JNDI security—To use the launcher to manage a JRun server, the server must either allow guest access or include credentials in SERVER-INF/ that allow JNDI lookups of jrun:service/JRunAdminService, jrun:service/JRunServer and jrun:service/<server></server>/JRunAdminService. To specify credentials in add<user-name> and<password>. If the launcher does not have permission to manage the server, it will display a server status of N/A, and the start, stop, and restart buttons will be disabled when the server is selected.

To use the command line to stop or restart a server that disallows guest access, either specify credentials in or use the following new syntax:
jrun stop|restart server [server, ...] -username <username> -password <password>