Upgrading from version 6.1 to version 6.2
Consider the following information when upgrading from Diffusion™ version 6.1 to version 6.2.
Upgrading your applications
- Server-side components
-
Recompile all Java™ application components that are deployed to the Diffusion server, such as publishers and authorization handlers, against the new version diffusion.jar file. This file is located in the lib directory of your new Diffusion server installation.
Some features that your Java application components might use have been removed or deprecated. Pay attention to new deprecation warnings and compilation failures that occur during recompilation and review the API changes information in the following section to see if these changes affect your applications.
- Clients
-
You can choose not to recompile your client applications and continue to use client libraries from a previous release. If you choose to use client libraries from a previous release, ensure that the libraries are compatible with the new server. For more information, see Interoperability.
You can choose to upgrade your client applications to use the new client libraries. To do this, recompile the client applications against the client libraries located in the clients directory of your new Diffusion server installation and repackage your client application with the new library.
The Java client now supports Java 9, 10 and 11. Java 8 is still required for the server.
Your client applications may use features that have been removed or deprecated. Review the API changes information in the following section to see if these changes affect your applications.
API changes
- The release notes provided online at http://docs.diffusiondata.com/docs/6.11.2/ReleaseNotice.html
- The API documentation located at http://docs.pushtechnology.com/docs/6.2
API affected | Removed feature | Suggested alternative |
---|---|---|
All | Record topics | Rewrite your application to use either JSON or recordV2 topics |
All | Single value topics | Use string, int64 or double topics as appropriate |
All | Stateless topics | Use an appropriate topic type with the DONT_RETAIN_VALUE topic property enabled |
All | addTopic methods that use TopicDetails | Use methods that take TopicSpecification |
All | addTopic methods that take an initial value | It is no longer possible to add a topic with an initial value. However, the new Update feature allows for dynamic creation of topics that do not exist, which achieves the same effect. |
All | Creation of routing topics with server side handlers | Applications should be changed to provide client side routing topic handlers. |
All | Other items deprecated at 6.0 | Consult 6.0 API documentation for alternatives |
Publisher | Client send methods | These only worked with stateless topics and TopicStreams, which have both been removed |
Publisher | Other items deprecated at 6.0 | Consult 6.0 Publisher API for alternatives |
.NET API | IClientInfo | |
.NET API | IPingDetails.RoundTripTime property |
API affected | Deprecated feature | Suggested alternative |
---|---|---|
All | TopicUpdateControl | Use the new TopicUpdate feature. |
All | Topics.feath methods | Use the new fetchRequest |
All | One-way messaging | Use request-response messaging instead |
All | TopicDetails, RoutingTopicDetails, SlaveTopicDetails | Only retained to support the deprecated getTopicDetails method |
All | Content | Only used in deprecated features |
All | SessionDetails, ClientSummary, ClientLocation | Only used by deprecated Authentication Handler interfaces |
All | SendOptions and ReceiveContext | Only used in deprecated one-way messaging methods |
All | TopicAddFailReason.USER_CODE_ERROR | No longer used |
.NET, Java, Android and C Clients and Publisher | AuthenticationHandler | Use the new Authenticator interface |
Publisher | A number of Publisher API interfaces and methods are deprecated; see release notes | Consult the Publisher API documentation for guidance |
Change of behavior
All of the Publisher and Topic addTopic methods, other than those that take a TopicData parameter have now been deprecated. For backwards compatibility, those methods that did not specify the type of TopicData (which would have previously created a topic of the stateless topic type) will now create a binary topic with its DONT_RETAIN_VALUE property set to true.
Also, where a topic is created that leads to the creation of intermediate topics, then intermediate binary topics will also be created. This differs from topics created by the client API where intermediate nodes would be unbound (that is, have no topic).
For reasons of backwards compatibility with other Publisher API interfaces, it is not possible to create unbound nodes using the Publisher API. For maximum efficiency, use the client API to create topics instead of the Publisher API.
Upgrading your server installation
- Use the graphical or headless installer to install the new version of
Diffusion
.
For more information, see Installing the Diffusion server.
- Contact DiffusionData for an updated license file.
- You can copy most of your existing configuration files from the
etc directory of your previous installation to the
etc directory of your new installation.
The following configuration items are no longer valid. Remove them from your configuration files:
- Connectors.xml: remove connector.type and connector.policy-file elements
- Publishers.xml: remove publisher.topics, publisher.topic-aliasing, publisher.ack-timeout, publisher.auto-ack elements
- Replication.xml: remove enabled attribute and topics.topicPath element
- Server.xml: remove log-message-data and conflation elements
- WebServer.xml: remove comet-bytes-before-new-poll and comet-initial-message-padding elements
The following configuration items are now deprecated. Consider removing them from your configuration files.
- ConnectionValidationPolicy.xml: remove policy.automatic attribute
- Server.xml: default-load-message-capacity and default-delta-message-capacity elements.
- Statistics.xml: publisher-statistics element and enabled, client-statistics.enabled and topic-statistics.enabled attributes.
Behavior changes at the Diffusion server
The topic tree is now sorted into lexical path name order. Previously topics were stored in the topic tree in creation order within parent node. If your application relies on topics being ordered by creation time, you may need to adjust your application.