Real-time updates for LDAP groups

In Jive Server 2.1.x when you added or removed a user from a Roster Group it would display instantly, at least in Psi. However in 2.2.0 using LDAP groups users have to quite and reload the client to see any changes made and sometimes LDAP info is not updated until you stop and restart the server. Does the server poll for updated LDAP information or does it just cache it until restarted?

Also Jive is not updating the status (such as online, offline) of the users displayed in the roster thats populated by a LDAP group. I have to restart the client for it to see the change of other users status.

Thanks

Poppa Smurf

Message was edited by:

Poppa Smurf

I’‘m seeing similar behavior with 2.1.5, but I don’‘t know what’‘s causing it. JM does cache individual user queries (see user/UserManager.java) but does not cache requests for the entire user list (such as going to the User Summary page in the Admin Console). I’'ve noticed that the User Summary page also takes forever to update with the new info when it used to get the changes instantly.

I think it has something to do with JM caching user’'s rosters.

Greg

I think you’'re right, Greg. I forgot about that aspect of it. Give this guy some points!

So is that a bug, design flaw or by design?

Poppa Smurf

Man, this is killing us. Having to reload the client to see users change in statuses. Has this been confirmed as a JM bug?

Could part of the problem be the size of our users roster. we have 313 users and 15 groups on JM.

Thank you for your time.

Message was edited by:

Poppa Smurf

The problem is that you change your rosters too often. It has to do with caching. Look in UserManager.java for the caching code. I think what we need is a way to set via system properties how long the caching will last.

I think there should be an option to clear the cache.

We did a test of how long it would take from the time a userA went “online” until the time userB who was already online saw userA come online. We went 4 hours and userA never showed up in userB’'s roster as being online. This used to be instant. when a user went online other users saw it immediately. we are using the same version of client Psi 0.9.3 we used before we upgraded to JM 2.2.0 RC.

I found in jive.util.CacheManager where the cache lifetime is 6 hours. I’‘m wondering is jive.messenger.roster.groupModified() has anything to do with it, with I can’‘t find where it’'s used anywhere.

We’‘re seeing the same behavior here with JM 2.2 RC. Status messages about users signing on/off are not being propagated out to the clients by JM. Also, stopping or restarting the server is only sending an “unavailable” message for all users (thus making them show offline on the client roster) and then it sends “”. Pandion (2.1.2 beta) is no longer detecting that the server has gone down and doesn’'t attempt to reconnect.

We just rolled this out to all our users last Friday (and upgraded from 2.1.5 to 2.2 RC) and will probably revert to 2.1.5 since we’'re not using any of the features of 2.2 RC except the LDAP groups.

Feel free to reply if you need any more info to help squash this bug.

I wonder if the problem only exists when you use LDAP groups. If its a general problem I would have expected others to notice this by now.

Poppa Smurf

I am not able to reproduce these problems. Do either of you notice any errors in your debug logs? If you could post the ldap section of your XML files along with any errors in your log files that would be great.

Greg

Here is my ldap configuration section:

I am seeing the same problems with my implementation of the new 2.2.0 Jive Messenger.

Ldap config:

<!alternateBaseDN></alternateBaseDN>

false false com.sun.jndi.ldap.LdapCtxFactory false true cn member description

/quote

2005.08.03 11:42:24 Logging off usersname1@jabber.domain.com/Miranda on org.jivesoftware.messenger.net.SocketConnection@97d3f0 socket: Socket[addr=/xxx.xxx.xxx.xxx,port=6914,localport=5222] session: org.jivesoftware.messenger.ClientSession@1db6942 status: 3 address: usersname1@jabber.domain.com/Miranda id: 743850ff presence:

2005.08.03 11:42:30 Connect Socket[addr=/xxx.xxx.xxx.xxx,port=7616,localport=5222]

2005.08.03 11:42:30 Trying to find a user’'s DN based on their username. SAMAccountName: usersname1, Base DN: dc=domain;dc=com…

2005.08.03 11:42:30 Creating a DirContext in LdapManager.getContext()…

2005.08.03 11:42:30 Created hashtable with context values, attempting to create context…

2005.08.03 11:42:30 … context created successfully, returning.

2005.08.03 11:42:30 Starting LDAP search…

2005.08.03 11:42:30 … search finished

2005.08.03 11:42:30 In LdapManager.checkAuthentication(userDN, password), userDN is: CN=Users Name,CN=Users…

2005.08.03 11:42:30 Created context values, attempting to create context…

2005.08.03 11:42:30 … context created successfully, returning.

2005.08.03 11:42:32 Connect Socket[addr=/xxx.xxx.xxx.xxx,port=7486,localport=5222]

2005.08.03 11:42:32 Trying to find a user’'s DN based on their username. SAMAccountName: usersname2, Base DN: dc=domain;dc=com…

2005.08.03 11:42:32 Creating a DirContext in LdapManager.getContext()…

2005.08.03 11:42:32 Created hashtable with context values, attempting to create context…

2005.08.03 11:42:32 … context created successfully, returning.

2005.08.03 11:42:32 Starting LDAP search…

2005.08.03 11:42:32 … search finished

2005.08.03 11:42:32 In LdapManager.checkAuthentication(userDN, password), userDN is: CN=Phil J. Dowson,CN=Users…

2005.08.03 11:42:32 Created context values, attempting to create context…

2005.08.03 11:42:32 … context created successfully, returning.

Hey Guys,

I don’'t have an LDAP server to test this issue. Can anyone of you provide me a testing LDAP server that I may use to reproduce the problem? I would like to be able to use my local server connected to a testing LDAP server so I can analyze this issue.

Thanks,

– Gato

Sorry our server a production LDAP server. I cannot give external access.

I did some monitoring of XML data sent between server and client when using LDAP groups. We have 312 users and they are divided up into departmental groups with a total of 15 groups. I used Psi’'s xml console to monitor the xml xfers and when using LDAP groups and the server didnt send ANY xml presence notifications to the client.

Message was edited by:

Poppa Smurf

Anything we can do to help find and fix this. I also only have a internal production LDAP (AD) server. Does anybody have JM 2.2.0 working correctly using LDAP groups?

Poppa Smurf

We only have our production Active Directory, so I won’‘t be able to help in regards to providing access to an LDAP server. I’‘ll be closely tracking this issue, though, as it’'s a hold-up for us currently.

Keep up the great work!