Release Notes for Pramati Server 5.0


This document provides a snapshot of the latest features that have been added to Pramati Server in this release, along with all the enhancements and modifications made to the product.

Version                     | Release Notes | Platform Certification
Server 5.0 SP4            | Release Notes   | Platform Certification
Server 5.0 SP3            | Release Notes   | Platform Certification
Server 5.0 SP2            | Release Notes   | Platform Certification
Server 5.0 SP1            | Release Notes   | Platform Certification
Server 5.0 GA Release  | You are here!   | Platform Certification

EJB

[TOP]

Key Bug Fixes

Fix forDescriptionServer Configuration ImpactApplication Behaviour Impact

Non-transactional CMP bean load

In the earlier versions of Server, when a container managed persistence bean is invoked without any incoming transaction, bean is loaded without any transaction context. The consequence of which in the case of Isolation level Repeatable Read Non-Exclusive is ORA-01002: Fetch Out of Sequence exception with Oracle 8i Database.

No Impact.

Applications that access the CMP bean without Session facade would see entity bean's load within the right transaction context unlike the earlier non-transactional load.

NPE while passivating SFSB that has reference to another SFSB in Cluster

While passivating a SFSB, an ejbPassivate() callback is given on the referent bean which may not be associated with a bean instance. The ejbPassivate() callback is not required for the referent bean while passivating the referee SFSB.

No Impact.

No Impact.

NPE while setting cmp-field mapped
to Blob to null

When a cmp-field that is mapped to a Blob column in the database is set to null, a ByteArrayInputStream is created with null bytes which would result in this Error. This has been fixed.

No Impact.

No Impact.

State replication of SFSB that has reference to another SFSB in Cluster

State replication of the referent SFSB from a referring SFSB has been implemented in Cluster. This includes fix for replication state of a referent EJBObject or EJBLocalObject within an SFSB.

No Impact.

No Impact.


New Features and Enhancements

FeatureDescriptionServer Configuration ImpactApplication Configuration Impact

Better deadlock detection for Requires New transactions

Entity Beans with pessimistic locking, that is, BMP and CMP RR Exclusive do not support Requires New transactions on re-entrant calls. When such a call is made at runtime, a DeadlockException is thrown.
Entity Beans with optimistic locking, that is, No lock BMP and CMP with ORR, RC or RO Isolation levels support Requires New transactions on re-entrant calls.

No Impact.

No Impact.

Finder Preloading

Finder Preloading is now supported for all isolation levels of CMP Entity beans.

No Impact.

No Impact.

Relationship Preloading

Provided option for preloading target bean's state when a relationship is accessed. Preloading of Container Managed Relationships minimizes the database round trips for relationship access, hence improving their performance.

No Impact.

A new tag cmr-fields-to-preload has been added to pramati-or-map.xml to enable cmr preloading. This can also be configured through Deploy Tool. A new CMR Preloading panel would be shown when a CMP2.0 bean with relationships is opened in Deploy Tool. Relationships to be preloaded can be selected here. By default, Preloading is disabled for all CMRs.

Clustered Timer Service

The EJB 2.1 Timer Service has been implemeted to be used on the clustered EJB container. The clustered timer service is implemented with database-based persistence. Timers even survive if all the nodes in the cluster go down. Later when one of then comes up, the timer would be re-created.

By default the Timer Service in cluster is disabled. If disabled, the clustered EJB container would fail deployment of beans that implement javax.ejb.TimedObject interface. It can be enabled while creating the cluster/modifying the cluster-config.xml.
A new tag ejb-timer-service has been added to cluster-config.xml. The datasource-name and table-name for timer persistence are also to be specified. The same can be specified while creating the cluster through NodeCreator utility or Pramati Server Administration Service.


No Impact.

Free pool options

The bean free pool is enabled by default for Stateless Session beans and CMP Entity beans.

The default behaviour of enabling/disabling free pool can be configured though new EJB Service properties added in server-config.xml. The properties are enable-freepool-for-stateless, enable-freepool-for-bmp, and enable-freepool-for-cmp.

The enable-freepool tags in the application pramati-j2ee-xml override the server defaults.

Configurable Timer Threads

EJB Timer Service tasks would be executed by dedicated threads. The number of such dedicated threads is configurable. These threads are for the entire EJB Container and not per application.

Maximum timer threads are configurable though the EJB service property max-timer-threads in server-config.xml.

No Impact.

Faster deployment process

The deploymemt phase has been improved to minimize the deployment time to a large extent.

No Impact.

No Impact.


Web

[TOP]

Key bug fixes

Fix ForDescriptionServer Configuration ImpactApplication Configuration Impact

Sometimes an IllegalArgumentException is thrown when checking If-Modified-Since Date Header.

While sending If-Modified-Since HTTP header, the Internet Explorer appends "; length=xxxxx" to the date value being sent. In this case, the Server was throwing an IllegalArgumentException while getting this header. This issue is fixed by being lenient on the If-Modified-Since header and returning a -1, if it is not well formed and introduced a system property com.pramati.web.strictHeaderParsing to retain the old behaviour of throwing IllegalArgumentException.

No Impact.

No Impact.

Application redeployment for bad requests.

In Windows, applications used to get redeployed if the request was of /application_context./ format.

No Impact.

No Impact.

Access-constraints when requests are made through Load Balancer not working as expected.

IP restrictions were not working properly when the requests were being forwarded by LB-node to the backend-node.

No Impact.

No Impact.

Unable to update access-constraints through administration console.

Setting access-constraints through administration console were not getting reflected properly. This has been fixed.

No Impact.

No Impact.

Missing content encoding header when the compression filter is applied in certain scenarios.

Fixed an issue with Compression Filter where the Content-Encoding header was getting lost if Compression Filter is applied for a request on which an included page is flushing the response stream.

No Impact.

No Impact.

Concurrent Modification in HttpSession.getAttributeNames().

Fixed a CuncurrentModificationException whille enumerating through HttpSession.getAttributeNames() and removing an attribute by invoking HttpSession.removeAttribute().

No Impact.

No Impact

Empty auth-constraint giving access to all.

In case of an empty auth-constraint tag in web.xml, the access to the target web resource was provided to Everybody instead of Nobody.

No Impact.

No Impact.

Unable to do ejb-ref lookups when doing forward/include to pages from another application.

During request Forward/Include to another war application, the context and session were not correctly getting set, due to which EJB bindings in the forwarded page, if any, were failing.

No Impact.

No Impact.

ServletContext.getResourcePaths not returning full paths.

Fixed ServletContext.getResourcePaths(String path) to return full paths to the resources as per the Servlet Specification.

No Impact.

No Impact.

JSPs are not refreshed if replaced with older timestamp files.

The server was not correctly picking up a jsp file when replaced with a file having an older timestamp.

No Impact.

No Impact.

CGI applications not working as expected with PHPs.

Fixed the CGI Interceptor to serve PHP pages correctly.

No Impact.

No Impact.


New Features and Enhancements

FeatureDescriptionServer Configuration ImpactApplication Configuration Impact

Configuring default content type in JSPs and static content.

Able to configure the default content type for jsps and static content. For jsps, this can be set using strict-compliance/default-content-type. For static content, this can be done adding a mimeType entry like below:
<mime-mapping>
<extension>_default</extension>
<mime-type>content/unknown</mime-type>
</mime-mapping>

No Impact.No Impact.

Configuring custom servlet to serve static content.

Static pages are served using a servlet. Thus, application developers can have their own implementation for serving static content.

No Impact.No Impact.

Sending custom error page, in case of failure on Load Balancer.

Load Balancer supports configuration of error pages using system properties as com.pramati.web.lb.nonodeerrorfile and com.pramati.web.lb.internalservererrorfile.

No Impact.No Impact.

Disabling HTTP request methods.

Support for disabling HTTP Request methods. A new tag is added in web-config.xml to disable request methods.

No Impact.No Impact.

Persisting intialcontext in HttpSession.

HttpSession supports replication of InitialContext objects and EJBObjects.

No Impact.No Impact.

Failover in Load Balancer.

Better way of handling failOverNodes for Load Balancer.

No Impact.No Impact.

Change in the way virtual host aliasing is done.

Virtual host alias used to be a part of virtualHostName in a ';' separated way. Now alias are added using a new tag: <alias><alias-name/></alias>

alias/alias-name in web-config.xml under each virtual host is used for specifying the alias names.No Impact.

Change in the way Virtual-Directory mapping is handled.

Alias under each virtual host now is for mentioning alias names. alias-directory and alias-name tags under alias for each virtual host are no more used for Virtual Directory mapping. Instead, Virtual Directory mappings can be done using StaticContentServlet.
For example, if there is a mapping like below, and a request URI is http://://videos/mainvideo/hello.mvi, we try serving the static file /home/abc/mno/mainvideo/hello.mvi.

Virtual Directory is handled using static content servlet, unlike by setting in web-config.xml. No Impact.

Some configuration properties moved to default-web.xml from web-config.xml.

Properties like MimeType, DirectoryListing, welcomePages, and StaticHeaders have been moved from web-config.xml to default-web.xml.

No Impact.No Impact.

Filters invoked even if the resource is not found.

The filters to a request URI are invoked even if the target web resource is not found. In this scenario, if the filters are delegating the request to the target Web resource, Not Found (404) will be returned. Usually such filters serve the request completely.

No Impact.No Impact.

Host rules are mandatory in web-lb config.xml.

In web-lb-config.xml, HostRules are mandatory for backend nodes. If a request for a particular host does not match any HostRule, Error (503) is returned, assuming that no node is configured for serving this request.

No Impact.No Impact.

catchAllHostRule in Load Balancer has been changed.

In web-lb-config.xml, the catchAllHostRule is '@' and not '*' from this version of Pramati Server.

No Impact.No Impact.

Case insensitive custom tags.

If JSP Strict parsing is disabled in web-config.xml, the JSP translator decodes JSP Standard and Custom Actions in a case insensitive manner.

No Impact.No Impact.

Known Issues

IssueDescriptionWorkaround

Updating changes to masked-entities through the administration console will not be reflected on runtime.

None.

Restart the Server to reflect the changes.

Deployment of Web applications having same contxt root on two different VHosts is not supported.

None.

None.

While the Server is stopped, if the JSP/Tag File is replaced with a file having timestamp older than the generated class file timestamp, the updated source file won't be picked up on server restart.

None.

None.

If default-web.xml is corrupted, the server startup won't fail, but a SAXException will be logged instead. In this case the default-web.xml is assumed to be empty. This is true, even for the default war application web.xml.

None.

None.

Applications that directly implement ServletResponse/ServletRequest instead of extending ServletResponseWrapper   /ServletRequestWrapper for creating request/response wrappers may not work as expected. Servlet Spec 2.4 mandates that applications should extend only Wrappers instead of directly implementing ServletResponse/ServletRequest.

None.

Use request and response wrappers.


Web Services

[TOP]

New Features and Enhancements

FeatureDescriptionServer Configuration ImpactApplication Configuration Impact

Support for Web Services Interoperability.

The Web Services Engine supports JSR 109 standard-based mechanism for accessing and publishing J2EE components as Web Services. It has a built in UDDI registry that can be accessed using JAX-R APIs.

The server-config.xml now has two new tags: WSContainer and JAXRContainer. The JAXRContainer is disabled by default. To use a UDDI registry, enable it by setting enable to true.

The pramati-j2ee-server_5_0.dtd now has two new tags: service-ref and webservice-desc.


JMS

[TOP]

New Features and Enhancements

FeatureDescriptionServer Configuration ImpactApplication Configuration Impact

MDB Connection retry.

When the MDBs lose a connection to the JMS Server, they automatically try to re-connect to the JMS Server.

No Impact.

No Impact.


J2EE Core/Deployment/ServerUtils

[TOP]

Key Bug Fixes

Fix forDescriptionServer Configuration ImpactApplication Configuration Impact

The shrinking pool goes out of memory, if the validator mode is 2.

Using object validator mode 2 for the shrinking pool used to cause the validator thread go into an infinite loop.

No Impact.

No Impact.

Nodecreator uses the default username and password.

The username/password combination supplied during installation was not being picked up by the node creation code.

No Impact.

No Impact.

Failure of remote deployment of huge archives.

Archives are transferred in small chunks to avoid this problem.

No Impact.

No Impact.

NodeCreator did not recognize relative paths.

There was a StringIndexOutOfBoundsException on giving relative path. The nodecreator now accepts both relative and absolute paths to the topology XMLs.

No Impact.

No Impact.


New Features and Enhancements

FeatureDescriptionServer Configuration ImpactApplication Configuration Impact

Migrator for applications.

If the applications that have their pramati-j2ee-server.xml and pramati-or-map.xml conforming to the 3.5, 3.5 SP 5, and 4.1 dtds have to be run on Pramati Server 5.0, they need to be migrated. The application migrator which is run as a bat file - migrateApp.bat - migrates pramati-j2ee-server.xml and pramati-or-map.xml from the earlier versions to 5.0.

No Impact.

No Impact.

Faster application deployment in clusters.

None.

No Impact.

No Impact.


Known Issues

IssueDescriptionWorkaround

If a cluster is created with Host as localHost, node startup fails.

None.

If a proper IP address is specified, all works fine.

RMI clients communicating with applications deployed on Pramati Server.

None.

Set system property java.endorsed.dirs to value $SERVER_INSTALL_ROOT/lib/std/endorsed.


Resource

[TOP]

Key Bug Fixes

Fix ForDescriptionServer Configuration ImpactApplication Configuration Impact

Monitoring Resources through the administration console when one of the resources is accesed continously did not display the page.

ConcurrentModificationException when accessing Prepare Sttmt statistics.

No Impact.

No Impact.


New Features and Enhancements

FeatureDescriptionServer ConfigurationApplication Configuration

Support for JCA 1.5.

Creating Connection Factories for Resource Adapters is now based on JCA 1.5.

No Impact.No Impact.

Server Administration

[TOP]

Key Bug Fixes

Fix forDescriptionServer Configuration ImpactApplication Configuration Impact

Option to re-use existing Table for persisting server configuration files for a cluster.

Pramati server creates tables in the Database of user choice to persist and share configuration among nodes of cluster. During creation of new clusters, these tables can be re-used if they are existing.

No Impact.No Impact.

Validations of user input during creation of Cluster.

Following invalid cases arising from the user input are detected during cluster creation.
1. Database driver class used cannot be found in the classpath.
2. Using existing Pramati Server nodes as participant nodes in the new cluser.

No Impact.No Impact.

EJB Business method timing Diagnostics measurements to remain faithful to the actual control flow when there is high traffic.

Previously, when Server Diagnostics is turned on and a deployed EJB application is accessed the diagnostic trace contained invalid references to Business method execution times.

No Impact.No Impact.

Diagnostics reports can be saved and transported without any data loss.

Prior to this fix, when a saved Diagnositcs report is loaded details about time taken to execute some actions in server runtime was missing.

No Impact.No Impact.

While creating JDBC Datasource, set transaction participation, transaction isolation levels.

Transaction Participation (true, false); Transaction isolation levels (Read committed, Read un committed etc.) can now be set while creating a JDBC Datasource.

No Impact.No Impact.

"Stop Cluster" does not stop all nodes in the cluster.

From the Administration Console of a Pramati server cluster, stop cluster option stops all constituent nodes of the cluster.

No Impact.No Impact.

New Features and Enhancements

FeatureDescriptionServer Configuration ImpactApplication Configuration Impact

JSR 77 compliant Management and Statistics model.

Pramati Server 5.0 is now JSR 77 Management and Statistics model compliant. Third party tools can be used to connect, monitor, and manage statistics.

No Impact.No Impact.

JSR-160 RMI Connector.

JSR-160 RMI Connector has been bound in Pramati Server Naming with the name as jmxrmi. Now jconsole can connect to Pramati MBean Server using the JMXService URL service:jmx:rmi:///jndi/rmi://localhost:9191/jmxrmi.

No Impact.No Impact.

Known Issues

IssueDescriptionWorkaround

Cannot enable HTTPs of a node from Admin Service.

None.

Edit the web-config.xml using any text-editor and restart the Server.


Security

[TOP]

New Features and Enhancements

FeatureDescriptionServer Configuration ImpactApplication Configuration Impact

Implemented - JACC JSR 115.

The standard way of authorizing J2EE Resources has been implemented using JSR 115. A third party JACC provider can also be plugged into Pramati Server for J2EE Resource Authorization.

A new tag has been added to the security-config.xml file with the tag name jacc-provider that has the following policy-impl-class-name, requires-protection-domain (optional), policy-configuration-factory-impl-class-name, context-creation-level (optional), and role-mapping-impl-class-name.

An application can use its own JACC provider instead of the one that the server provides. For this, the application should package JACC provider along with application classes. The jacc-provider information should be provided in the pramati-j2ee-server.xml file with the tag jacc-provider.



© 2007. Pramati Technologies Private Limited.