将 Openfire 与 MS SqlServer 集成

将 Openfire 与 MS SqlServer 集成

我最初在 stackoverflow 上发布了这篇文章。不确定这是否属于 Serverfault。我对 serverfault 与 stackoverflow 的指导原则相当熟悉,然而,虽然这是一个服务器问题,但目标是配置我的 XMPP 开发环境。任何关于 stackoverflow 与 serverfault 的建议都将不胜感激。

无论如何,这是我的问题

我正在尝试使用 MS SQL Server 2008 实例配置我的 Openfire 服务器。

我必须承认,尽管我广泛使用过 SQL Server,但我还是成功地使用它,尽管我当然不是专家(最重要的是,您不应该假设我已经做了任何明显的配置)。如果有什么明显的错误以至于这是一个浪费时间的问题,我也提前道歉。

我的基本 SQL 信息/配置

  • 服务器名称:PALBU\PALBUSQL
  • 身份验证:Sql Server 身份验证
  • 登录名:sa
  • 密码:mypassword

这是我的 Openfire 设置/屏幕截图

服务器设置

  • 域名:palbu

  • 管理控制台端口:9090

  • 安全管理控制台端口:9091

我在“数据库设置”下选择了“标准数据库连接”

数据库设置 - 标准连接

  • 数据库驱动程序预设:Microsoft SQLServer
  • JDBC 驱动程序类:net.sourceforge.jtds.jdbc.Driver
  • 数据库网址:jdbc:jtds:sqlserver://PALBU/PALBUSQL;appName=jive
  • 用户名:su
  • 密码:mypassword
  • 最低连接数:5
  • 最大连接数:25
  • 连接超时:1.0 天

当我尝试连接时,收到一条错误消息“无法连接到数据库,您可以查看错误消息 error.log”

以下是 error.log 文件的输出

2011.07.12 11:10:43 原型 java.sql.SQLException:网络错误 IOException:连接被拒绝:连接在 net.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2.java:385)在 net.sourceforge.jtds.jdbc.ConnectionJDBC3。(ConnectionJDBC3.java:50)在 net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)在 java.sql.DriverManager.getConnection(未知来源)在 java.sql.DriverManager.getConnection(未知来源)在 org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)在 org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)在org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102) at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44) 导致:java.net.ConnectException:连接被拒绝:连接 at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(未知来源)位于 net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:304)位于 net.sourceforge.jtds.jdbc.SharedSocket。(SharedSocket.java:255)位于 net.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2.java:310)... 还有 8 个

我尝试将 DatabaseURL 更改为仅显示我的服务器 URL

  • 数据库网址:PALBU/PALBUSQL

我在数据库设置中收到了相同的错误,但在日志文件中收到了不同的输出。

  2011.07.12 11:16:12 Prototype
java.sql.SQLException: No suitable driver found for PALBURTUS/PALBURTUSSQL
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)
    at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)
    at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102)
    at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44)

似乎默认的 Openfire 安装中缺少此驱动程序,但我对 sql 驱动程序不太熟悉,因此如能得到任何帮助我将不胜感激。

答案1

您的 SQL 服务器是否配置为接受网络连接?或者,它是否位于非标准端口(默认为 1433)?或者,服务器上是否启用了基于主机的防火墙?

从该错误消息来看,OpenFire 服务器可以解析名称,但连接尝试被主动拒绝。

OpenFire 采用 jdbc 连接字符串,因此第二次尝试失败是可以预料的。

答案2

第一个日志中说Connection refused。尝试从 Openfire 计算机远程登录到 SQL 服务器端口,看看是否可以打开连接。如果不行,那么您可能需要检查防火墙规则并允许传入连接。

第二条日志仅仅告诉您连接字符串无效,并且它不知道在哪里或如何连接。

相关内容