Chapter 28. Troubleshooting

Graph hangs and is un-killable

Graph can sometimes hang and be un-killable if some network connection in it hangs. This can be improved by setting a shorter tcp-keepalive so that the connection times out earlier. The default value on Linux is 2 hours (7,200 seconds). You can set it to 10 minutes (600 seconds).

See http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html on tcp-timeout in Linux.

The file descriptor can be closed manually using gdb. See http://stackoverflow.com/questions/5987820/how-to-close-file-descriptor-via-linux-shell-command/12058001#12058001.

SSL/TLS Issues

Java 7 and HTTPS

There may be issues when using Java 7 and HTTPS-based communication. There are servers that do not support TLS 1.0 (Transport Layer Security) protocol anymore and the Java 7 does not support newer versions of the TLS by default. To activate newer versions of the TLS protocol, user has to specify the system property https.protocols and set the value to TLSv1,TLSv1.1,TLSv1.2. Consult section on Production Server to find out how to set the system property on particular application server.

SSL-related Failures on WebLogic 12

Certain graphs using SSL-encrypted connections may fail on WebLogic 12 due to damaged library distributed with this application server. The issue can be identified by a SHA-1 digest error in the graph execution stacktrace:

...
Caused by: java.io.IOException: Could not convert socket to TLS
    at com.sun.mail.pop3.Protocol.stls(Protocol.java:659)
    at com.sun.mail.pop3.POP3Store.getPort(POP3Store.java:269)
    at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:207)
Caused by: javax.net.ssl.SSLException: java.lang.SecurityException:
    SHA1 digest error for org/bouncycastle/jce/provider/JCEECPublicKey.class
...

To fix the issue, replace the library [MW_HOME]/oracle_common/modules/bcprov-jdk16-1.45.jar with the one downloaded directly from Bouncy Castle home page. Restart of the application server is required to load the new library.