Openfire问题解决汇总

Openfire的集群研究

研究了几个月的openfire的集群,今天终于有点眉目了。分享一下。

openfire的集群通过插件集成到服务器中。

该插件使用Oracle Coherence。Oracle Coherence是一个分布式的缓存方案,并且通过集群为应用提供强大的缓存后备支持。Coherence主要是内存缓存,即存储区域主要在内存当中。

与一般的分布式缓存方案如JBossCache, Memcache 等相同,分布式缓存的价值基于网络IO性能高于DB查询的磁盘IO性能这样一个特点。Coherence的别名是Data Grid。

不用担心登录openfire的客户端数量暴涨后,openfire的内存会耗光,因为Coherence每个节点只保存1/n的缓存。可以通过增加节点数来解决内存问题。

另外coherence是可以配置的,用winrar打开coherence.jar,编辑其中的tangosol-coherence.xml。

常见配置:集群名称,知名IP列表等。

通过设置集群名称,可以让知道集群名称的节点加入集群。

通过设置知名IP列表,可以让不能用广播的节点加入集群。

原文来自:http://istep.iteye.com/blog/1749740

Openfire 服务器更换ip后的恢复方法

如果你的服务器名称和mysql的地址都是使用的静态ip地址配置的,更改ip后,openfire就会开启失败,这种情况下请看下面的解决方法。

比如你的ip地址由 192.168.0.111 改为192.168.0.222后,openfire开启失败,控制台会出现一些红字,openfire database error …. ,解决方法:

打开E:/Program Files/Openfire/con/openfire.xml, 修改serverURL>jdbc:mysql://192.168.0.111:3306/openfire 字段中的ip更改为新的ip,其实这里最好写成 127.0.0.1 比较好,这样就始终指向本机。

这样mysql数据库连接成功,openfire管理界面可以正常登陆,但是客户端还是无法连接openfire,这是由于服务器名称还是以前的ip造成的,解决方法:

1. 登陆openfire管理页面,在主页面下方选择编辑服务器属性,修改新的服务器名称为新的ip地址,也就是192.168.0.222,点击保存属性,页面提示从启服务器。

2. 重启后服务器名称出现一个叹号,鼠标放上去显示Found RSA certificate that is not valid for the server domain, 这样由于RSA认证无效造成的,需要对新的ip地址进行RSA证书的配置。

3. 选择【服务器配置】菜单,选择左下方的【服务器证书】,会看到两个证书,点击后面的删除按钮,全部删除,删除后系统提示重启服务器,点击重启

4. 重启后,系统提示“一个或更多的证书丢失。单击这里产生自定义签名证书”,点击这里,自动生成和新的ip匹配的RSA证书,生成后,系统提示重启。

5. 再次登录后,会看到主界面的服务器名称的叹号消失了,openfire正常,客户端可以正常登陆了

原文来自:http://blog.csdn.net/HappySheepherder/article/details/4707124

 

 

解决openfire在使用MySQL数据库后的中文乱码问题(转)

openfire是一个非常不错的IM服务器,而且是纯Java实现,具有多个平台的版本,他的数据存储可以采用多种数据库,如MySQL,Oracle等。

在实际使用时大家遇到最多的就是采用MySQL数据库后的中文乱码问题,这个问题十分有趣,而且从现象上可以看出openfire内部的一些机制。

实际问题是这样的:首先启动openfire服务器,然后利用客户端或直接登录到后台新建一个帐户,为该帐户指定一些中文的属性,如姓名等。如果不重启服务器,你永远不会觉得有什么不对的地方,因为所有的中文显示都是正常的。接下来重启一下openfire,再用建立的帐号登录客户端或进入后台管理端查看,会发现所有的中文全都变成了问号。登录到数据库中进行查看,发现所有的中文字符也均为问号,这说明了两个问题:

  1. openfire具有应用层缓存
  2. 数据库编码存在问题

解决办法其实也很简单,首先要保证你为openfire创建的数据库编码是utf8的,建表语句如下:

create database openfire default character set utf8 default collate utf8_general_ci

当你原来就创建好数据库时,你可以用:

alter database openfire default character set utf8 default collate utf8_general_ci;

其次,在初始化openfire数据库,即第一次配置openfire服务器时,在连接数据库那里的连接串要加入字符编码格式,必须在连接里增加UTF8的编码要求,连接字符串设置如下:

jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8

如果已经安装完成,这个配置也是可以改动的,直接到openfire的安装目录下,找到conf/openfire.xml这样一个文件,打开找到如下的XML节,修改其中的serverURL即可



com.mysql.jdbc.Driver
jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8

注意:由于&具有特殊含义,因此原&符号必须被转义为&

 

你可能感兴趣的:(知识普及)