Category Archives: Oracle

CVS is pretty cool

Ok, this is by no means timely or newsworthy… But all the same I wanted to put some thoughts together about release management using CVS. I had a recent conversation with one of the Application Developers for a customer of mine in Boston, MA. This client had been using some pieces of CVS for some of their website release management. With the recent departure of their BUILD-MEISTER for greener pastures the group was left without a real CVS guru. It never hurts to write about a few of the great features of CVS that are powerful when embraced by developement teams.

CVS is Concurrent as it’s name suggest. OK, so this isn’t really a surprise, but everything about CVS is built around the fact that there are going to be multiple people needing to do work on the contents of the repository.

CVS builds on some great UNIX tools. Diff/merge and the likes are leveraged as part of the CVS system so that you can use some pretty cool packages and viewing mechanisms to resolve conflicts. Because it leverages some of these things, you have some flexibility for extensions. Also, one can use it remotely and over ssh to further enhance the availability and security of the system.

CVS is widely used, so it will be easy to use with other products. Developers/Vendors will likely provide support for CVS if they are building packages that are meant to integrate with a Source Control System. As it pertains to this particular client, the easy integration with Ant for building, jarring, and deploying their applications. I’ve built some rather robust Ant build scripts that can centralize most of a QA/build process. There’s plenty of web/windows/*nix clients for interfacing with a CVS repository which means your not going to get locked into just one vendors particular client/repository.

CVS can help you manage releases. Do development on 2.0 and be able to fix critical bugs in the 1x branch. Then, fold it in using some of the merging capabilities. The CVS tool is immensely useful for the administrator who is aware of branching, merging, and tagging.

Now, if only Oracle Development could be “managed in text files” so I could put it into CVS… 🙂

Oracle 10g on VMWare

I’m working on a customer site that is using VMWare. While the regular DBA group insisted that none of their production databases are hosted on VMWare, a new BI project was scheduled to be the “test” to see if Oracle products (AS/EE DB) could run successfully on these “virtual machines.”

As a developer who is aware of the burstable nature of resource utilization, the promise of VMWare is immense. Our applications often use immense amounts of I/O, CPU, and Memory while doing their real work. However, a great deal of the time they sit waiting for human operators to catch up. The idea of housing many enterprise class servers on one physical system with a central location of management/provisioning/performance evaluation/etc sounds brilliant.

Now I’ve read the VMWare product material, and an overall positive set of opinions and benchmarks from people running on vmware. From where I sit, the VMWare stack is a good solutions for most systems. If I were running a farm of JBoss, Apache, MySql, IIS or other commodity-esque servers VMWare would be an ideal solution. Actually, I should rephrase, the programs that I refer to are those that have a VERY WIDE installation base and have been installed on a diverse and very hetergenous set of “Linux” or “Windows” hardware combinations. These programs are the ones that I believe would do very well in VMWare because they are used to “funny” hardware readings, etc.

Again, this is the experience of one consultant on one project, but I feel it forms a valid recommendation all the same…

Oracle on VMWare is possible but not recommended, currently. Oracle’s official position (note 249212.1 on Metalink) is that it is supported as long as you prove to them the same bug exists on a regular PC (having to have an identical physical system to prove to Oracle that it’s not VMWare sort of defeats the purpose of VMWare now doesn’t it!)

My primary reasoning being that “Oracle is an application built to determine intimately, the structure and performance of the underlying hardware in an effort to increase it’s own performance.” It has hooks into system areas trying to poll and read Memory Usage, I/O performance, CPU utilization, etc. Oracle endeavors to understand, at a low level, the configuration and the performance of the platform that supports it. VMWare, in my experience, tends to report some “funny” readings when it comes to Hardware.

    On my project, the laundry list of “funny” behavior include:

  • df commands that hang with no Ctrl-C response. Must log in on another term and kill -9.
  • applications do not use swap space. Linux sees the swap space but does not use it.
  • CPU readings show no idle time, full system time, with oracle Idle.
  • random startup/shutdown errors with Oracle with regards to obtaining network information
  • 10g AS EM Website has difficulty keeping track of processes (nearly always, the control panels show the component as down/unavailable/etc) when the components are operating properly.
  • Server can be “rolled back” to a save point in the past without any visible warnings of such an event (when a physical server is lost, the backup team typically notifies users that it was restored from X backup). VMWare can be rolled back with a simple reboot (obivously this is configured but it has to play into the physical deployment of your Oracle to ensure you get the right behavior).

Note: I’m no OS expert, and many of these can likely be resolved by a RH 2.1 Admin with proper VMWare knowledgable. Really though, are the admin/consulting dollars well spent resolving issues?

Some may flame me for being such a “business solution” biggot, but hardware is a cheap commodity and should be factored as such The price of a few 2way Xeon servers with RAID and copious amounts of RAM could easily be overshadowed by enough admin/consulting days lost on tracking down “funny” behavior.

The saving grace for VMWare may be a feature which I have not used. Live, development snapshotting. What I wouldn’t give for a great, easy way to take live snapshots throughout time while doing my work. Development is many times, exploration, and the ability to “play it safe” with the click of a button is brilliant.

I’d love to hear from anyone out there on their experiences with Oracle on VMWare. Perhaps I’ve just had a bad go at it… Hope, for reasons of happy Oracle professionals, your experience has been better!

UPDATE: The servers have also “FROZEN ENTIRELY” a la Blue Screen of death however this is RH Enterprise Linux. Just another item on the laundry list.
UPDATE 2: Servers have frozen up again, and the systems staff can not, for the life of them, figure out why the phase of the clock is so awful.