Contact lists not updating when users change status (LDAP)

This seems to be a common problem on this message board and the threads have not often ended in a solution… Here is my similar issue…

The Problem:

Contact list in the client apps are not updated as users come and go. The only way to get the current list of who’s online is to sign out/sign in or restart the client app.

Setup:

  • Openfile 3.6.4 on Ubuntu 9.04 Server x64

  • java version “1.6.0_16”

    • Java™ SE Runtime Environment (build 1.6.0_16-b01)
    • Java HotSpot™ 64-Bit Server VM (build 14.2-b01, mixed mode)
  • Apple Mac OS X Server (10.4) OpenDirectory

  • users are retrieved from LDAP

  • groups are retrieved from LDAP using ldap.groupSearchFilter = (objectClass=posixGroup)

  • all users belong to a “staff” LDAP group and show up in the openfire admin

  • contact list group sharing is enabled for the group

  • Clients apps used: Adium, Pidgin (windows&linux), Kopete

What I’ve done:

  • cleared all caches

  • cleared all caches and restarted openfire

  • removed account from client app, added again

None of these have worked. We can chat with each other even if we show as offline. But we rely on the contact list updating to know the status of each other.

Can anyone supply any insight?

Ok, now contact lists seem to be updating with user presence changes. I am not quite sure what setting did it, but I tweaked a few things.

  • locale.timeZone - the system timezone is America/Chicago CDT (Central Daylight Time) but Openfire was set for America/Los Angeles PDT (Pacific Daylight Time) – now they match, both are America/Chicago

  • ldap.posixMode = true - this was false, after reading the LDAP guide again, I thought I would give it a try with a value of true.

I did read in my scouring of various forums that Openfire is rather clock sensitive, so the timezone thing makes sense. The server is syncing time with the Ubuntu time server pool via NTP so that wasn’t necessarily the issue, but the 2 hour difference in timezone could have been.

On the other hand, the groups being filtered from LDAP are posix: (objectClass=posixGroup) - see the first post.

Any ideas as to what fixed it?