I have new information:
I found that one particular multi-protocol mobile client, www.agilemessenger.com doesn’'t seem to comply with XEP-0126 when a user sets herself “invisible” for all protocols.
Funny enough, when an agile messenger user goes “invisible”, the user’'s last logout is showing perfectly in the Openfire user summary. This persists if the user subsequently logs out completely from an invisible state.
This leads me to believe there is absolutely nothing wrong with the logging mechanism or the type of database you have sitting on your backend. The issue is more likely about how Openfire recognizes a logout event.
If a client uses Trillian Pro, Psi or Pidgin, they can’'t set themselves invisible, and once they log out, the logout is not recorded. I have tested this in Pidgin 2.0.2, Psi 0.10 and Psi 0.11 RC2.
If an agile messenger client logs in as available or away or anything other than invisible and then logs out, it’'s not recorded either. What does it take for Openfire 3.3.2 to “trigger” a logout event ? Evidently Openfire is waiting for some sort of trigger event that never occurs on mainstream clients, but whatever agile messenger does when “invisible” status is set, does trigger the logout event.
Unfortunately I am in a bad timezone so I have missed the last two “wednesday live chats with the devs” and have been unable to have this acknowledged as an issue.