Some of the best things in life are free. Use open source software where it suits your needs and evaluate it like any other product. Much of it is very very good. For example, Tomcat is a world class web server and servlet engine. I have had it running a complex web application for four months without a reboot. Closed source "off-the-shelf" programs can cause serious delays when there is a problem and you can't access the source code to investigate the issue properly.
“For some reason nobody could login to the website. We had a Spring Security exception which we Googled but it did not tell us much; just that the user did not have a valid Authentication Object. This told us the reason why no logins were possible, but not why, not the root cause. We switched on debug logging in the Spring package hierarchy but there was not enough in the specific classes we needed. So we downloaded the source to the JAR and added our own debug. The problem was soon identified – our LDAP bind user was not configured correctly, no problem with the Security library after all. We appreciated the value of having full access to the source code that day.”
PostgreSQL and MySQL are free, reliable, enterprise level databases. Go on, save yourself some time and money.
“The project was a serious web application for a blue chip company. Our architect, Shane decided that he wanted control over every piece of source code which meant writing it all ourselves; he would allow no open source libraries since they could not be trusted. The project required a persistence layer for all communications between the developer code and the database. Rather than use a common open source persistence layer like OJB or Hibernate, we wrote our own, called the Data Access Layer (DAL). After one man year of development, the DAL implementation was still so basic that simple joins between tables were impossible. In the second man-year of development, an in-memory cache was added to the DAL to improve its terrible performance, but the cache did not work in a cluster and needed application code changes to delete items from memory. Any developer who understood the inner mysteries of the DAL had tenure with the project.”