Diffusion™ CloudJava clients use certificates to validate the security
of their connection to Diffusion Cloud. The client validates the
certificate sent by Diffusion Cloud against the set of certificates
trusted by the Java Development Kit (JDK).
If the certificate sent by Diffusion Cloud cannot be validated
against any certificates in the set trusted by the JDK, you receive an exception that contains the following message:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find
valid certification path to requested target.
Diffusion Cloud uses certificates
provided by the certificate authority Startcom. By default, Startcom is not a trusted
Certificate Authority (CA) for the Java client.
To ensure that the certificate is validated, set up a trust store for the client and
add the appropriate certificates to that trust store:
Obtain the appropriate intermediate certificate from the certificate authority.
The Java client library invokes callbacks using a
thread from Diffusion Cloud thread pool. Callbacks for a
particular session are called in order, one at a time. Consider the following when
Do not sleep or call blocking operations in a callback. If you do so, other
pending callbacks for the session are delayed. If you must call a blocking
operation, schedule it in a separate application thread.
You can use the full Diffusion Cloud API to make other
requests to the server. If you want to make many requests based on a single
callback notification, be aware that Diffusion Cloud client
flow control is managed differently in callback threads. Less throttling is
applied and it is easier to overflow the servers by issuing many thousands of
requests. If you have a lot of requests to make, it is better to schedule the work
in an application thread.
The Java client uses the same regular expression
engine to Diffusion Cloud. Some regular expressions in topic
selectors are evaluated on the client and others on Diffusion Cloud.
There is no difference in how these regular expressions are evaluated in the Java client.