Friday, October 29, 2004

See you at MAX!

I am off to MAX 2004 next week where I will be giving a session on the Event Gateway feature of ColdFusion Blackstone. Should be a great time. I am looking forward to talking with customers and getting the kind of feedback that we on the CF team really love. Almost the entire engineering, QA and documenation teams are attending this year, and we have been given shirts to make us highly visible (I call them our bulls-eye shirts). I don't know if that is a good thing or bad.

So stop me and tell me what you like/don't like/want to see in CFMX. You will have better luck talking to me about Gateways, Verity Search and Web Services than database drivers and reporting, but such is life.

Also, watch for the "Meet the ColdFusion Engineers" BOF session which is (I think) Tuesday night. You can have us all lined up at the front of a room (all wearing our bulls-eye shirts probably) and that will be a 'target rich' environment. :-)

See you on Burbon street!

Converting .NET dataset to ColdFusion Queries

Joe Rinehart has posted on his blog a short UDF that shows how to convert a Dataset to CF queries.
This is something we get asked about all the time: "Do CFMX web services support the Microsoft DataSet object?" I have always recommended that using DataSet is a really good way to screw interop, since it is a Microsoft proprietary data type. The problem with it? The WSDL does not describe the data inside the dataset. There is XML Schema inside the XML on the wire that then describes the types of the data. This requires parsing this Schema at runtime. Something the Axis engine at the heart of the CFMX web services support does not do. Why not? Because it is fairly difficult to do well, slows execution time, and would only be to support this wacky MS specific type.

In any case, I haven't tested Joes implementation, but if you are dealing with a MS specific web service that you have to consume, this should help you out tremendously!

Tuesday, October 19, 2004

CFMX and DNS caching

Recently a customer complained about the behavior of CFHTTP in ColdFusion MX:

"CFHTTP permanently caches the DNS look-up. This cache can only be flushed by recycling ColdFusion service on the machine in question. Why doesn't CF rely on the server to resolve the domain? What's with caching the DNS look-up at all??"

Needless to say, the CFHTTP code doesn't do anything like this because it would make customers mad. :-) So I did a bit of investigation. The underlying library we use to support HTTP operations (after I switched it from using the Java URLConnection class, don't get me started...) uses the Java InetAddress class to look up host names:

http://java.sun.com/j2se/1.4.2/docs/api/java/net/InetAddress.html

Reading this page you will notice that the JDK caches both positive and negative DNS lookups. And it caches the positive lookups forever.

Hey, its not our fault!

Luckily, this can be controled by the Java security configuration for the JVM. In JDK 1.4.2 you can edit the file .../lib/security/java.security and set the value networkaddress.cache.ttl, commented out at the bottom of the file, to something other than -1. This controls the time to live for positive DNS results. There are dire security warnings about doing this, but something reasonable, like 4 hours (14,000 seconds), would probably be safe.

I am going to try and get a Tech Note published by support for this and perhaps mention this configuration in the CFHTTP man pages too.


Flat-screenTV emits international distress signal

I had to blog this: Flat-screen TV emits international distress signal. It was nice of Toshiba to offer him a new TV, but how on earth does a piece of electronics manage to hit the exact fequency of the international distress signal? And how many more of these TV's were manufactured? Unbelievable!