July 2002
Welcome to SilverStream extend Director Version 4.0.
These Release Notes include the following sections:
| Installing Director 4.0 | A listing of what is required before starting the Installation Wizard, and a description of the differences between typical and custom installations |
| Software and database requirements | A listing of application servers, operating systems, databases, and browsers supported by this version of SilverStream extend Director |
| What's new in Version 4.0 | A listing of the new features in this version of SilverStream extend Director |
| Getting started | Directions to introductory documentation on using SilverStream extend Director |
| Upgrading existing Director applications | Directions to information about converting SilverStream extend Director 3.0 applications to Version 4.0 |
| Known issues | Descriptions of known problems with this version of SilverStream extend Director, providing workarounds if available |
| Importing and exporting content management data | Notes on best practices for importing and exporting content management data |
| XML/IPDR logging | Information about two new logging providers that have been added to the existing logging system |
This section discusses what you need to consider before running the Installation Wizard.
Before installing SilverStream extend Director 4.0:
If you previously installed a beta version of SilverStream extend Director Version 4.0, do the following before installing this version:
De-install the beta version
De-install SilverStream extend Workbench
Delete the installation directory for Director and Workbench
SilverStream extend Workbench Version 4.0 must already be installed.
If you have not yet installed Workbench 4.0 when you install Director 4.0, the Installation Wizard will install Workbench before continuing with the Director installation.
If you intend to use the Cluster Cache Coordinator feature of Director (which is enabled by default), you must determine what RMI port the Cluster Cache Coordinator will use.
The default RMI port value is 5449.
Have your license string ready.
The Installation Wizard provides two installation options: Typical and Custom. If you choose the typical installation, all features of SilverStream extend Director are installed, including:
If you do not want to install one or more of these components, you can choose the custom installation and omit them.
NOTE: You must use the JDBC2 option with DB2—JDBC1 is not supported
The Getting Started section of the SilverStream extend Director online help provides an overview of Director capabilities, instructions on how to quickly build and deploy a Director application, and links to more information about Director. The Getting Started section includes these topics:
| Welcome | Provides a high-level summary of SilverStream extend Director features and some quick links to introductory information. |
| Where to Begin | Describes the recommended paths to follow in the documentation based on your level of expertise and what you want to know about SilverStream extend Director. |
| Release Notes | Opens these Release Notes. |
| Quick Start | Serves as a primer for experienced J2EE programmers who want to begin using Director immediately. Provides instructions on how to create, deploy, and examine a complete Director application. |
| Help and Documentation | Provides instructions on how to use SilverStream extend Director online help. Also includes SilverStream trademark and copyright information. |
| SilverStream Links | Provides links to the SilverStream home page and the SilverStream DevCenter. |
The Core Development Guide provides a more detailed presentation of Director functionality, architecture, and development environment and processes.
You can convert Director 3.0 applications to Director Version 4.0. For detailed information about planning and procedures required to upgrade existing applications, see the Upgrade Guide. Also see the first four entries in the Director functionality section under Known issues (next).
Director 4.0 known issues are divided into the following sections:
If any Portal WAR in your Director project has one or more JSPs mapped as servlets, the Upgrade Utility will fail. To work around this problem:
In Workbench, open your Director 3.0 project.
Open the web.xml file for the WAR containing the JSPs mapped as servlets. The web.xml file is located in the portalwarname.war\WEB-INF directory of your project.
Click the XML tab to switch to the XML view.
<servlet>
<servlet-name>MyServletName</servlet-name>
<jsp-file>jsp/MyJSP.jsp</jsp-file>
</servlet>
Comment out the servlet definition by enclosing it in comment tags, like this:
<!--
<servlet>
<servlet-name>MyServletName</servlet-name>
<jsp-file>jsp/MyJSP.jsp</jsp-file>
</servlet>
-->
Run the Upgrade Utility as described in the Upgrade Guide.
After the upgrade, open the web.xml file and remove the comment tags around the servlet definition.
Rebuild your project.
If you have customized any of the projects in the library directory of your Director EAR, you have to open each such project and reapply the customizations. For example, if you have added a set of classes to a project by adding a reference to the root directory of the classes, the Upgrade Utility will remove this customization. After upgrading, you will have to add this reference again to the project properties.
In Director 4.0, the names of the resource Jars for the PAC and the PMC are prepended with the name of the WAR—for example, PMC_resource.jar. The Upgrade Utility does not make this change. If you have entries in your project's classpath for either or both of these Jars, after upgrading you will have to manually change the references from resource.jar to PMC_resource.jar or PAC_resource.jar.
For certain components that were delivered with Director 3.0, the portal-lifetime flag was not set to false to keep them thread safe. When upgrading to Director 4.0, the Upgrade Utility modifies the descriptors for these components to conform to the 4.0 format but does not check the portal-lifetime flag. After upgrading, you need to check the descriptors for these components and manually set the portal-lifetime flag to false for each. The components to check are:
NOTE: This list does not include any sample components shipped with Director. For information on the sample components, see the chapter on installed components in the Samples book in Director online help.
The runtime migration of user data may throw exceptions when performing the migration for the sample user. You can ignore these exceptions.
If your Director EAR has multiple Portal Wars, the runtime migrator may complain about failing to migrate nonexistent group pages. You can ignore these errors.
When using the RSS component, in order to authorize users and/or groups to delete RSS URLs from the RSS table in your Director database, you need to create a security role called RSSAdmins. You should and give it the description Administrators who can delete RSS URLs. You can then add users and/or groups to this role. For information on role-based security and creating security roles, see Chapter 3, "Security Subsystem: Authorization" in the User Management Guide.
In the Portal Personalizer, you cannot create a user or group page with a name or description containing extended or multibyte characters.
You cannot copy or move a Content Management subsystem document that has been associated with a layout style.
This applies to content management documents that have attachments. After checking out the document in the PMC and deleting its attachment, the original document appears to still be checked out. To work around this problem, click Check-In.
If a document's document type has a layout style associated with it and you export the folder containing the document, the layout style will not be exported. To ensure that the layout style gets exported, you can export the entire contents of the content management system by clicking the Export button in the PMC toolbar.
If you have created links between documents, the links will not be exported when you export from the folder containing the document, even if both documents are contained in the same folder. To ensure that links get exported, you can export the entire contents of the content management system by clicking the Export button in the PMC toolbar.
If a custom task name includes extended characters, you cannot access the Task tab in the PMC. An exception is thrown. An exception is also thrown when a query is embedded in a task definition and the <content-search> tag contains extended characters.
When importing document types and fields that contain special characters, the import process throws an exception.
To add a field to a content management repository, a user must be a member of the SearchAdmin group. This applies to programmatic operations as well as the PMC.
Autonomy-based Search subsystem capabilities are not supported on HP-UX and AIX operating systems.
The Search subsystem does not support the use of multibyte characters.
Certain aspects of the Workflow subsystem are not enabled for cluster support.
Due to a limitation in the version of NetBeans used in Workbench, the extends chain for interfaces is not fully expanded. As a result, valid API calls may not show up as available when using code completion. See the Director JavaDoc for the full set of valid API calls.
Director manager APIs contain EJB wrappers. However, since this feature has not completely gone through the QA process, SilverStream does not officially support their use in Version 4.0.
The following deprecated API call has been removed from Director:
EbiSecurityManager.userHasAccessRight(EbiSession sess, String right, String elementIID, String elementType)Instead you can use the method:
EbiSecurityManager.userHasAccessRight(EbiContext ctx, String right, String elementIID, String elementType)Director 4.0 includes the final release of KBase.
Help buttons in dialogs and wizards that represent Director extensions to Workbench are not enabled—for example, the Director EAR Wizard. You can access Director online help from the Workbench Help menu. Choose Help>extend Director and you will see a number of options for accessing online help. You can also access Director online help from the Windows Start menu by choosing Start>Programs>SilverStream extend>Director 4.0>Director Help.
Oracle does not allow more than one column to have a LONG data type in any database table. In the data load process, an attempt to populate such a table fails: The table is created, but no data is loaded. There is no known workaround for this problem.
When you are using an Oracle database, the data load process always uses Oracle_schema.sql, and never uses OracleThin_schema.sql. If you have created a custom subsystem, make sure your schema file is named Oracle_schema.sql regardless of which driver you use. The database schema files are located in the library/subsystemname-conf/database directory of your Director project.
Deploying a Director EAR multiple times to the same server could cause a memory leak of approximately 10 MB on each redeployment.
Accessing WebDAV on any supported server from Macromedia UltraDev 4 requires you to be running UltraDev Version 4.01. To obtain the Macromedia UltraDev 4.01 update, see this URL:
http://www.macromedia.com/support/ultradev/download/In general, if you are using Dreamweaver you must also use UltraDev 4.01.
If you intend to use WebDAV functionality in a Director application running on a SilverStream extend Application Server, you must install Windows Office 2000 SR-1a Service Pack on the computer running the server.
When using a browser to view content using WebDAV, you must include the first folder under the repository root in the URL. For example, if you have a top-level folder in the default repository called RootCollection, you must use this URL:
http://hostname/earnamespace/WebDAVService/main/RootCollectionUsing http://hostname/earnamespace/WebDAVService/main does not allow access to content stored in the RootCollection folder.
You can deploy only one Director EAR to a given WebSphere server.
On WebSphere, an IllegalStateException is thrown the first time a component is loaded. This exception is harmless—you can ignore it.
SilverStream recommends using the same database type for the administrative database and the Director database when using WebSphere. Using different databases—for example, DB2 for the WebSphere administration database and Oracle for the Director application database—will result in exceptions when setting the custom security realm. This is due to a limitation in the way WebSphere 4.0.x handles 2-phase commit (XA) drivers.
It is not known whether the Cache Coordinator works properly in a clustered environment using WebSphere.
WebLogic does not find the correct resource bundles for KBase.
When exporting from the PMC using WebLogic, no data is saved to the export ZIP file, even though it appears that the ZIP file is being saved properly. You can import data from a correctly structured ZIP file on WebLogic. But the security and admin parts will not be valid.
Both periodic and scheduled tasks throw exceptions when running on WebLogic.
Due to limitations of the WebLogic API, server clustering does not work with WebLogic.
This issue is specific to Microsoft Internet Explorer Version 5.50.4522.1800 SP1. When you attempt to export data from the PMC, Internet Explorer may prompt you to save a file called PmcFolders.html. If you then click OK in the Save dialog, Internet Explorer will create a file of that name instead of saving a ZIP file called contentmgmt_data.zip. You can address this issue by applying Microsoft's Fix Pack Q319182.
This section provides some notes on best practices for importing and exporting content management data.
For additional information on importing and exporting content management data, see the Known issues section of these Release Notes.
If you are planning to export or import a very large amount of content management data, it is important to keep the memory capacity of your machines in mind as you plan your operation.
During an import or export operation, all objects representing elements of the repository must be present in memory at the same time. Therefore the amount of available memory imposes a practical limit on the size of a repository you can process in a single operation.
The best way to approach a large-scale operation is to export or import your source repository in logical chunks. For example, you might export all your document types in one operation, your fields in another operation, and so on, ending with exporting or importing your document content in manageable chunks according to the folder structure of your repository.
The notes in this section apply primarily to importing content management data that has been exported from another repository.
The user who performs the export from the source repository must exist and must have the SearchAdmin WRITE permission in the target repository.
You need to make sure that if any documents were checked out at the time of export, the users to whom they are checked out have been created in the repository into which you are importing.
If these users do not exist in the import repository, the import will fail.
Two new logging providers have been added to the logging system. These give you the ability to generate:
The behavior of the two new logging providers is very similar to the behavior of the existing logging providers.
You add the two logging providers by using one of the following methods:
logXML.addLoggingProvider(EboUniqueXMLFileLoggingProvider.class.getName());
or
logIPDR.addLoggingProvider(EboUniqueIPDRFileLoggingProvider.class.getName());
To get the log object, you need to use the getLog() method on the EboLogFactory class, as shown below:
logXML = (EboLog) EboLogFactory.getLog( "XML Test" ); logIPDR = (EboLog) EboLogFactory.getLog( "IPDR Test" );
Both providers have templates for the log file format. For example, the format for an XML file might be:
<:?xml version="1.0"?>:
<:root>:${event}<:/root>:
When a new log file is created, the template is used to format the file. The ${} variable is replaced with the actual log strings. The value specified within the braces is also added as an enclosing element. For example:
<:?xml version="1.0"?>: <:root>:<:event>:logString2<:/event>: <:event>:logString2<:/event>: <:/root>:
For IPDR logging, different templates should be used. For example:
<:IPDRDoc seqNum="6530" version="1.0">:
<:IPDRRec info="SilverStream"/>:
<:IPDR seqNum="${Sequence}" time="${Time}">:
<:SS id="sms" service="bin">:
<:SC>:
<:v name="customer_id">:${WapID}<:/v>:
<:/SC>:
<:SE>:
<:v name="service">:sms-bin<:/v>:
<:/SE>:
<:/SS>:
<:UE>:
<:v name="pnummer">:${pnummer}<:/v>:
<:/UE>:
<:/IPDR>:
<:/IPDRDoc>:
The name of the template is specified as a tag in the log string. Each variable in the template should also be specified in the log string, unless it is one of the built-in properties (see Built-in properties below):
logIPDR.audit("sms_binaaaaa 1 ")
Both kinds of templates should be placed in the Director\library\FrameworkService\FrameworkService-conf directory within a Director EAR project.
The following built-in properties have been added to support XML and IPDR logging. Each of these properties can be set in the config.xml file for the Framework subsystem, or by calling a method on the EboLog class:
| Property | Description | Value | EboLog method |
|---|---|---|---|
| logFileTemplate | The log file template to be used. | The name of a template placed in the Director\library\FrameworkService\FrameworkService-conf. Default value: xml-file.tpl |
setLogFileTemplate (String logFileTemplate) |
| addLogDateInfo | Indicates whether a log Date should be added to the log string. | true/false. Default value: true |
setAddLogDateInfo (String addLogDateInfo) |
| logDateFormatMask | The mask to use for the log Date information. | java.text.SimpleDateFormat mask. Default value: dd/MM/yy HH:mm:ss |
setLogDateFormatMask (String logDateFormatMask) |
| addLogTimeInfo | Indicates whether a log Time should be added to the log string. | True/false. Default value: true |
setAddLogTimeInfo (String addLogTimeInfo) |
| logDateFormatMask | The mask to use for the Date info (mainly used for the IPDR template). | java.text.SimpleDateFormat mask. Default value: yyyy-MM-dd'T'HH:mm:ss'Z' |
setLogTimeFormatMask (String logDateFormatMask) |
| addLogSequenceInfo | Indicates whether a unique Sequence should be added to the log string. | True/false. Default value: true |
setAddLogSequenceInfo (String addLogSequenceInfo) |
package test.ipdr;
// potential useful imports
import com.sssw.portal.api.*;
import com.sssw.fw.api.*;
Import com.sssw.fw.exception.*;
//Import com.sssw.cm.api.*;
//Import com.sssw.re.api.*;
Import com.sssw.fw.log.*;
/**
* IPDR
*/
public class IPDR implements com.sssw.portal.api.EbiPortalComponent
{
private com.sssw.fw.log.EboLog log;
private com.sssw.fw.log.EboLog log2;
/**
* Initializes an Component object.
*
* @param context a wrapper around the request and response
* @param params a map that contains parameters
*/
public void initialize( com.sssw.portal.api.EbiPortalContext context, java.util.Map params ) throws com.sssw.fw.exception.EboUnrecoverableSystemException {
}
/**
* Gets the component data (in HTML or XML format) at run-time.
*
* @param context a wrapper around the request and response
* @param params a map that contains parameters
*/
public void getComponentData( com.sssw.portal.api.EbiPortalContext context, java.util.Map params ) throws com.sssw.fw.exception.EboUnrecoverableSystemException {
StringBuffer sb = new StringBuffer();
// set the type of data being returned, html, xml, dom, non-visual
//context.setContentType( com.sssw.portal.api.EbiComponentConstants.MIME_TYPE_NONVISUAL );
//context.setContentType( com.sssw.portal.api.EbiComponentConstants.MIME_TYPE_DEVICE_PROFILING );
//context.setContentType( com.sssw.portal.api.EbiComponentConstants.MIME_TYPE_XML );
//context.setContentType( com.sssw.portal.api.EbiComponentConstants.MIME_TYPE_XMLDOM );
//context.setContentType( com.sssw.portal.api.EbiComponentConstants.MIME_TYPE_HTML );
context.setContentType( com.sssw.portal.api.EbiComponentConstants.MIME_TYPE_HTML_UTF8 );
// build up the component return data, buffers are best
//sb.append( "IPDR data goes here" );
// place the content into the context
log = (EboLog) EboLogFactory.getLog( "XML Test" );
log.addLoggingProvider(EboUniqueXMLFileLoggingProvider.class.getName());
log.audit("xml_fileThis is Jeff's event ");
log.removeLoggingProvider(EboUniqueXMLFileLoggingProvider.class.getName());
log2 = (EboLog) EboLogFactory.getLog( "IPDR Test" );
log2.addLoggingProvider(EboUniqueIPDRFileLoggingProvider.class.getName());
log2.audit("sms_bin55512345 5 ");
log2.removeLoggingProvider(EboUniqueIPDRFileLoggingProvider.class.getName());
sb.append("IPDR Test done for now.");
context.setComponentContent( sb.toString() );
}
/**
* Process request.
*
* @param context a wrapper around the request and response
* @param params a map that contains parameters
*/
public void processRequest( com.sssw.portal.api.EbiPortalContext context, java.util.Map params ) throws com.sssw.fw.exception.EboUnrecoverableSystemException {
//process incoming items on the request object
//String parm = context.getEbiRequest().getParameter("parm-name");
}
}