Openfire 3.8.1 on Linux
I can't connect to MSSQL 2012 database with domain user credentials. Sql Server
authentication works fine.
My config (user data changed for this entry):
<connectionProvider>
<className>org.jivesoftware.database.DefaultConnectionProvider</className>
</connectionProvider>
<database>
<defaultProvider>
<driver>net.sourceforge.jtds.jdbc.Driver</driver>
<serverURL>jdbc:jtds:sqlserver://IP/db_name;appName=jive</serverURL>
<username>DOMAIN\user</username>
<password>omain_user_password</password>
<testSQL>select 1</testSQL>
<testBeforeUse>false</testBeforeUse>
<testAfterUse>false</testAfterUse>
<minConnections>5</minConnections>
<maxConnections>25</maxConnections>
<connectionTimeout>1.0</connectionTimeout>
</defaultProvider>
</database>
<setup>true</setup>
</jive>
Log
2013.03.22 14:20:58 org.jivesoftware.database.DbConnectionManager - Unable to get a
connection from the database pool (attempt 10 out of 10).
java.sql.SQLException: Login failed for user 'DOMAIN\user'.
at
net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:602)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:344)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at
org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConne ctionBuilder.java:39)
at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)
at
org.logicalcobwebs.proxool.ConnectionPool.getConnection(ConnectionPool.java:211)
at org.logicalcobwebs.proxool.ProxoolDriver.connect(ProxoolDriver.java:89)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at
org.jivesoftware.database.DefaultConnectionProvider.getConnection(DefaultConnect ionProvider.java:86)
at
org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager. java:124)
at org.jivesoftware.openfire.XMPPServer.verifyDataSource(XMPPServer.java:753)
at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:480)
at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:212)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at
org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:113)
at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:58)
2013.03.22 14:20:58 org.jivesoftware.openfire.XMPPServer - Server halted
I did try installing FreeTDS on my linux machine and after configuring I could
connect to my sql server with domain credentials
working example
tsql -S IP_address -U 'DOMAIN\user' -P password
but I had to change for FreeTDS config parametr "tds version". From default 4.2 to 8.0
so in freetds.conf tds version = 8.0 and we have working connection for domain user.
I don't know any configuration in Openfire about FreeTDS, maybe there is some problem?