Today I became an idiot. Fortunately, it did not last long . . .
So I am refining and tuning my test Shared Content Store configuration in search of finding every possible way of tuning and optimizing its performance, and I found myself inside my own Joseph Conrad novel. To say that I was figuratively beating myself in the head with a hammer would be an understatement.
So as I move my client back and forth between one SCS store vs. another, I found my client behaving like it was completely dead – unable to launch ANY application – even after disengaging SCS mode altogether (and trying with a simple local package only to find that I could no longer add any packages.) Every package add failed with error 8007007b.
For some reason, instead of looking up the error code, I assume I had just corrupted my machine. So I reverted my snapshots and went in and added my PackageSourceRoot and PackageInstallationRoot overrides and found myself again getting those errors. Looking at the error code this time, I find the HRESULT is a standard I/O error of an invalid name (STIERR_INVALID_DEVICE_NAME or ERROR_INVALID_NAME)
It quickly dawned on me that I reverted to Unix-style path conventions (Hey, it works in Explorer and CMD) and the App-V client does not like that syntax (i.e. //server/share.)
A quick correction and all was well again. Lesson learned. Do not use forward slashes for paths when configuring the PackagInstallationRoot override.
By the way, if you are looking for an equivalent to the ApplicationSourceRoot configuration from 4.6, use the PackageSourceRoot override. Bear in mind that this is only used when the clients needs to create a new streaming session (mount) for a package that has not already been “cached” or streamed. If this is changed, the effect won’t be seen right away on packages that have already done streaming operations since the last client restart, unless 30 minutes have passed since the last bits were streamed. That is the idle timeout for an App-V 5 “Streaming Session.” You can also opt out of this override for any particular package using the <ProductSourceURLOptOut> option in the Deployment_Config.xml file.
Incidentally, I would recommended this post as a starting point for understanding the Shared Content Store: http://blogs.technet.com/b/virtualvibes/archive/2012/10/24/introducing-shared-content-store-in-app-v-5-0-goodbye-shared-read-only-cache.aspx
I’ll be publishing some optimization recommendations as well soon – so long as I don’t get further bogged down by my own stupid mistakes.