August 2002

Crystal Enterprise Java SDK: Release Notes

Welcome to the Crystal Enterprise 8.5 Java SDK, a functional set of Java interfaces designed to work with the Crystal Enterprise system. This Java SDK can be deployed on MS WindowsTM, Sun SolarisTM or IBM AIXTM operating environments and provides developer features which include:

For those organizations that need to integrate CE functionality with their existing server-based Java applications, the CE 8.5 Java SDK offers a seamless and flexible solution.

 


Contents

Installation 
    Supported Platforms
    Notes
Notes and Limitations


The notes contained in this document cover important information pertaining to this release of the Crystal Enterprise 8.5 Java SDK. This includes installation notes, details regarding issues that are known to exist with this release, and important information for existing Crystal Decisions customers.


Please read the entire document before performing the Crystal Enterprise 8.5 Java SDK install and be sure to visit the Crystal Enterprise support web site at http://support.crystaldecisions.com/whatsnew for any additional notes and information that may become available following the release of this document. 


 

Installation

 

Supported Platforms

 

The following tables detail the platform support available for the CE 8.5 Java SDK.

Application Server

Operating System

BEA WebLogic 6.1 SP1

 

 

 

Windows NT 4 Server SP6a

Windows 2000 Server SP2

Solaris 7*

Solaris 8

AIX Version 4.3.3
AIX 5L Version 5.1
IBM WebSphere 3.5.2* or 4.03

 

 

Windows NT 4 Server SP6a
Windows 2000 Server SP2

Solaris 7*

Solaris 8
AIX Version 4.3.3

AIX 5L Version 5.1

Apache Tomcat 4.x* (for development only) Windows NT 4 Server SP6a 
Windows 2000 Server SP2 

 

Operating System

Web Browser

Windows

 

 

 

Internet Explorer 6 
Internet Explorer 5.5 SP2
Netscape 6.2
Netscape 4.78

Solaris

Netscape 6.2

Netscape 4.78

 

* Limited testing occurred on this platform.

Notes:

 


Notes and Limitations

//DISPLAY EXPORT ICONS
String jsession = ExamplesUtil.getCookieValue(request.getCookies(), "JSESSIONID");

out.write("<td align='right'>");

out.write("&nbsp;&nbsp;<a href='exportreport?format=MSWord&errorpage=" + WebDemoUtil.ERROR_PAGE + "&sessionexpiredpage=" + WebDemoUtil.LOGON_PAGE + "&id=" + toViewID+ "&JSESSIONID=" + jsession + "'; target='main'><IMG border='0' SRC='"+ExamplesUtil.getLinkPath(request)+"images/word16.gif' height=16 width=16></a>");

out.write("&nbsp;&nbsp;<a href='exportreport?format=MSExcel&errorpage=" + WebDemoUtil.ERROR_PAGE + "&sessionexpiredpage=" + WebDemoUtil.LOGON_PAGE + "&id=" + toViewID+ "&JSESSIONID=" + jsession + "'; target='main'><IMG border='0' SRC='"+ExamplesUtil.getLinkPath(request)+"images/excel16.gif' height=16 width=16></a>");

On WebLogic:

Add the following character set in the
web.xml file:

<context-param>
     <param-name>weblogic.httpd.inputCharset./*</param-name>
     <param-value>utf-8</param-value>
</context-param>

On WebSphere 4.0:

Users will need to modify the file "
properties/encoding.properties", located in the WAS_ROOT directory. Configure the file to match the encoding for the desired locale. (i.e. To use UTF-8 for any locale, set the file content as: en=UTF-8 fr=UTF-8

Note: When running WebSphere 4.0 on Solaris or AIX, users will also need to make sure that the user locale is set to a UTF-8 based locale before starting the application server.

On Tomcat:

Add the following line to the servlet or JSP after the response content type has been set and before any calls to
request.getParameter:

            request.setCharacterEncoding(response.getCharacterEncoding());

When deploying the WebExamples application on WebLogic, it will be necessary to configure a WebLogic specific deployment descriptor in order to set the cookie path of the JSESSIONID cookie used by WebLogic to track user sessions. 

If the cookie path for the
JSESSIONID cookie is not set (thereby defaulting to ‘/’), the application server will fail to store session objects once the user’s session has expired and the browser closed. (i.e. The session objects would be created for any subsequent user access will not be stored by the application server.)

In this scenario, users will need to delete all cookies on the browser to avoid session tracking errors that may result in an unwarranted increase to the Crystal Enterprise user session count. (This may lead to licensing issues.) Please refer to WebLogic documentation for details on how to configure WebLogic.

Note:

Even after following the procedure above to ensure that a valid cookie path for the
JSESSIONID cookie is set, this issue is known to persist on Netscape 6.x. When using Netscape 6.x browsers, users will need to clear the browser’s cookie store in order for the sample applications to function properly.

With some deployment and configuration combinations, Broken Pipe or Socket exceptions may occur when viewing reports. These exceptions do not interfere with normal viewing operations and are commonly observed in web applications that utilize Servlet technology. In the case of WebLogic, the appearance of these exceptions indicates that the application server has detected (and recovered from) an interrupted HTTP request.

java.lang.OutOfMemoryError <<no stack trace available>>

This error is generated as a result of not having enough space in the JVM heap's "young generation". (For an explanation of the Hotspot heap generations, please refer to the Sun web site at http://java.sun.com/docs/hotspot/gc/index.html.)

To increase the size of this part of the heap, use the "NewSize" and "MaxNewSize" options as described in the JVM documentation (http://java.sun.com/docs/hotspot/VMOptions.html). Testing has shown that a "young generation" size of 128MB is adequate for viewing with 100 concurrent users, but results may vary and tuning may be necessary to determine the optimal value for each deployment.

If increasing the size of the "young generation" is not an option, it is possible to serialize image conversion. To change the number of image conversion threads, set the Java system property: "
crystal_image_converters" to an integer value. The default value is 4. (Note: This approach is strongly discouraged as it will negatively impact the performance of the system.)

crystal.enterprise.trace.configuration

For example, from Java code:

System.setProperty("crystal.enterprise.trace.configuration", "verbose");

Alternatively, the SDK can configure Log4J using a configuration that users provide. Users can pass the URL of a configuration file to the SDK using the crystal.enterprise.trace.configuration property. This file will be loaded using Log4J's “PropertyConfigurator”. Refer to the Log4J documentation for more information regarding the format of this configuration file. 

If your application already configures Log4J, you can tell the SDK to use your existing configuration by setting the system property
crystal.enterprise.trace.override to true. The SDK's logging uses a Log4J naming hierarchy under com.crystaldecisions, so it is possible to add logging settings specific to the SDK in your own configuration file.

Finally, note that it is possible to tell the SDK to not use Log4J at all by setting the system property.


© 2002 Crystal Decisions Inc.