Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Java novell LDAPConnection timeout problem

Posted on 2014-09-18
7
Medium Priority
?
650 Views
Last Modified: 2014-09-30
Hello, Experts,
I'm trying to set timeout value in constructor and also by using LDAPConnection.setSocketTimeOut( ) method to 5 sec  in case if LDAP server is dead, it should throw LDAPException in 5 sec, but instead it waits for 21 sec in WIndows and 63 sec in Linux - no matter what value you pass in constructor or setSocketTimeOut( ) method, Please see the code below or in attachements:
Note: Please rename attached ldap.zip to ldap.jar and add it  to your CLASSPATH
==========================  START   ==========================================

import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;

/**
 * Class to test the timeout issue with novell LDAPConnection.
 * @author Max G
 *
 */
public class NEXLdapConnectionTimeOutTest {

      /**
       * @param args
       */
      public static void main(String[] args) {
            
            
            //Constructs a new LDAPConnection object, which will use the supplied timeout value (in MILLI SECONDS)
            //NO MATTER WHAT VALUE YOU PUT - it gives 21 sec in Windows and 1 min in Linux
            LDAPConnection ldapConnection = new LDAPConnection(5000); // 5 sec      
            //ldapConnection.setSocketTimeOut(5000); // Not working either
            
            try {
                  //Use dummy IP 10.1.1.1 - not on  network - imitate dead LDAP Server
                  ldapConnection.connect("10.1.1.1", 636);
            } catch (LDAPException e) {
                  e.printStackTrace();
            }                                                
      }
}

==========================  END ==========================================


Please help if you have any ideas how to set timeout correctly for com.novell.ldap.LDAPConnection.
ldap.zip
LDAPConnectionTimeOutTest.java
0
Comment
Question by:MehtaJasmin
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 40331697
Try
java -Dsun.net.client.defaultConnectTimeout=5000 NEXLdapConnectionTimeOutTest

Open in new window

0
 

Author Comment

by:MehtaJasmin
ID: 40333207
the solution above does not work, still have 21 sec
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 40333251
I can't comment really. You'd need to look at the source to find out what's going on
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

Author Comment

by:MehtaJasmin
ID: 40333318
CEHI, did you try to run the program yourself? Is it working for you?
Thank you.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 40333846
I had the same problem
0
 

Accepted Solution

by:
MehtaJasmin earned 0 total points
ID: 40344706
Looks like com.novell.ldap library  ldap.jar has a bug. So it's not possible to make it work, instead I was using the java socket to check if LDAP servers are up, the code is below:
try {

      Socket socket= new Socket();
      SocketAddress socketAddress = new InetSocketAddress(sLDAPServerIPPrimary, iLDAPServerPort);
      socket.connect(socketAddress, iTimeout);
      socket.close();
      socket = null;

} catch (Exception e) {
      e.printStackTrace();
      //Throw LDAPException if LDAP Server is down
      throw new LDAPException("======= THIS IS SOCKET TIMEOUT TEST!!!! ===== " + e.getLocalizedMessage(),LDAPException.CONNECT_ERROR, e.getMessage());            
}
0
 

Author Closing Comment

by:MehtaJasmin
ID: 40351795
Can't make ldap.jar from novell to set timeout, even API documented as you can. Workaround is to use Socket to check  the connection timeout and then user other functionality of novell ldap.jar.
0

Featured Post

[Webinar] Lessons on Recovering from Petya

Skyport is working hard to help customers recover from recent attacks, like the Petya worm. This work has brought to light some important lessons. New malware attacks like this can take down your entire environment. Learn from others mistakes on how to prevent Petya like worms.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you haven’t already, I encourage you to read the first article (http://www.experts-exchange.com/articles/18680/An-Introduction-to-R-Programming-and-R-Studio.html) in my series to gain a basic foundation of R and R Studio.  You will also find the …
This article will show, step by step, how to integrate R code into a R Sweave document
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

722 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question