Platform Notes for Ice 3.6
This page provides platform-specific notes for Ice 3.6.
On this page:
Android notes
Socket connection issue in Android emulator
An Ice application that attempts to connect to an invalid address can generate "spurious wakeup" messages in logcat when running under an emulator for Android 4.2 or later. This issue does not occur on hardware devices, however you can still experience lengthy delays before receiving an exception. As a defensive measure, it is a good idea to always set reasonable timeouts on your proxies to avoid unexpected delays.
Java notes
IceGrid Admin GUI
The IceGrid graphical administrative utility can be used with Java7 or Java8, however the metrics graph feature is only available when running with JavaFX.
SSL issues in Java
Anonymous Diffie Hellman ciphersuites
Recent versions of Java7 and Java8 require low-strength ADH ciphersuites to be disabled when using TLS 1.0. It is no longer sufficient to use this IceSSL configuration:
IceSSL.Ciphers=NONE (DH_anon) IceSSL.VerifyPeer=0
We recommend using this setting instead:
IceSSL.Ciphers=NONE (DH_anon.*AES) IceSSL.VerifyPeer=0
Entropy pool causes hangs
When using the Ice for Java SSL plug-in (IceSSL), you may experience occasional hangs. The most likely reason is that your system's entropy pool is empty. If you have sufficient system privileges, you can solve this issue by editing the file java.home
/jre/lib/security/java.security
and changing it to use /dev/urandom
instead of /dev/random
. If you do not have permission to modify the security file, you can also use the command-line option shown below:
java -Djava.security.egd=file:/dev/urandom MyClass ...
IPv6 hang in Java
On systems with IPv6 enabled, you may experience occasional hangs the first time an Ice object adapter is activated within a JVM. A work-around is to disable IPv6 support by setting the Java property java.net.preferIPv4Stack
to true. For example:
java -Djava.net.preferIPv4Stack=true MyClass ...
SLES 12 notes
OpenJDK 1.7.0
We do not recommend using OpenJDK 1.7.0_85 on SLES 12. The IceBox/configuration
test fails with an unexpected java.io.IOException
exception from the selector implementation when run with SSL. The Oracle and IBM JDKs do not exhibit this issue and should be used for Java applications on SLES.
Windows notes
Windows users should be aware of the following issues.
Anti-Virus when testing WebSocket
If your anti-virus intercepts http
traffic on localhost, a number of tests in the Ice test suite may fail due to timeouts when running the test suite with the ws
(WebSocket) protocol. The work-around is to disable the "web access protection" feature of the anti-virus entirely or at least for localhost (127.0.0.1).
Multicast and Windows Store Apps
Network isolation for Windows Store Apps blocks multicast datagrams on the loopback interface. As a result, IceDiscovery and IceLocatorDiscovery won't be able to discover peers listening on the loopback interface.