I’m not sure when it started, but my Visual Studio 2008 SP1 has been hanging on my lately. Looking in Task Manager, I see devenv.exe*32 is consuming 99% of my CPU. My life has been within Java lately (via Teamprise’s Eclipse Plug-in) so I haven’t opened VS much, however, winds are changing a bit and so I have it open more often now than before. And the hanging has been getting on my nerves.
I’m not 100% sure of the cause, by I think it might be the Team Members (working….) that I see sporadically on a few of the ~24 Team Projects I have on my list. My guess is that is causing some issues.
I don’t use the Team Members feature of TFS so I’ve disabled it following these instructions. I just did the first step and it seems to have stopped the hanging for now.
So far so good, so hopefully I’m not speaking too soon ;)
Wednesday, March 17, 2010
Visual Studio 2008 SP1 with Team Explorer Hanging
Posted by
Mac Noland
at
10:00 AM
1 comments
Tuesday, March 16, 2010
Connecting Visual Studio 2008 SP1 to TFS 2010 RC
After my colleague installed TFS 2010 RC to our DEV system, I mustered up the courage to try and connect via Visual Studio 2008 SP1. Not much luck starting out.
I don’t remember the exact error, but it was something in regards to "Unable To Connect." Thanks for letting me know.
After reading through a few blogs and discussion boards (most of them referenced the need for Visual Studio 2008 SP1 which I already had), I came across this one which at the bottom shows you a registry edit you can make to add the TFS 2010 to your VS 2008 SP1 server list. After trying this, I got a bit farther and finally a meaningfully error message.
When trying to connect, we got "You Must Update Your Client with the Forward Compatibility Update.." I couldn't copy/paste the link in the dialog window (sigh), so I got out my pencil and paper to write it down. Here it is for you so you don't have to repeat the same archaic steps.
After installing this package, I was able to connect by putting in http://$server-name:8080/tfs/$collection-name
Posted by
Mac Noland
at
8:37 AM
3
comments
Labels: 2010
Friday, March 12, 2010
Out of Memory Exceptions in Ant
While trying to get some new build machines cooking, a colleague of mind forced me to notice that Java 1.6 on Windows must default it’s heap size to 64 megs. When running an Ant job, he was getting and Out of Memory Exception when trying to compile JUnit reports via the JUnitReport Task.
I figured out the default heap size by opening JConsol and checking Max setting on the Memory Tab. Sure enough, without any Max Setting it was 64m.
What got this whole thing confused was that we were setting a larger heap (1.6gig) on the JUnit execution. That is, when JUnit forked out for its own VM to run on, it used 1.6 gigs which turns out to be more than enough. However, the Ant process was running at 64m (the default remember) and giving us fits when Ant’s JUnitReport, which does not fork itself, was trying to compile the HTML reports.
To fix this, we simply upped Ant’s Max Heap Size to something larger (e.g. –Xmx512m) by setting ANT_OPTS=–Xmx512m as an Environment variable on the server. (As a side note, remember you need to refresh the environment of any tooling needing to use this new variable. Examples are recycling a process like Team Build or closing and restarting your command prompt). Once we did this all was better.
Free coffee is coming my way!
Posted by
Mac Noland
at
9:46 AM
0
comments
Monday, November 09, 2009
Thoughts on Microsoft's purchase of Teamprise
Since I was the first to bring TFS/Teamprise into my company, I've been asked to comment on the Microsoft/Teamprise deal. Though Teamprise and Microsoft have seemed to have a tight relationship all along (and users have benefited from this), I believe combining them makes good business sense. Why? Let me explain.
Large companies, like the one I work for and partially own (tongue and cheek here as I own a small portion of stock), want vendors who have consolidated tool sets that fit their development ecosystems. I've only worked for one company, but I'm guessing that most organizations have two large pillars: Java and .NET. What we don't want to do is buy one tool for our .NET folks and another for our Java folks. Often, a single person works in both technologies so buying two licenses doesn't make economic sense.
TFS along with Teamprise has allowed us to satisfy the needs of developers working in .NET and those working in Java on Linux desktops. One sticking point however has been that we have two vendor relationships to manage. While this has never bothered me much, our procurement department has mentioned that they like to limit the touch points. And since they deal with the myriad of legal contracts and license management (a significant pain point for large organizations), I can understand their concerns.
Buying Teamprise makes TFS a more attractive solution for companies with multiple development ecosystems. Three years ago when I approached our vice president with the TFS proposal, he questioned why Rational could give us everything we needed while TFS required us to buy an additional product. This concern was allayed by other factors (ease of use, migration path, price, etc.,) but it would have been an easier sell if Microsoft had a cross-platform solution back then. I can only imagine this purchase makes TFS more attractive to those on the fence about what product to go with.
Lastly, a note to Microsoft's leadership: In my 12 year career, Teamprise from top to bottom has been the easiest company to work with. Everything from support (Tonya Nunn is great) to development leadership (Martin and Edward Thomson of course), we've had nothing but positive experiences with them. I hope you leverage their close, personal approach to working with customers. They are every bit as important (if not more) to Teamprise's success as the software itself.
Posted by
Mac Noland
at
9:06 AM
1 comments
Wednesday, November 04, 2009
"You are not logged into Windows Live Messenger"
After a user (a business representative user) installed the October Power Tools, they started getting a message saying "Team Foundation Error: You are not logged into Windows Live Messenger" when opening VS.NET 2008 Team Explorer.
I didn't look into it much (too many other things going on), but I guess these steps fixed it (or disabled whatever was causing the issue).
1. Open VS 2008 and wait until Team Members is not "working..."
2. Right-click on it and select Personal Settings
3. Under Collaboration, click Change
4. On the opened dialog select None and click OK
5. Click OK once again
I got them from this forum page.
Posted by
Mac Noland
at
11:14 AM
1 comments
Labels: Team Explorer
Wednesday, July 15, 2009
"TF84037: There was a problem initializing the Microsoft Excel Team Foundation AddIn"
We seem to have a number of people who get the error "TF84037: There was a problem initializing the Microsoft Excel Team Foundation AddIn. Re-installing the Team Foundation Client may be required." Which usually boils down to the user not having .NET Programmability Support enabled on their Office installation. Here are some plagiarized instructions I stole from someone else who I can't remember who. Thanks to whoever I took these from.
It looks like Office 2007 .Net programmability support is not installed. You need to modify your installed version of Office and install this option. I thought we had a better error message for this...
1. In Add/Remove programs, locate your Office application and select it.
2. Click on the 'Change' button
3. Select 'Add or Remove features' and click 'next'
4. Select 'Choose advanced customization of applications' and click 'next' OR select something like 'Add .Net programmability support'.
5. In the tree view, expand 'Microsoft Office Excel' and make sure the .NET Programmability Support option is set to 'run from my computer'.
6. Click 'update'.
Posted by
Mac Noland
at
1:04 PM
2
comments
Tuesday, July 07, 2009
Slow "Get" issue resolved
Three or four months back we decided to move our build systems from a dedicated virtual machine (VM) farm to the company supported VM farm in the data center. The data center infrastructure had all the bells and whistles (support, backups, redundancy, etc.,).
Everything worked well with the exception of the Gets. Our Gets were taking between 5-10 times longer than in our dedicated farm. We thought it might be a hardware issue, but the new VMs had more memory, more processors, sat physically closer to our TFS server, etc. What the heck?
I spent a good 2-3 days running tests and engaging experts including Teamprise and Microsoft. (I also gained some gray hair.) No such luck getting it figured out.
Turns out my colleague ran into a guy who was having similar issues after migrating to the data center VM farm. Turns out, the data center VM farm was running a new version of our virus scanning software. The real-time scanning must have been checking every file. Once we turned that off, our Gets were significantly faster in the data center VM farm.
What I still don't understand is that the Gets were taking abnormally longer on JAR files (e.g. mac.jar) compared to other binary files (e.g. mac.msi). I'm thinking that since a Jar file could be setup as an executable (I think that is possible in Windows), the virus scanner was spending extra time on those. This is just a hunch.
So if you're running into performance issues with your TFS Gets, try disabling your virus scanner (just for testing of course) and see if that is the cause.
Posted by
Mac Noland
at
1:56 PM
1 comments
Thursday, May 14, 2009
"Updating Work Item Data has encountered a problem"
If you get an error in Teamprise like "Updating Work Item Data has encountered a problem. Java.sql.SQLException: File input/output error: Unexpected Token:", just clean your local cache. It's probably some kind of synchronization issue with the local cache and TFS server.
On XP the Teamprise local cache data are stored under C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Teamprise\2.0. For this error you just need to delete the ./db directory. You will have to close Eclipse or Teamprise before doing so.
Posted by
Mac Noland
at
8:39 AM
1 comments
Labels: Teamprise
Tuesday, April 21, 2009
Finding the process locking files or folders on Windows 2008 Server.
If you ever need to find what process has a file/folder locked in a 64-bit Windows 2008 Server machine, check out Handle. I usually use WhoLockMe, but it didn't work on my 64-bit machine running Windows 2008 Server.
Unzip handle.exe on your machine and issue "handle c:\myFolderName". It will list out the process ids that have the file or folder locked.
Sysinternals has a ton of other tools that I've found very helpful in administering servers.
Posted by
Mac Noland
at
7:46 AM
0
comments
Wednesday, April 01, 2009
Disabling an ASP.NET Web Project from building in a Solution
We ran into a problem recently where we wanted to add an ASP.NET Web Project to our Solution but to not be built during the Team Build. Why? It's a long-story, but it seems to be working well for the group. We had this setup before and working fine, but then someone broke it and we just got around to fixing it again.
Unfortunately when adding the ASP.NET Web Project this time, we were getting errors in Team Build because Team Build couldn't find the project to build Hum? In the Solution's Configuration Manger we had unselected the "Build" check mark for the ASP.NET Web Project. Yet the build continued to run.
After scratching our heads, my colleague (my much smarter colleague) noticed that the Solution File had this in it.
{95153BD9-7C07-4754-8DB2-37512B95B43C}.Release|Any CPU.Build.0 = Debug|Any CPU
My understanding of this is that when we run the build via Team Build, we say "Release|Any CPU" in the TFSBuild.proj file. It's the default. When Team Build (actually MSBuild) sees this line, it assumes that we intend to build the ASP.NET Web Project. However, we don't and what I'm still missing is why unselecting the "Build" check mark didn't remove this line.
To remove the solution setting, my colleague Right Clicked on the ASP.NET Web Project, Selected Property Pages, Selected Build and under "Before running startup page," she changed it from Build Website to No Build. The check box Build Web Site as part of Solution was already unchecked though if it was checked, we would have unchecked it as well. Now the Solution build works fine as it does not build the ASP.NET Web Project (which we intentionally don't want to build).
In summary, do get the ASP.NET Web Project to not build, we 1) unchecked the "Build" check box in the Solution's Configuration Manager, 2) Changed the ASP.NET Web Project's "Before running startup page" to No Build and 3) made sure check box Build Web Site as part of Solution was unchecked.
Some combination of these removed the line {95153BD9-7C07-4754-8DB2-37512B95B43C}.Release|Any CPU.Build.0 = Debug|Any CPU from our solution file.
Posted by
Mac Noland
at
8:43 AM
0
comments