Openfire 和 LDAP 问题
预先感谢您的帮助。
有人在 openfire 中看到过这个问题吗?
目前我使用 Openfire Fedora 和 Windows 2003 进行身份验证,并且还使用 mysql 作为数据库。当我提出两个客户并互相交谈时,消息之间的时间很慢。有时,发送的内容可能需要 5-15 分钟才能到达该人(这是 openfire 服务器上只有两个人的情况)。我使用端口 389 运行 tcp 转储,发现机器正在针对 ldap 运行数千个查询。当我将其插入wireshark时,我注意到它正在传输整个联系人列表或检查整个联系人列表的状态?
当我在 openfire 本身上运行调试时,我在日志中只看到这条小消息:
2010.06.08 07:01:17 LdapManager: Starting LDAP search...
2010.06.08 07:01:17 LdapManager: ... search finished
2010.06.08 07:01:17 LdapManager: Creating a DirContext in LdapManager.getContext()...
2010.06.08 07:01:17 LdapManager: Created hashtable with context values, attempting to create context...
2010.06.08 07:01:17 LdapManager: ... context created successfully, returning.
2010.06.08 07:01:17 LdapManager: Trying to find a groups's DN based on it's groupname. cn: Spark agents CLT, Base DN: OU="Hidden",DC="Hidden",DC="net"...
2010.06.08 07:01:17 LdapManager: Creating a DirContext in LdapManager.getContext()...
2010.06.08 07:01:17 LdapManager: Created hashtable with context values, attempting to create context...
2010.06.08 07:01:17 LdapManager: ... context created successfully, returning.
2010.06.08 07:01:17 LdapManager: Starting LDAP search...
2010.06.08 07:01:17 LdapManager: ... search finished
2010.06.08 07:01:17 LdapManager: Trying to find a groups's DN based on it's groupname. cn: Spark agents CLT, Base DN: OU="Hidden",DC="Hidden",DC="net"...
2010.06.08 07:01:17 LdapManager: Creating a DirContext in LdapManager.getContext()...
2010.06.08 07:01:17 LdapManager: Created hashtable with context values, attempting to create context...
2010.06.08 07:01:17 LdapManager: ... context created successfully, returning.
2010.06.08 07:01:17 LdapManager: Starting LDAP search...
2010.06.08 07:01:17 LdapManager: ... search finished
我认为这是我的配置,并开始研究 openfire 网页上的缓存设置。我按照页面的建议调整了设置,但仍然遇到相同的问题。我似乎没有缓存联系人列表,或者这可能是一个从未修复或实现的功能。
有人经历过这个吗?我在网上搜索过,我看到其他人对 openfire 有很好的经验,没有像我这样的问题,或者是因为没有人检查查询?
目前,我创建了一个新的域控制器并将 openfire 移至该计算机,以便它可以运行本地查询。这似乎有助于降低很多速度,但是当我运行服务器性能管理器工具时,我发现两个人只使用 openfire 服务器,我每秒运行 593.7 个请求。
感谢您的帮助,如果我没有提供足够的数据,请告诉我您需要什么,我可以找到它。
添加对话中的其他信息: 我仍在仔细检查我的设置,但它们似乎是正确的。当我执行wireshark时,我注意到它会发送整个联系人列表作为查询,但我假设它缓存在名册列表下。然而,某些现金字段即使已设置,也不会被使用。
我查看了您发送的链接,并早些时候将其添加到我的 openfire 中,希望能解决它,但仍然是同样的问题。
有没有人做过服务器性能管理器,看看你是否有和我一样的问题?或者 tcpdump。当我在同一台服务器上运行 openfire 和 Ldap 时,只有两个人使用时似乎只需要 2-5 秒,而不是没有使用时需要 2-5 分钟。最后检查性能经理说每秒 600。
我的主要观点是它不缓存,但我不确定这是否正确。
感谢您的反馈!
Thanks in advance for the help.
Has anyone see this issue with openfire?
Currently I use Openfire Fedora with Auth using windows 2003 and also use mysql for the database. When I bring up two clients and talk to each other the time is slow between messages. Sometimes it can take between 5-15 minutes for something sent to get to the person (this is with only two people on the openfire server). I ran a tcp dump using port 389 and see that the machine is running thousands of queries against ldap. When i plug it into wireshark I notice that it is transferring the entire contact list or checking on the status of the entire contact list ?
When I run debug on openfire itself I am presented with only this small message in the log:
2010.06.08 07:01:17 LdapManager: Starting LDAP search...
2010.06.08 07:01:17 LdapManager: ... search finished
2010.06.08 07:01:17 LdapManager: Creating a DirContext in LdapManager.getContext()...
2010.06.08 07:01:17 LdapManager: Created hashtable with context values, attempting to create context...
2010.06.08 07:01:17 LdapManager: ... context created successfully, returning.
2010.06.08 07:01:17 LdapManager: Trying to find a groups's DN based on it's groupname. cn: Spark agents CLT, Base DN: OU="Hidden",DC="Hidden",DC="net"...
2010.06.08 07:01:17 LdapManager: Creating a DirContext in LdapManager.getContext()...
2010.06.08 07:01:17 LdapManager: Created hashtable with context values, attempting to create context...
2010.06.08 07:01:17 LdapManager: ... context created successfully, returning.
2010.06.08 07:01:17 LdapManager: Starting LDAP search...
2010.06.08 07:01:17 LdapManager: ... search finished
2010.06.08 07:01:17 LdapManager: Trying to find a groups's DN based on it's groupname. cn: Spark agents CLT, Base DN: OU="Hidden",DC="Hidden",DC="net"...
2010.06.08 07:01:17 LdapManager: Creating a DirContext in LdapManager.getContext()...
2010.06.08 07:01:17 LdapManager: Created hashtable with context values, attempting to create context...
2010.06.08 07:01:17 LdapManager: ... context created successfully, returning.
2010.06.08 07:01:17 LdapManager: Starting LDAP search...
2010.06.08 07:01:17 LdapManager: ... search finished
I thought this was a configuration on my end and started to look into the cache settings on the openfire webpages. I tweaked the settings as recommend by the pages and still get the same issues. I doesnt seem to cache the contact list or this might be a feature never fixed or implemented.
Has anyone gone through this before ? I have searched online and I see others have great experience with openfire with no issues like I have, or is it because noone checked the queries ?
For the time being I created a new Domain Controller and moved openfire to that computer so it can run local queries. This seems to help reduce the speed alot, but when I run the server performance manager tool I see that with two people only using that openfire server I run 593.7 request per second.
Thanks for your help, if I didnt provide enough data please let me know what you need and I can find it.
Adding other information from conversation:
I am still double checking my settings, but they seem correct. When I do a wireshark I notice though that it sends the entire contact list as the query, I am assuming that it caches under the roster list. However some of the cashe fields dont see to be used even though they are set.
I looked at the link you sent and I had added that to my openfire earlier hoping that would fix it, still the same issue.
Has anyone ever done a server performance manager to see if you have the same issue as me ? Or a tcpdump. When I run openfire and Ldap on the same server it seems to only take 2-5 seconds with only two people on it instead of the 2-5 minutes it took not having it on. Last check the performance manager says 600 per second.
My main though is its just not caching, but I am not sure if this is right.
Thanks for the great feedback!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许根本没有找到 ldap。从日志转储来看,上下文构建可能会变空,整个过程会重新开始。
我会再仔细看看你的配置。
http://www.igniterealtime.org/builds/ openfire/docs/latest/documentation/ldap-guide.html
基本 DN: OU="Hidden",DC="Hidden",DC="net" //这对您的设置有效吗?
Perhaps it's not finding ldap at all. From the log dump, it looks like the context build may be coming up empty and the whole process starts over again.
I would take another hard look at your config.
http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/ldap-guide.html
Base DN: OU="Hidden",DC="Hidden",DC="net" //is this valid for your setup??