Welcome to Adobe® LiveCycle® Data Services ES 2.6.1.
Last updated: October 31, 2008.
Minimum System Requirements:
LiveCycle Data Services ES requires a minimum of Adobe® Flex™ SDK 3.2 build 3794 (3.2.0.3794), which is included as part of the LiveCycle Data Services installation. To use Adobe® Flex™ Builder™ with LiveCycle Data Services ES, you must use Flex Builder 3.0.2.
Note: Make sure that you use the rpc.swc file that ships with LiveCycle Data Services ES 2.6.1. HTTP-based channels (AMF and HTTP) defined in prior versions of the rpc.swc file do not interoperate correctly with LiveCycle Data Services 2.6 or 2.6.1. Using an older version of the rpc.swc file can lead to issues with clients that do not use cookies. For more information on configuring your development environment, see "Building and deploying LiveCycle Data Services ES applications" in the "Adobe LiveCycle Data Services ES 2.6 Developer Guide".
These release notes includes the following sections:
Related topics:
The LiveCycle Data Services ES 2.6.1 release fixes known issues in the previous release, but adds no new features.
This release includes two updates to the documentation:
For more information on the AMFConnection Java class, see the AMFConnection API reference.
No other documentation changes were required for the LiveCycle Data Services ES 2.6.1 release. Continue to use the LiveCycle Data Services ES 2.6 documentation.
For more information, including samples and examples, see the LiveCycle Developer Center:
This release fixes the following issues in LiveCycle Data Services ES 2.6.
In LiveCycle Data Services ES 2.6, the match-on
configuration property lets you set browser-specific limits to streaming channels for the kickstart-bytes
and max-streaming-connections-per-session
properties. The match-on
values are compared against the User-Agent HTTP request header value returned from the browser. Therefore, to configure setting for specific browsers, determine the User-Agent request header value and then set the match-on
configuration property accordingly. The match-on
value can be a substring of the full User-Agent value.
The following examples sets these properties for the Firefox browser:
If multiple match-on
values match the User-Agent HTTP request header value, the one with the longest match is used. In the example above, if the User-Agent HTTP request header value is "Firefox/3", the second match-on
property is used since it has a longer match.
In this release, you can now specify a match-on
value of "*". A match-on value of "*" is the default configuration used to match a client that does not match any of the other match-on
values. However, LiveCycle Data Services has built-in default settings for Internet Explorer (match-on="MSIE"
) and FireFox (match-on="Firefox"
). Therefore, you must explicitly specify those browsers as the value of the match-on
property to override the defaults.
You can now include the user-agent-settings
property for long polling channels, in addition to setting it for streaming channels, to set the max-streaming-connections-per-session
property. The max-streaming-connections-per-session
property limits the total number of long polling or streaming connections that can be made from a client to the endpoint in the same browser session. If a long polling channel attempts to connect to an endpoint that is already at the number of connections specified by max-streaming-connections-per-session
, the long polling channel will use polling instead.
LiveCycle Data Services maintains a single setting of max-streaming-connections-per-session
. Therefore, set max-streaming-connections-per-session
to the same value for all streaming and long polling channels.
factory="org.objectweb.jndi.DataSourceFactory"
# JNDI (Protocol Invocation) carol.protocols=jrmp # Local RMI Invocation carol.jvm.rmi.local.call=false # do not use CAROL JNDI wrapper carol.start.jndi=false # do not start a name server carol.start.ns=false # Naming Factory carol.jndi.java.naming.factory.url.pkgs=org.apache.naming
server.name
and server.port
) in endpoint URLs in channel configurations do not work in AIR applications. Destinations that service AIR applications must not be configured with channels containing tokens; use literal URL values instead. This issue effects NIO-based RTMP, AMF, and HTTP endpoints with transactions enabled. As a workaround, disable transactions or use one of the servlet-based endpoints.
For example, you invoke the RepositoryService by Remoting using the following procedure:
readResource()
method to read an object which contains inline XML. updateResource()
method and pass in the DocumentReference object returned from the readResource()
method. This invocation results in the following error: "DocumentReference type is set to INLINE but content passed in was empty." The workaround is before calling the updateResource()
method, set the text
property of the passed-in DocumentReference to the xml property of the DocumentReference returned from the readResource()
method. For example:
param.resource.content.dataDocument.text = readResourceResult.content.dataDocument.xml;
In this example, readResourceResult
contains the result returned from the readResource()
method.
To work around this issue, remove the commons-logging.jar file from the WEB-INF/lib directory.
channel_uri
value is URL encoded, preventing the consumer portal from correctly rewriting it. To work around this issue, update the portal_view.jsp file to not URL encode the channel_uri
value by replacing the following line: String channelPath = java.net.URLEncoder.encode(renderResponse.encodeURL(renderRequest.getContextPath() + channel_uri), "utf-8");
with this line:
String channelPath = renderResponse.encodeURL(renderRequest.getContextPath() + channel_uri);
Welcome to Adobe® LiveCycle® Data Services ES 2.6.
Note: LiveCycle Data Services ES requires a minimum of Adobe® Flex™ SDK 3 build 1732 (3.0.1.1732), which is included as part of the installation. To use Adobe® Flex™ Builder™ with LiveCycle Data Services ES, you must use Flex Builder 3.
These release notes includes the following sections:
Related topics:
The following list describes some of the major new features and changes for LiveCycle Data Services ES. For more information on new features, samples, and examples, see the LiveCycle Developer Center:
Improved server performance and scalability - LiveCycle Data Services ES 2.6 performance has been improved from its previous version. See the performance and capacity planning report for more details.
Alignment with Adobe Flex 3 - LiveCycle Data Services ES 2.6 supports the releases of Adobe Flex 3 and Adobe Flex Builder 3.
Improved LiveCycle Foundation integration features - You can now define data management data sources with LiveCycle ES components, the mechanism you use to write new components with LiveCycle Foundation. LiveCycle Data Services ES also supports single-sign on for LiveCycle Remoting applications and LiveCycle services which use the enumerated data type. You can also push changes to Flex clients in real time from LiveCycle processes. (Requires LiveCycle ES 8.2)
Improved RTMP performance and scalability - Supports more concurrent users on the same server infrastructure.
Scalable HTTP based channel - Supports thousands of connections for each Java process. You can use the RTMP channel if you are able to make these connections from your clients directly to the LiveCycle Data Services ES process. You can use the scalable HTTP based channel infrastructure if your clients can only connect to your servers using the HTTP protocol. Using the flexible ChannelSet mechanism of LiveCycle Data Services ES, it is easy to support a list of channels so your clients can connect using the implementation which provides the most efficient implementation.
Data Management paging improvements - LiveCycle Data Services ES 2.5.1 introduced a mechanism which let you page from the clients directly to the database but this mechanism was not supported with the "auto sync" feature. With this release, that restriction has been removed. You can now do efficient on demand paging directly to the database while the clients are kept up to date with the latest changes. You can also now turn on paging for associations in your object model which improves the efficiency with which you can manipulate large object models.
Data Management offline improvements - Using the SQL database contained in Adobe AIR, you can use the offline support introduced in LiveCycle Data Services ES 2.5.1 to persist data directly to a SQL database. With little additional code, you can use an application written to use data management offline with complete access to any data and queries you executed online. To do so, specify a cache id and either use the auto-save option or explicitly save queries or items you want to persist offline for retrieval later.
Data Management improved subtype support - Data management now supports object models where associations are added in a subtype. Previously a single destination could manage a type hierarchy but all types had to have the same set of associations. Now you can define a destination for each class which parallels the object hierarchy using a new "extends" attribute. A subclass can add additional associations.
Data Management and Hibernate improvements - Configuration of hibernate destinations has been made much simpler and less error prone. Support for Hibernate Annotations is also provided.
factory="org.objectweb.jndi.DataSourceFactory"
# JNDI (Protocol Invocation) carol.protocols=jrmp # Local RMI Invocation carol.jvm.rmi.local.call=false # do not use CAROL JNDI wrapper carol.start.jndi=false # do not start a name server carol.start.ns=false # Naming Factory carol.jndi.java.naming.factory.url.pkgs=org.apache.naming
server.name
and server.port
) in endpoint URLs in channel configurations do not work in AIR applications. Destinations that service AIR applications must not be configured with channels containing tokens; use literal URL values instead. System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");
Recompile your RemoteObject class and restart the web application server for this change to take effect.
This issue effects NIO-based RTMP, AMF, and HTTP endpoints with transactions enabled. As a workaround, disable transactions or use one of the servlet-based endpoints.
For example, you invoke the RepositoryService by Remoting using the following procedure:
readResource()
method to read an object which contains inline XML. updateResource()
method and pass in the DocumentReference object returned from the readResource()
method. This invocation results in the following error: "DocumentReference type is set to INLINE but content passed in was empty." The workaround is before calling the updateResource()
method, set the text
property of the passed-in DocumentReference to the xml property of the DocumentReference returned from the readResource()
method. For example:
param.resource.content.dataDocument.text = readResourceResult.content.dataDocument.xml;
In this example, readResourceResult
contains the result returned from the readResource()
method.
org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
To workaround this issue, add the following lines to the Hibernate configuration file (hibernate.cfg.xml):
org.hibernate.hql.classic.ClassicQueryTranslatorFactory>
org.hibernate.InvalidMappingException
Use the following workaround:
org.hibernate.hql.classic.ClassicQueryTranslatorFactory>
Exception in thread "my-rtmp-SocketServer-Acceptor1-port-2038" flex.messaging.LocalizedException: SocketServer 'my-rtmp-SocketServer' cannot bind to accept client connections on port '2038' because another process has already bound the port. Please ensure that multiple endpoints across all applications are not configured to use this same port.
The workaround is to make sure that you do not have any other processes already bound to that port. Or, wait until all TCP connections for a previous invocation of the server have completed their TIME_WAIT state, then restart the server.