Flash Remoting won't connect "NetConnection.Call.Failed"

I've been doing some with for the Flextras promotions around 360|Flex. As part of the promotions I am creating a customized version of my Game; strictly for Flextras. It is going to allow people to login and will keep score on our server instead of internally to the app.

Since this is a Flash app; I'm using Flash Remoting to connect to our ColdFusion server. Everything worked fine on my local machine. Everything worked fine on my development server (AKA Staging). However, my production machine was giving errors that looked like this:

faultCode: "Client.Error.MessageSend"
faultDetail: "Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url:
faultString: "Send failed"

I've tried a lot of different things including not using http instead of https. I knew that Flash Remoting was working on the production server because I had other Flex apps working without problems. So, what was the problem?

I've been working on this on and off for about five days; so tried a lot of different things. In the end I discovered two things:

  1. Make sure your Flash Remoting URL has a '/' at the end of it. 'https://www.flextras.com/flex2gateway' was not working. It appeared to add a JSessionID on it; which was causing the server to throw a 404 error; causing the whole call to fail. However, if I changed this to 'https://www.flextras.com/flex2gateway/' that problem went away.
  2. Turn off the Flash Builder Network Monitor. The Flash Builder Network monitor was intercepting the call and causing it to fail. The calls appeared to work fine from a web browser with the Flash Builder Network Monitor enabled, but not from the mobile app.

I think--but am not completely sure--part of my issues related to using HTTPS on the server instead of HTTP. That could be the reason I had issues on the production server, but not my local or staging box.

How can you use Static IPs with ATT UVerse Service?

I've been a DSL Customer for close to a decade, starting with SNET when I moved into this house and then becoming an ATT Customer when they swallowed SNET. I run a home based business, building custom software for small businesses and it has always been beneficial for me to have static IP Addresses. ATT recently "forced" me to upgrade my service to UVerse, and the upgrade has been a tedious one for me. There are various reasons for this including the fact that they block port 25, and forced me to pay to remove the block on my plan. The other reason this has been hard is my use of static IP Addresses.

This post is to tell you how to get your Static IP Addresses working with ATT UVerse. The documentation out there is somewhere between lacking and non-existent.

Why do I need static IP Addresses

The crutch of this post relates to setting up the static IP Addresses, so first I wanted to discuss why I need static IP addresses. I'm a programmer, and I make a living by solving the problems of small businesses with technology. I primarily do development with web based technologies. I need a static IP for two primary reasons, one to host a server and two to access remote servers that are IP Restricted. I'll expand on each of those.

I keep my development server on my home office network. I host a web server so my clients can check in on development in progress. The machine also hosts a database server and version control repository. It is common that I hire remote workers who have to access those services. The machine also hosts my backup repository. Every machine on my network is backed up on a daily basis. While it is not necessary for the backup server to be remotely accessible, there is a level of convenience to still perform my backups while on the road.

The second reason I need a static IP is so I can access the remote services of my clients. It is not uncommon that a client will need my static IP in order for them to give me access to their VPN or web server. It is this very reason I upgraded my SNET account to static IPs in the past. Not having a static IP was limiting the opportunities.

I'm sure if you want a static IP for your home network, you have similar reasons. Before the UVerse upgrade, my network used a Netopia router (The Netopia 3347-02 ) to assign the static IPs based on the MAC Address of the machine. This was useful for multiple reasons:

  • First, I could give an individual IP Addresses to another router. I used this to segment the 'home" machines from my work machines. Home machines might be my wife's laptop or the Wii. Work machines would be my primary development machine.
  • Second, I could individual IP Addresses to a specific machine. This is exactly how I set up my server. I gave its network card an external IP and pointed the DNS back at that IP address for the domain.
  • Third, even though the machines had different external IP Addresses, they could be on the same internal network (192.168.1.x ). This allowed me to easily share files among the machines. To push a new build from my development machine to the development server, I merely had to move files across the network and not deal with FTP or some other such protocol. This was convenient.

Those were my primary reasons for the setup I had.

Problems with the UVerse Setup

With the UVerse setup, I ran into multiple problems. The first is that even though I was paying for a block of static IP addresses, those IP Addresses were not distributed to me manually. So, all my "DHCP" machines were seen externally as some IP Address out of my block. This was limiting access to remote services I needed to access. Before the UVerse upgrade, this was not the case.

The second is that there was no way to assign IP addresses at the hardware level. It had to be done by setting them on the specific machine. This meant that the internal network access of the machine was limited. Machines with static IPs were not discoverable on the network or accessible by their network name. I did discover-eventually-I could access the machines by their external static IP Address, though. But, remembering "123.987.54.115": is a lot harder than remembering "DotComItDevServer".

I also had another more pressing problem. Pages wouldn't load properly. It would routinely take me three reloads before my profile on Stack Overflow would load. Or, we would load up our Facebook wall and most of the images wouldn't load. These sort of dropouts are a documented issue.; and my wife was not amused.

The fix for the drop outs was to set up the ATT UVerse Router (A Motorola NVG510) to operate as a pass through router; and use another router behind it. I spent roughly a day trying to make that work with my Netopia before deciding it wasn't possible. A friend suggested I try a Linksys/Cisco RV042. I found the manual and decided to give it a shot. It sounded like the one-to-one NAT was exactly what I wanted.

As a side note, the RV042 manual is the best documentation I've ever seen come with a router. Lots of routers I've used would have a page named something like "NVM-142" setup. The help associated with that page would say "This is where you set up the NVM-142" settings." However, they were often lacking in describing what NVM-142 was or why I would want to change the settings. ( I made up the name NVM-142).

Nevertheless, the RV042 did indeed work to do exactly what I wanted.

Step 1: Give the RV042 its own Static IP Address

The UVerse router doesn't act as a pass-through. A few folks found a work around, but it didn't work for me with the Netopia. I didn't even try that approach this time. My first step was to see if I could assign one of the static IP addresses from my "block" to the RV042. I could, and did. Sign into your Motorola UVerse router, select "Home Network" from the main tab bar, and Subnets and DCHP from the submenu:

The Public Subnet information relates to my block of static IPs and was set up by the UVerse technician who did the install. The private LAN setup was chosen by me; but based heavily off the initial setup. The device IPv4 address is the IP address that you will use later to access this Router's admin system. Most likely it was set by default to 192.168.1.254 . I changed the third number to a 2. I did this because the DV042 router would not me use an IP range different than 192.168.1.*. (I find this extremely odd and may be something I did).

The start address and end address define the 'local' range that will be applied to machines that hook up directly to this router. I think 64-253 was the default. I removed the 253 during my experiments, but I don't think you have to. The "passthrough" instructions tell you to make sure this assigns only a single IP Address, but I didn't bother.

Give the Cisco RV042 a Static IP

Get into the Cisco router admin. I strongly suggest you use Internet Explorer for the admin; as it was really funky in Firefox. You may be able to do a lot of this using the setup wizard, but I'll explain assuming you won't. Click the setup, and network options:

The host name and domain name came in as the default and I left them unchanged. I do not believe that UVerse requires those there, but I'm not sure.

I set the IP mode to IPv4 only. This idea came from the instructions on the other site about setting up the other router as a passthrough. I'm not doing anything with IPv6, so this feature doesn't affect me (yet). I gave the device IP an address of 192.168.1.253. I was hoping to get both this router and the UVerse router operating off the same range, but eventually landed on the "two range" approach. In my use of this router, I am only using WAN1; and I set it to Static IP. Click the edit button next to WAN1 and you'll see this:

I set the WAN Connection type to static IP. Then I specified a WAN IP Address that was in the range provided to my ATT. I used the same Subnet mask that the ATT Folks set up in the UVerse router (see Screenshot 1). I specified the default gateway address as the public IP Address specified in the private subnet section of screenshot 1.

The DNS Servers come from the UVerse Router. Sign into it again, click the Broadband main menu button and then click Status. Copy the Primary and Secondary DNS listing from that status page into the RV042 spot here. I kept the MTU setting to the default.

Set up DHCP on the DV042

Now is a good time to set up your DHCP setting. My original intent was to make the UVerse router deliver IP addresses on one block (192.169.1.64-253) and the RV042 deliver the rest ( 192.168.1.1-192.168.1.63). However, that wouldn't work. This DHCP setup page wouldn't let me enter a value below 100 for the end range, and the router would not let me change the actual range to 192.168.2.x . That is the reason I changed the UVerse router's default IP addresses instead of this one. Here is a screenshot of the DHCP page:

I truncated some parts of this screenshot; removing the section for Static IP (which we'll get to later) , the DNS Section (which I did not use, leaving the values at 0.0.0.0), the WINS Server (which I also did not use leaving the value at 0.0.0.0), and the DNS Local database (which I also did not use).

What I did do is enabled the DHCP server, did not enable the DHCP relay. I set the start value to 192.163.1.1 and the end value to 192.168.1.063. If I the final number in the range end slot is less than three digits it gives a [confusing] error, which is why I had to add the leading 0. I could probably use a larger number span, but when I set these values I was still experimenting with getting both the UVerse and the DV042 to share the same IP range.

Around this point in the process, you'll need to restart the router. Hook up the WAN1 port on the back of the RV042 and plug it into any Network port on the back of the UVerse router. Now any machines that connect to the UVerse Router will, externally, show the static IP address assigned to the router, while internally having another address. This allows us to do the filing sharing internally, and access remote services externally; which is an important piece to why we chose this approach.

Set up the Cisco Router to assign static Internal IPs

There are two steps to route the external static IPs to a single machine in the internal network. The first is to assign an internal static IP to the mac address of the machine. The second is to tell the router to redirect all incoming traffic to one of the IPs in your block to that internal IP. I'll cover each step separately. From the DHCP Setup page in the RV042, take a look at the Static IP section:

Click the Show Unknown MAC Addresses button. This button is designed strictly to make it real easy for you to assign internal IPs to the static IP Address. This popup should open:

Choose the MAC Address that represents the machine-or device-you want to assign a static IP address to and click the enable button. You can also give the machine a name so you remember what it is later. I use the computer names that I use internally, such as "DotComItDevServer" or similar. Click the OK button and the settings will be saved.

Your new entry will show up in the white box below the edit form. You can change the Internal Static IP Address by clicking on it in the box, making your changes, and then selecting update.

Assign External IPs to Internal IPs

Next you'll want to enable one-to-one NAT on the RV042 router. Select from the Settings navigation on the left and then click the one-to-one NAT button. I believe this was disabled by default, but there should be a checkbox you can select to enable it. You'll see a screen similar to this:

This part was not intuitive to me; however the full manual provides the details. This section of the admin will let you assign a range of external IPs to a range of static IPs. If you use the range, then the first number of the public range will apply to the first number of the private range, and so on. When using DHCP you really never know which machine is going to get which static IP. That would be fine for the use of my range to access external computers, but less than idea for providing a public IP that people can access from the outside. I set up all my ranges with a 1 to 1 ratio.

For the internal IP Address use the one you assigned to a specific MAC address earlier. ( 192.168.1.3 ). For the public range, just choose a number from the public block you were provided by UVerse. For the range length, select 1. Click the "Add to List" button. You should be good to go, but you may want to restart the routers and the computers just to be on the safe side. You may be able to get by doing an IPConfig /release | ipconfig /renew on the computer in question.

Setting up a Wireless

My next step-which does not relate to static IPs-was to turn off the wireless in the UVerse router, plug my old Netopia router into the RV042, and then set the Netopia's DHCP to relay mode. This means any wireless devices that connect to my network will get an internal IP address from the RV042.

Final Thoughts

This is not the only way to set up static IP addresses. My friend Andrew has a post about his adventures doing the same thing. He has similar reasons for wanting this that I do. Andrew took a different approach than me; but his blogging about it inspired me to write this. If you're still 'researching' then I suggest reading his post too.

I think the "nightmare" portions of my UVerse upgrade are almost over. I just have to call them to find out if they did force me into a yearly "premium support" subscription-as per the email I got from them or if what I was told about being charged a 1 time fee was the truth.

ATT UVerse Made me Pay to Open Port 25

Words cannot express how seething I am and how I've been treated during my DSL upgrade to ATT UVerse. This is my attempt at getting some closure.

The Setup

Before I get into details, let me start with some background. I signed up for DSL service when I moved into my house, roughly 10 years ago. I'm not sure why I chose DSL Internet over Cable Internet, but that is the choice I made.I signed up with SNET a company eventually swallowed up by ATT.

I run a home based business, and as part of that business I have my own email accounts on my own domains. I also pay for static IP Addresses and run a home based server. This server contains things I use for development, such as a SVN repository, a database server, a web server, and a backup software.

I used a Netopia Router to route the static IPs. It was pretty cool, at the router level I was able to use any of my static IP Addresses to a machine based on the Mac address. I gave one to my Vonage router; one to my development server, and one to the rest of the machines in my house.

During the course of any day, my development server may need to send out email, such as notifications related to the backup software, or errors that occur on server. To make that happen I have the IIS SMTP Server installed. It acts as a relay, only accepting emails from the box it is installed on. This should prevent my server from becoming a big spam bot that some open relays.

This setup has worked fine for years, with minor changes. At one point, many years ago, everything stopped and I could not send email. I got on the phone with support and eventually I found out that--without notice--they started blocking port 25. Port 25 is used by many email servers to send email. As best I understand, it's blockage has become much more common in an effort to stop spam emails from being sent. I don't have an inherent problem with that, but my situation is unique and I need that port open. I don't remember details, but I think this was shortly after SNET merged into ATT. It was some time on the phone and everything got fixed without issues.

This is a fairly complicated setup for a 'standard' home network--although probably dead simple for a corporation. I fear any changes to the network because they could interfere with my ability to do business. I've looked at the higher bandwidth of Cable Internet service and never made the switch, everything I had was good enough for my purposes.

This time, I was seriously considering a switch to cable, and was prepared to make the phone call to prepare for the upheaval of my business. I even spent an hour talking to a sales rep from the cable company to ask tons of questions about port blocking, bandwidth limits, and how to use static IPs on their system. Then a letter came from ATT, saying that everyone had to upgrade. I assume this was because I was an SNET customer and they were working to move everyone to the same service.

On paper, this sounded good. It would double my bandwidth and I didn't have to switch providers. I spoke to a sales rep about static IPs, port blocking, bandwidth limits, and related stuff. I was assured that the "modem" they provide could handle the static IP Routing. I was also assured that the setup should be really easy.

Everything sounded good; I decided to stick with ATT for the upgrade. ATT didn't know it; but they kept a customer that day.

Upgrade Day

The upgrade was done on Monday, and it has caused a generally horrible week.

The guy came to upgrade. He had never dealt with static IPs before; and had to get his manager to help to get them setup. I think the installation was delayed at least an hour because he plugged a cable into the wrong phone port. My house is rigged for two independent phone ports in every room--a relic from the days before Cell Phones and VOIP.

But, my question was "how do I make use of the Static IPs with this router?" He kept telling me "You souldn't need to change anything; it should just work." I kept saying, but all the information about the Static IPs and routing is in the Netopia Router that is unplugged and sitting on my desk." The only other time this guy had to set up static IPs was for a hospital. My setup was apparently more complicated than theirs.

We eventually figured out how to use a static IP from the windows machine; just setting the network settings manually. That would suffice for now. I'd prefer a hardware solution like I had last time; but I fear that will not happen.

I spent most of Tuesday trying to get my network setup with a hardware solution, using the new Motorola UVerse router in front of my old Netopia Router. On my server, if I used a static IP; then the machine could not access file sharing on my local network. If I used a dynamic IP; then the server was not remotely accessible. Eventually I discovered that I could get files on and off the machine by using the static IP. That isn't as elegant as what I had, but I'll deal with it for now.

In my previous static IP block; my "dynamic" machines would use one from my static block. That made it easy to tell my managed hosting provider to just open access to the servers for these IP Addresses. (They only open things like FTP and SQL Server for specific IP Addresses)

Unfortunately, with the new system, the public IP of my U-Verse router is not one from my static IP block. That means my primary dev machine will need to use a static IP address in order to not lose access to the static IP. This wouldn't be a problem if I could have just add a router for all my work machines and assigned it a static IP based on the MAC Address of that router. That router could provide all the machine behind it a dynamic internal IP. It would be my preferred setup.

I spent quite a bit of time trying to finagle the ATT provided router and the old Netopia router to work together. Here are instructions that should work--as a work around. Alas, I was not able to get them to work. The IP Mapping feature of the Netopia was ignored.

I crawled into bed at 5am on Wednesday morning, completely defeated. I haven't come that close to an all-nighter since studying for a calculus final freshman year in college with Scott, Jude, and some other girl I do not remember. If memory serves me, Kurt Cobain was found dead while we were studying and I found out the next morning. But, I digress.

Why can't my server Send Emails?

On Wednesday, I tried to resume development (AKA Client Work). It became immediately apparent that my server was not sending emails it should. They would end up in the queue directory of the IIS SMTP Server and the event viewer would show me messages like this:

Message delivery to the host '' failed while delivering to the remote domain '' for the following reason: The remote server did not respond to a connection attempt.

It was SMTPSVC Error code 4006 for the search engines.

I assumed it was a port blocking problem based on past experience; but wanted to isolate every possibility. So I spent much of Wednesday trying out all options, including trying to open up specific ports using the UVerse router, which is a Motorola NVG510 for those keeping track.

Eventually, I decided I'm getting nowhere and decide it is time to call ATT Support. Believe it or not; this is where my story starts.

The First Set of Calls

I start on the ATT web site and click an IM support link; basically asking if a port is blocked and I can't send email. They seem to want to redirect me to someone who can configure my email client. :ugh: I'm given a phone number and give them a call. [I can't find where I wrote down that number, sorry]

I speak to a bit with someone whose name I didn't catch. She redirects me to a second person, "Mickey". Mickey sounded like a girl, but the name is usually Male in the US, so I'm not sure. I go back and forth with Mickey. She asks about my email client I'm using. I say "Thunderbird." But, of course the problem is not with my email client. The problem is with an SMTP Server.

Sending email used to be a problem in the past, but I recently switched to Google Apps which does not use port 25 for their outgoing SMTP server.

I think we eventually got the the port 25 issue. Sometimes she was hard to understand. She gave me the impression that there was on department she couldn't reach and they may be able to fix it for me; but since she can't reach them I had to pay a one time fee of $15.

I was pretty upset about this; as I've been a customer for 10 years and they forced me to upgrade. I argue with her; and ask to speak to her manager. Somehow she talked me out of that. I'm, roughly, two days into this now so I decide $15 is a no-brainer so I can get back to servicing real clients. I say, "okay, let's go for it."

Then she starts reading me the terms and conditions. The first word that sticks out is "monthly." And I call her out on it, because she had said it would be a one time fee to open the port. She explains that she is reading an old version of the terms of service and not everything will apply to my situation. I grudgingly let her continue.

Then she comes up to a termination of service fee. I question that too, as it is a one time fee; not a service. She explains, once again, that these are old terms of service and do not apply to my situation.

She also explains that all calls are recorded and she would get fired if she lied to me and she doesn't want that.

Even though, Mikey guaranteed me this problem could be fixed tonight; part of the terms and conditions were that I was eligible for the time they spent even if they couldn't fix it.

I let her continue. She shifts me to another line to pay, then I'm transferred back to her. She says thank you and offers to transfer me to "Connect Tech". She gives me the number, 1-877-888-7360 and transfers me to Kevin.

With Mickey I was probably too vague on what my issue was. Instead of pushing off her queries about "what mail client do you use." I should have been more explicit. With Kevin; I decided to be more specific. "What Mail Client do you use?" "I use Thunderbird, the issue is not with that, it is with a server that sends outgoing emails. I'm getting the message that it cannot connect." We go on and off; and he eventually tells me he can't help me. I need to talk to ConnectTech-360. I paid for this?

Kevin transfers me to the new ConnectTech-360; which feels like starting from the beginning. It's an automated system that appears to want to tell me how to reconfigure my email. Since I've been through this before, I call out agent, and the system disconnects me.

This was around the time I punched the wall.

My Second Round of Calls

I spent about fifteen minutes walking around the house trying to think up creative curse words; then decide to try again. I think I started with the main number [which I can't find out where I wrote it down]. I go through the automated system again and eventually get to Jason. At this point, I'm being very specific. "Is port 25 Blocked? My outgoing emails are not being sent." Jason insists that this is not a problem, and goes through "something" and eventually says "Yes, it looks like it is blocked I missed it the first time." He can't help me, but can forward me to someone who can (Consequently called Connect-Tech).

This time when I'm transferred; they ask me to put in a zip code. That's a first, it feels like I'm getting somewhere even if I don't know where.

Kevin transfers me to AJ. The number they gave me at this stage was 1-888-905-2838; which is the same as the first Connect-Tech number they gave. I'm not going in circles too much. I give AJ some information and I think he eventually shuffled me to Sean. I spent most of my time on the phone with Sean [and being on hold]

The first thing that Sean did was congratulate me on purchasing a Connect Tech subscription.

I immediately snap back that I didn't purchase a subscription and that I was told it was a one time fee. Somewhere in my mind; I took a breather while practically screaming at him.

I explained my situation and asked if Port 25 was blocked. He swore up and down that ATT does not block any ports and everything is open and that is part of what people use it for. I said "Then is Port 25 being intercepted in any way?" And he said no; and rattled off a bunch of related ports (110, 80, etc.. ) which should work just fine.

I was pushing him hard somehow. Eventually, like magic he said "oh, we do, let me remove that from your account." I am surprised at his about face on the blocking, which felt like he changed his mind in mid sentence.

He told me it'll take 15 minutes or so to take affect and I should unplug the router and plug it back in.

That is the point where idiot me unplugged the router. When you a VOIP phone--which my new ATT UVerse phone is--an unplugged router means no phone. I hung up on them, inadvertently.

The router restarted, and he called back 5 minutes later or so. I do give them kudos for that. I ask if he can remove any and all other port blocks and he says my system should be completely open now.

After the router restart, I also restarted SMTP services on my server and magically the queue of emails immediately got sent. Things appear to be good; or at least functional.

It is time to fight the Charges

I still have serious issues about having to pay more money just to get the same quality of service I had before they forced me to upgrade. I regret not going to Cox for cable modem service. If I was going to go through hell, at least it could have been a brand new hell.

I got this email regarding my purchase, I added emphasis:

Thank you for your AT&T ConnecTech® Services purchase.

The following order has been processed for your requested service.

The service(s) ordered was/were:

AT&T Support Plus Online with ETF (CSR Only)

If you have questions on your remote service, please contact us at 1-866-294-3464 from 8:00 AM to 11:00 PM Central, seven (7) days a week.

Your AT&T Support Plus Online with ETF (CSR Only) subscription is a 12 month term agreement. An Early Termination Fee of $120.00 (reduced by $10.00 after each completed month of the term) applies if you terminate service prior to the end of the 12 month commitment.

You will receive another e-mail in the next few days with tips and additional information that will help you get the most out of your new Support Plus service.

Can't wait? No problem! To get started now, go here and enter your zip code.

The overall price of your order is $15.15 (includes one-time charges, initial subscription period, discounts and taxes).

For monthly recurring subscriptions ordered, you should expect to pay $15.00 monthly after your initial bill (plus applicable taxes).

All AT&T ConnecTech Services are subject to certain terms and conditions for service. The terms and conditions for your service order are available at www.connectech.att.com. You agree to be bound by these terms and conditions by continuing to receive your ordered services.

So, I was clearly told by Mikey that this was a one time charge; but the email (and the comment by the Sean) make me think they signed me up for a recurring subscription. Honestly, I don't know if I want to spend another day on the phone to fight it at this point; but I think the principle of the thing is important.

A final point about static IPs and Hardware

A friend of mine suggested that I try a LinkSys RV042 Router; and I found the manual. On paper it sounds like their One-to-one NAT function is exactly what I need for the IP Mapping on the hardware level. I still have concerns it will actually work, due to other stuff I've read about what the Motorola modem device does.

Writing this was very cathartic for me; and I am less likely to scream at someone during my next phone call.

Migrating Instances from ColdFusion 8 to ColdFusion 9

Unfortunately, I came back from lunch yesterday to find my laptop was dead. I couldn't get it to load. It was a refurb unit that had served me well enough for three years. I was hoping to get another 6 months out of it; but it is what it is.

This put me in the unfortunate position of needing to set up a new development machine **NOW**. Thankfully, I have a new machine here just waiting to be set up for development. It gives me a slight delay before I have to replace the laptop.

The old machine had CF8 installed in the multi-server mode. I had used the CF8 instance manager to deploy multiple CF8 and CF9 instances of ColdFusion for development purposes. Could I take those instances created in CF8 and somehow use them in CF9 without having to recreate them from scratch? Yes, the answer is yes.

I wrote a bit my experiences moving these same CF8 instances from one machine to another in the past. Here is how I did it:

  1. First I installed Apache. It is my preferred web server. Then I stopped Apache, backed up the config files, and replaced the 'clean' config files with my old config files. This will give me all the info that attaches Apache to the CF Instances and what not.
  2. Then I installed ColdFusion 9; the multi-server edition. During hte install I attached it to my 'clean' config of Apache. I had no idea, when I was doing it, if that was a good idea or not but it worked and the 'old' Apache config seemed to connect up to ColdFusion without any issues. So now I have a working CF Administrator with an instance manager.
  3. Then I used winmerge to compared my old CF8 install directory and the new CF9 install directory. I copied over all my server instances--except for the cfusion one that was created by default. The server instances are located in the servers directory of the install.
  4. Finally, I scoured over all the differences in the winmerge report to figure out how CF was deciding what was an instance and what wasn't. There are two files:
    • lib\wsconfig\wsconfig.properties
    • lib\servers.xml
    I believe these two files contain all the data for how the CF Instance manager finds the instances. I used winmerge to move all my "old" instances into the new files. I restarted the Macromedia JRun and Macromedia ColdFusion instances, reloaded the admin and all my old 'CF8' instances showed up. Just like magic.

Now all I have to do is create the Windows services for these instances--as I talk about in my other post. Since CF10 is not going to use JRun, I'm not sure I'll be so lucky during the next upgrade.

CF101 Archive: October 2007 Every Beginner must Grow Up

Disclaimer: In 2007, sys-con closed down the ColdFusion Developer's Journal, and I wanted to post all the articles I had written to this site. I started, but got distracted on other things. I'm performing a purge of my digital archives and found the articles. At this point they are posted here more for my own archival purposes than because anyone is longing to read them.

This article is being reposted in accordance to my contract with sys-con. I had them change the default contract so that I could post articles on my personal site.

This article was my final article. I'm not sure if it was ever published formally, though.

CF101 Archive: September 2007 Object Oriented Pizza

Disclaimer: In 2007, sys-con closed down the ColdFusion Developer's Journal, and I wanted to post all the articles I had written to this site. I started, but got distracted on other things. I'm performing a purge of my digital archives and found the articles. At this point they are posted here more for my own archival purposes than because anyone is longing to read them.

This article is being reposted in accordance to my contract with sys-con. I had them change the default contract so that I could post articles on my personal site.

This is without a doubt the favorite article I've ever written. I wrote it afraid I was going to become the active target for every high level CF Developer. That didn't happen thankfully. I remember the response being relatively positive.

CF101 Archive: February 2007 Data Table Gateways

Disclaimer: In 2007, sys-con closed down the ColdFusion Developer's Journal, and I wanted to post all the articles I had written to this site. I started, but got distracted on other things. I'm performing a purge of my digital archives and found the articles. At this point they are posted here more for my own archival purposes than because anyone is longing to read them.

This article is being reposted in accordance to my contract with sys-con. I had them change the default contract so that I could post articles on my personal site.

This article follows the design pattern scheme of the previous one and focuses on Data Table Gateways. An interesting tibbit is that I would rip my articles out of the PDFs and write up these entries while watching the TV Show supernatural. I bet I got out of the habit when the season ended which is why these articles remained unposted for so long.

CF101 Archive: January 2007 Data Access Objects

Disclaimer: In 2007, sys-con closed down the ColdFusion Developer's Journal, and I wanted to post all the articles I had written to this site. I started, but got distracted on other things. I'm performing a purge of my digital archives and found the articles. At this point they are posted here more for my own archival purposes than because anyone is longing to read them.

This article is being reposted in accordance to my contract with sys-con. I had them change the default contract so that I could post articles on my personal site.

In this article, I delved into some of the design patterns that a lot of ColdFusion developer's were starting to use, in this case data access objects. I don't have anything against design patterns but I often feel some of the proponents of design patterns pitch them as the answer to all your problems. In reality, they are just an approach to solve something and there is often a tradeoff for using one to solve a problem.

CF101 Archive: October 2006 Five Cool Things with ColdFusion

Disclaimer: In 2007, sys-con closed down the ColdFusion Developer's Journal, and I wanted to post all the articles I had written to this site. I started, but got distracted on other things. I'm performing a purge of my digital archives and found the articles. At this point they are posted here more for my own archival purposes than because anyone is longing to read them.

This article is being reposted in accordance to my contract with sys-con. I had them change the default contract so that I could post articles on my personal site.

This is one of my favorite articles; because I cover a lot of the cool things I had been doing in my own development, such as hooking CF up to a credit card scanner and a bar code scanner and generating bar codes. Around this time, CFDJ's publication schedule started to get more and more spotty. I didn't know for sure at the time, but it was probably starting to wind down. The publication world was starting to change, and magazines were not going to be the future.

CF101 Archive: September 2006 A first look at FusionDebug

Disclaimer: In 2007, sys-con closed down the ColdFusion Developer's Journal, and I wanted to post all the articles I had written to this site. I started, but got distracted on other things. I'm performing a purge of my digital archives and found the articles. At this point they are posted here more for my own archival purposes than because anyone is longing to read them.

This article is being reposted in accordance to my contract with sys-con. I had them change the default contract so that I could post articles on my personal site.

This article is a look at the third party ColdFusion command line debugger, FusionDebug. Debuggers like this are a fantastic tool for programmers. I loved it when working with technologies that pre-dated my work with CF and I loved it when working with Flex. For some reason, debuggers never took a final resting place in my CF Toolset.

More Entries

All Content Copyright 2005, 2006, 2007, 2008, 2009 Jeffry Houser. May not be reused without permission
BlogCFC was created by Raymond Camden. This blog is running version 5.9.2.002.