Upgrade issues related to database

I am running 3.9.1. I previously had tried to upgrade past this a couple years ago, but couldn’t get it to work. See here: OpenFire 3.9.2 upgrade issues

I’m now trying this again with a newer version of 4.1.5. I have a test VM so I can play around with the settings, but I stop the service, run the install as administrator. I answer Yes to overwriting any files during the install. After, I can’t start the OpenFire service. I get the following error.

2017.08.16 15:24:02 org.jivesoftware.openfire.XMPPServer - java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries. The exception from the last attempt is as follows: java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

java.lang.IllegalArgumentException: java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries. The exception from the last attempt is as follows: java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

I’ve tried copying the ntlmauth.dll (x86) from jtds 1.3.1 so C:\Windows\system32 and restart the server, but that doesn’t fix it. How can I get this library to load or connect to the database? I’d really like to get upgraded to a newer version of OpenFire.

My openfire.xml has this:

jdbc:jtds:sqlserver://[servername]/openfire;appName=jive;instance=SQLEXPRESS

I’ve tried putting the port number behind servername, but I don’t think it’s getting that far and that hasn’t fixed the problem. Everything works great in 3.9.1, so I can’t figure out what the issue could be at this point.

Check out openfire’s lib folder and see if there are any old files laying around from the previous install

All the files in the \lib folder are dated 6/30/17 at 9:55 AM, so I assume they were all updated with the new version…

are you trying to use windows authentication with the database connection string? If you are running openfire as a service, make sure the service is running under the correct account

Openfire service is set to run as Local System.

I’m not sure what type of authentication it is trying to use, but that part has not changed and works fine in 3.9.1.

usually the authentication is using a sql account that is based in a connection string. you may try re-running the config, and updating the database username and password from within openfire.

stop openfire service…then in the openfire.xml file, change the setup flag from true to false. save and start openfire. this will let you run through the setup again. your settings should be retained, and all you have to do is update the database credentials. as always, make sure you have a backup!

Well, this got me further and may be close to a fix!

One difference I am seeing in the openfire.xml file after is an encrypted username and password. Since I am running a VM environment and have the network disabled, how can I complete the setup wizard and proceed to just testing it locally? I skip all the LDAP tests, but then I can’t add an administrator at the end. If I launch the admin page, it goes back to the wizard, even if I restart Openfire. Setup is flagged to false in the openfire.xml file. Ideally I’d like to just test locally if I can get Spark to connect to Openfire.