I know a lot of people are looking for low-cost alternatives to the major DBMS's out there (Oracle, SQL Server, DB2, etc.) While some know MySQL, PostgreSQL, Inprise/Firebird, and others to be popular and often adequate options, others point to their challenges in scalability (their threading/connection models won't support very large numbers of concurrent connections).
There's another OpenSource alternative out there, and it's one that many may not have noticed (or may even dismiss due to its name): SAP DB, at www.sapdb.org. It's from the same company that created the enterprise system SAP R/3, and it has its roots in the Adabas enterprise DBMS.
Even if you're not an SAP customer, you should give it a look. It offers all the robustness and features of enterprise DBMS, yet is fully SQL-92 compliant. It runs on Windows and *nix, includes ODBC and JDBC drivers (and more), offers a web-based tool interface (supporting IIS, Apache, or their own web server), a SQL Studio tool for windows, and lots, lots more.
And yes--it supports stored procedures, triggers, transactions, and more. It is truly client-server, supports very large databases, and lots more. The docs are professionally done and there's available support (both self-service and paid). There are tools for managing the databases and environment (the dbm tool) and for creating queries (sql studio), and both of those are available both as web interfaces or desktop clients.
Best of all, all this is absolutely free--even for deployment.
I've been able to use it with CF5, by way of it's available ODBC driver (also free). It didn't show up in the CF Admin's list of datasource types, but I could create it in the ODBC Data Sources dialogue in windows, where it showed up as "SAP DB 7.3" or "SAP DB 7.3 Web", depending on which you downloaded. I didn't see any obvious difference between them. So while you can't add new DSNs in the CF Admin, you can edit them once added this other way (though the CF Admin datasource edit screen indicates some limits in what it will allow you to edit about the DSN properties).
For CFMX, it works as well, but not using the "odbc socket" driver type. Instead, you need to use the "other" driver type offered. I followed these steps:
- save the downloaded sapdbc.jar to cfusionmx\lib
- in the admin dsn definition, select "other" for driver type
- in the screen that follows, for the "jdbc url" use jdbc:sapdb://[yourserver]/[yourdb]
- for the "driver name", use com.sap.dbtech.jdbc.DriverSapDB
- use anything for the driver name
Hope that's helpful to others.
I've also added some follow-up notes on the SAP DB installation that will be helpful for many, I'm sure.