Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 670
  • 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
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
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

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

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