Jdbc connection errors during install

I’ve just completed the Openfire install on Fedora 9 via rpm.

Everything looks good.

I’m connecting to port 9090 via browser and completing the setup however when I get to the page Database Settings - Standard Connection

I keep getting an error “A connection to the database could not be made. View the error message by opening the “/logs/error.log” log file, then go back to fix the problem”.

I have tied every combination of localhost, 127.0.0.1, hostname and FQDN to no avail.

Both openfire and mysql reside on the same server. I can’t get past this page.

Any help wouldbe appreciated. I’m tearing my hair out. I completed the install using Ubuntu and Openfire source last week in the lab and it worked perfectly. I need to use Fedora for my production server. No choice.

Following are the Openfire error logs:

/opt/openfire/logs/nohup.out (this error is thrown every 1 second)

2008.05.27 04:54:28 EXCEPTION

java.lang.ClassCastException: gnu.java.nio.ServerSocketChannelImpl cannot be cast to java.nio.channels.SocketChannel

at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:532)

at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:166)

at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java :124)

at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:537)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

/opt/openfire/log/error.log

java.io.CharConversionException

STACKTRACE:

java.io.CharConversionException

at gnu.gcj.convert.Input_iconv.read(libgcj.so.9)

at java.lang.String.init(libgcj.so.9)

at java.lang.String.<init>(libgcj.so.9)

at com.mysql.jdbc.SingleByteCharsetConverter.<init>(SingleByteCharsetConvert er.java:153)

at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverte r.java:108)

at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverte r.java:86)

at com.mysql.jdbc.Connection.getCharsetConverter(Connection.java:3505)

at com.mysql.jdbc.StringUtils.getBytes(StringUtils.java:615)

at com.mysql.jdbc.Buffer.writeStringNoNull(Buffer.java:655)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1686)

at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)

at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2525)

at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4139)

at com.mysql.jdbc.Connection.createNewIO(Connection.java:2789)

at com.mysql.jdbc.Connection.<init>(Connection.java:1555)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)

at java.sql.DriverManager.getConnection(libgcj.so.9)

at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConn ectionBuilder.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)

  • END NESTED EXCEPTION **

at com.mysql.jdbc.Connection.execSQL(Connection.java:3330)

at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2525)

at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4139)

at com.mysql.jdbc.Connection.createNewIO(Connection.java:2789)

at com.mysql.jdbc.Connection.<init>(Connection.java:1555)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)

at java.sql.DriverManager.getConnection(libgcj.so.9)

at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConn ectionBuilder.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)

java.security.KeyStoreException: jks

at java.security.KeyStore.getInstance(libgcj.so.9)

at java.security.KeyStore.getInstance(libgcj.so.9)

at org.jivesoftware.openfire.net.SSLConfig.<clinit>(SSLConfig.java:121)

at java.lang.Class.initializeClass(libgcj.so.9)

at org.jivesoftware.openfire.container.AdminConsolePlugin.startup(AdminConsolePlug in.java:96)

at org.jivesoftware.openfire.container.AdminConsolePlugin.initializePlugin(AdminCo nsolePlugin.java:170)

at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java :448)

at org.jivesoftware.openfire.container.PluginManager.access$300(PluginManager.java :47)

at org.jivesoftware.openfire.container.PluginManager$PluginMonitor.run(PluginManag er.java:1014)

at java.util.concurrent.Executors$RunnableAdapter.call(libgcj.so.9)

at java.util.concurrent.FutureTask$Sync.innerRunAndReset(libgcj.so.9)

at java.util.concurrent.FutureTask.runAndReset(libgcj.so.9)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$1(l ibgcj.so.9)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodi c(libgcj.so.9)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(libgcj .so.9)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(libgcj.so.9)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(libgcj.so.9)

at java.lang.Thread.run(libgcj.so.9)

Caused by: java.security.NoSuchAlgorithmException: Algorithm of type from provider [org.bouncycastle.jce.provider.BouncyCastleProvider: name

=BC version=1.39] is not found

at gnu.java.security.Engine.getInstance(libgcj.so.9)

at gnu.java.security.Engine.getInstance(libgcj.so.9)

at java.security.KeyStore.getInstance(libgcj.so.9)

ok I’ve solved my own problem. Here’s the solution.

It appears that the GNU compiler for java installed by default with Fedora 9 has limited JDBC driver support.

One option is to install Sun Java or simply remove any environment variables referencing JAVA_HOME and the Openfire RPM will automatically point to its own copy of JRE which is bunded with the RPM. See below for how to looks on my machine.

$ps -ef | grep openfire

daemon 9393 1 99 07:44 ? 00:00:05 /opt/openfire/jre/bin/java -server -DopenfireHome=/opt/openfire -Dopenfire.lib.dir=/opt/openfire/lib -classpath /opt/openfire/lib/startup.jar -jar /opt/openfire/lib/startup.jar