Recently one our customer decided to use thin client PCs and Window 2003 Terminal services. They have 2 Window 2003 servers for all users and load balancing service which put users between both. Users have simple 200-dollars PCs without hard drive, which gets loaded from network with Windows XP Embedded (I think), and then start terminal services client. This configuration works fine, quite easy to maintain. Of course, they run our MS Access 2003 application with SQL Server 2000 database, SQL Server runs on a separate server.
Before Terminal services we used VersionCheck to copy front-end MDE to each workstation C: drive. The same setup was moved to Terminal services, but we got a problem - all users have the same C: drive, and use the same MDE! Of course it starts to grow, it was not possible to compact it (only if you throw all users). As we use an approach, where we build pass-through queries SQL with parameters' values, save queries and then use in forms/reports record source - users start to report bugs: they see completely wrong data (of course, from other user!). Solution was clear – each user should have his own copy of frontend, fortunately VersionCheck offers an opportunity to define path with %USERNAME% variable, which get replaced with actual user name. I have modified pvc file in C:\windows, so application local path become C:\Documents and Settings\%USERNAME%\Application Data\MyApp.MDE… But then came the funny part.
While opening pvc file in notepad showed new version with %USERNAME%, opening and running same pvc file in VersionCheck showed old one! This was really amazed me, the only explanation I made to myself – some kind of cache. But no, after some time nothing changed. So where should then go MVP to find an answer? Right, Knowledge Base! The article Terminal Server registry settings for applications gave me an idea what is going on – every user has his own copy of pvc file! So, I added a new application compatibility bits flag 0x00000408, which shows that VersionCheck is 32-bit application and there is no need to substitute user Windows directory. And it works now!
Of course, it would be possible to save pvc file somewhere else then C:\windows, but I was not aware, that Terminal services do such "dirty" tricks. Anyway – it is always good to learn something new, and hope this post will help others also!