Well, here we are again, decking the halls with boughs of holly, fa-la-la-la-la-la-la-la-la, and all that sort of nonsense... The time of year when the opportunity to steal a kiss from the secretary isn't an actionable offense (assuming, of course, that you catch her - or him - under the mistletoe and not just as you're waiting for the printer to finish. So be careful).
It's been an exciting year, but I'm going to leave my reflection article to the next one, when it'll be the millennium and - with any luck - we should all be here in one piece. As we run up to the end of the century, I'm hearing reports that not all the predictions have come true. Our dear French prophet, Nostradamus, was way off base, unless world destruction has actually occurred and someone has neglected to inform us country boys. News does sometimes take a while to reach us, so who knows? I may be writing for a reader base that no longer exists.
I love Christmas. Such a wonderful time of year... A time when you make those agonizing decisions about who not to send a Christmas card to... About who has really annoyed you enough during the year to be taken off the list. Yes, Christmas...a most wonderfully cynical time of the year. And, in the words of a great English writer: "Bah, humbug."
A Sordid Tale
This month has seen us struggle with Oracle and Microsoft NT and the sordid tale will be recounted here in detail. One of our major clients has many an Oracle database running on a variety of Solaris platforms. We've written many solutions to interface and tie these databases together using Java Servlets. You all know the woes I've had in the past with JDBC-Oracle drivers and I can happily report that all our problems had gone away. The more astute of you will notice the word had in the previous sentence, which would suggest that the problem may have returned. Read on.
We had a spare NT server sitting around doing not much, and on a whim I had the bright idea of installing Oracle on it and using it as a development server, which would speed up our testing. So while I installed Oracle, I asked our client to do a complete export of the data, and the resulting 400MB file was transferred up to us. The version of Oracle the export had originated from was 8.0.3 (Solaris), and it was destined to end up in an 8.0.3 (NT) version. So no immediate problems were expected.
After a bit of buggering around with table permissions, the file imported with no errors reported. Excellent. Morale was high, and we proceeded to hook up our back-end server software and start some serious testing. Hah! If it were only that simple!
Our JDBC driver started throwing out exceptions immediately. "No more data to read from socket." What the hell sort of error is that? So we checked all our driver settings, making sure our database URL was correct and pointing to the right machine. No problems there. I had this real horrible sinking feeling that we were about to enter the world of JDBC-Oracle again. This world is a bit like the mythical Narnia: once you've entered through that wardrobe, it's very hard to get back out.
But it's a type 4 driver and runs on Solaris with no problems whatsoever. For those of you not too familiar with the types of JDBC drivers, a type 4 is a pure Java solution, which relies on no native code. Out of the four types, a type 4 is the most portable since it can run on any of the virtual machines. I was loath to even think of taking this route. We were running our software from a Linux configuration and even thought for a split second that this could be the cause of the error.
As a precaution, I downloaded and installed the latest JDBC driver. In a warped sort of way I was thankful it still didn't work. I didn't want to think it was the JDBC driver, for if it was I could easily be forgiven for thinking there were dark forces afoot that deemed I was never to have an easy time with Oracle and JDBC.
So what on earth could it be? Well, back to what is probably the best Web site in the world for more information. Deja.com is an archive of the daily postings to the newsgroups and can be quickly and easily searched using a diverse range of options. If you've never been there, go - it'll improve your problem-solving abilities tenfold. I dutifully put in the words "No more data to read from socket ORACLE," hoping to see at least one person who had met the same fate I had. Boy, was I surprised.
Hundreds of posts were made regarding this problem. Hot damn, now this is the true power of the Internet. I quickly located the fact that Oracle for NT has severe problems and I needed to upgrade to 8.0.5. Surely not. You mean Oracle is at fault at the core server? Now this surprised me. I had always been under the impression that Oracle was rock solid with version 8.0 and it was just their drivers that let them down. But after downloading the update, installing and converting over our database file, sure enough, our application burst into life. Fantastic.
I did some more digging and discovered that Oracle on NT has never been an exemplary piece of software. Many people, many problems. Now why is this? me wonders. I remember reading an American version of one of the computer magazines - I can't remember which one - but it had an article that talked up the use of NT in server environments. It explained why it was much better than a Linux alternative and really went to town to sell NT. It had to be written by a Microsoft employee. It completely contradicted every experience I've ever had with the two operating systems. But it put enough doubt in my head to go off and do a little reading.
After reading through many posts, I can't really say one way or another that any one operating system was getting more bugs than the other. It's very hard to tell. I can only comment from my own experience, which I have to say doesn't put NT in a very good light at all.
For example, this recent incident with Oracle hasn't really strengthened Microsoft's case. As much as I'd love to point the finger of blame at Oracle, I can't...well, not fully. Their Oracle 8.0.3 is running perfectly on Solaris, so, assuming the NT version shares a significant amount of common code, the only difference has to be NT. I also can't point the finger of blame at Microsoft, but I think something is afoot that I'm not fully aware of.
Either way, without the assistance of Deja.com, I'd still have been struggling to get the bugger working. It has to be said that documentation on the Oracle Web site regarding this topic is very thin on the ground. For a company that's supporting many different versions, there should be a logical place where we can see all the problems. If such a page exists on the Oracle Web site, please, someone, e-mail me the URL. I thank you.
I love reading books about the history of our great industry. It's a continual buzz to read about people who are still very much active in our world. I'm getting through many of these company biographies and one, which I haven't quite finished yet, is from Paul Carroll: Big Blues: The Unmaking of IBM. This is turning out to be a really fascinating read, discovering the ins and outs of one of the biggest companies in the world.
It contains a great story that Carroll retells. An executive who has just cost IBM $10 million in a failed deal is hauled into the office of then CEO/cofounder Tom Watson. Watson asks the sales executive, "Why do you think I have asked you here?" The rather worried salesman responds: "To fire me?" Watson then replies, "Fire you? I've just spent $10 million training you!" This made me laugh. But if you're ever interested in what goes on behind the big blue letters, this is a great insight!
The mailing list is beginning to generate some seriously good threads of conversation. In the last month we've had a number of debates on the future of Java and whether it should be open sourced or not. One poster posed the question and we all answered. Surprisingly, not many supported the open sourcing of Java, which was good. Personally, I'd suspected a much greater swing of support, but it was good to hear everyone's structured answers about why it should, for the time being, be left to Sun to manage.
Discussions on what we'd like to see in Java during the next wave have also taken place. One topic that comes up time and again is operator overloading. I must say, I liked this facility in C++, and understand the apprehension of James Gosling not to include it in Java. But we hear that it's seriously being considered.
If you want to be part of the discussion, send an e-mail to [email protected] with subscribe straight_talking-l in the body of the e-mail. From there you'll get instructions on how to participate on the list. Thank you all for your continued posts, and I have to say that I thoroughly enjoy the variety of topics discussed.
Salute of the Month
This month I'm going to honor not a person but a piece of equipment that for us here at n-ary has improved the quality of our lives tenfold. It's a device I'm sure has helped many others in their quest for cleanliness in the kitchen. The device I refer to, of course, is the humble dishwasher. The person who invented this beast should be knighted or declared a saint. We recently took delivery of one for our kitchen, and I tell you it's a nice feeling to go and make the coffee without having the sinking (no pun intended) feeling that you first have to wash a pile of dirty cups. So, dishwasher, we salute you.
Cool to Be Country?
Last month I told you about my foray into the world of Dolly Parton. Well, in keeping with the country theme, I was watching the Country Music Awards and was introduced to the Dixie Chicks. It was a wonderful tune and I instantly wanted more. So I went out and bought their latest CD and what a wonderful purchase that turned out to be. So I'm still in my country mode with no signs of letting up. If anyone has any advice on how to get out of this world, please let me know...sooner rather than later!
Until then, I bid you a happy holiday season and look forward to seeing you in the year 2000!
Alan Williamson is CEO of n-ary (consulting) Ltd, the first pure Java
company in the United Kingdom. The firm, which specializes solely in Java at the server side, has offices in Scotland, England and Australia. Alan is the author of two Java servlet books, and contributed to the Servlet API. He has a Web site at www.n-ary.com. Allan can be contacted at [email protected]