Solved

Java novell LDAPConnection timeout problem

Posted on 2014-09-18
7
590 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
  • 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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

How to remove superseded packages in windows w60 or w61 installation media (.wim) or online system to prevent unnecessary space. w60 means Windows Vista or Windows Server 2008. w61 means Windows 7 or Windows Server 2008 R2. There are various …
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

867 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now