• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 735
  • Last Modified:

Java novell LDAPConnection timeout problem

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
MehtaJasmin
Asked:
MehtaJasmin
  • 4
  • 3
1 Solution
 
CEHJCommented:
Try
java -Dsun.net.client.defaultConnectTimeout=5000 NEXLdapConnectionTimeOutTest

Open in new window

0
 
MehtaJasminAuthor Commented:
the solution above does not work, still have 21 sec
0
 
CEHJCommented:
I can't comment really. You'd need to look at the source to find out what's going on
0
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

 
MehtaJasminAuthor Commented:
CEHI, did you try to run the program yourself? Is it working for you?
Thank you.
0
 
CEHJCommented:
I had the same problem
0
 
MehtaJasminAuthor Commented:
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
 
MehtaJasminAuthor Commented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now