掲示板

ApacheDS Adding Multiple Records With Muliple Signup

6年前 に Varun Arya によって更新されました。

ApacheDS Adding Multiple Records With Muliple Signup

New Member 投稿: 24 参加年月日: 17/03/02 最新の投稿
I am using ApacheDS LDAP with Liferay. In my application while sign up i am creating user in my LDAP. It is taking approx 1.5 second to insert one record. While load testing i am getting

LDAP response read timed out, timeout used:15000ms.

ApacheDS is taking time to response and i got connection timeout exception. Is there is any way to fast insert. Please suggest me how to handle this thing and how liferay handle this if ldap export and required enabled.


                private static Hashtable<string, object> env = new Hashtable<string, object>(15);
                env.put(Context.SECURITY_AUTHENTICATION, "simple");
		if (getUsername() != null) {
			env.put(Context.SECURITY_PRINCIPAL, getUsername());
		}
		if (getPassword() != null) {
			env.put(Context.SECURITY_CREDENTIALS, getPassword());
		}
		env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
		env.put(Context.PROVIDER_URL, getLdapAdServer());
               env.put("java.naming.ldap.attributes.binary", "objectSID");

        	env.put("com.sun.jndi.ldap.connect.pool", "true");
		env.put("com.sun.jndi.ldap.connect.pool.authentication", "simple");
		env.put("com.sun.jndi.ldap.connect.pool.maxsize","50");
                env.put("com.sun.jndi.ldap.connect.pool.prefsize","25"); 
 		env.put("com.sun.jndi.ldap.connect.pool.timeout", "300000");
                LdapContext ctx = new InitialLdapContext(env, null);

                Attributes attributes = new BasicAttributes();
		attributes.put("objectClass","inetOrgPerson");
		attributes.put("sn",user.getLastName());
		attributes.put("cn",user.getEmail().split("@")[0] + "" + user.getEmail().split("@")[1]);
		attributes.put("givenName",user.getFirstName());
		attributes.put("mail",user.getEmail());
		attributes.put("uid",user.getEmail());
		attributes.put("employeeNumber",user.getEmail());
		attributes.put("description","NA");
		attributes.put("userPassword",user.getPassword());
		attributes.put("title","comparison");
		attributes.put("employeeType",user.getEmployeeType());
		attributes.put("teletexTerminalIdentifier", user.getUserBtype());

               ctx.createSubcontext("uid=" + user.getEmail() + "," + LdapConnection.getPartition(), attributes);
               ctx.close();

</string,></string,>


This is called each time while signup.