Announcing storage provider supporting MSSQL, Oracle, DB/2, MySQL, Firebird, PostgreSQL


#1

Hi, all! I’ve been a Hangfire enthusiast now for about two years. During a large span of that time, I fretted a whole lot because the SQL Server storage implementation uses Entity Framework, which is not compatible with the RDBMS I had available at the time (SQL Server 2005). I decided to take a different approach and develop one that doesn’t use Entity Framework, and since I’ve had a whole lot of experience with Fluent NHibernate as an OR/M, I went through a few attempts with that.

After a few crashes-and-burns, HERE IT IS!

Nuget: https://www.nuget.org/packages/Hangfire.FluentNHibernateStorage/
Github: https://github.com/xavierjefferson/Hangfire.FluentNHibernateStorage

This version has been tested with MSSQL, MySQL, and PostgreSQL. There is provision, also, for Oracle, DB/2, and Firebird. This code was forked from the MySQL implementation developed by arnoldsgudas.

Please go ahead. Kick the tires and pass along any fitting recommendations.


#2

First of all, I recommend to review the code side-by-side with SQL Server storage implementation, because mysql storage may contain errors on its own, which you inherit along with your own :slight_smile:

For example, it is known to use a wrong data type for score column, which leads to precision losses, so delayed jobs miss the scheduled time.


#3

Believe it or not, I already found that bug with the score column :slight_smile: because when Hangfire utilizes it, it’s of type double (not float). I’m sure this thing isn’t perfect, but it’s a start. Thanks!


#4

Is there any news about Oracle support?
any feedback from some well tested real case?

thanks in advance


#5

I did testing on Oracle and even got some feedback from a gentleman in Spain who put it to use with Oracle.


#6

… I used the managed drivers for Oracle. Be sure to check the documentation as there’s specific configuration to use those.


#7

Nice! at this point, I ask my self what’s need for Entity Framework version :wink:


#8

Thanks for this sample I tried using it with oracle and I am able to see jobs are running as per schedule in sample code but I see many exceptions in log file - (0x80004005): ORA-08177: can’t serialize access for this transaction "
More information is in below link


#10

Hello, I will be re-opening my Hangfire.Oracle extension. I posted a discussion on here regarding my findings with Hangfire and ASP.Net. Here’s the link:

Oracle Extension


#11

Updated nuget package.