Oh, and just remembered – Event 311 is when the file is too small for BranchCache – minimum size is 64k – you CAN lower this value but be careful, config in the registry and pretty sure it wouldn’t be supported but I have it tweaked down to 4k on my test rig: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\PeerDistKM\Parameters
Cheers Phil From: listsad...@lists.myitforum.com [mailto:listsad...@lists.myitforum.com] On Behalf Of Phil Wilcock Sent: 24 January 2015 08:39 To: mssms@lists.myitforum.com Subject: RE: [mssms] BranchCache not working as expected when serving SCCM 2012R2 CU3 clients George, Welcome to the confusing and crazy world of BranchCache and BITS. Here’s a couple of pointers. Rest assured that it can all work pretty effectively once you get the hang of things. Firstly, you need to understand how BranchCache hashes figure in all of this. Until a PC has the hash of the segment that it is downloading, it can’t share that segment with other peers, and the content won’t even be in the BranchCache Cache. So that first download that you see from PC1 will be a non-BranchCache enabled download as the hash won’t be available on the server yet. You can get the server to generate hashes in advance – on Server 2012 you can use PS but in your case you can download our HashiBashi tool which will do the same. - http://2pintsoftware.com/products/hashibashi/?portfolioID=10530 If the hash is not pre-created then it is the SECOND PC that does the download that will get the hash and therefore be able to share the files. (All this works much better in SRV2012 where the server sends a ‘MakeHashRequest’ back in the http header – although BITS is still too dumb to act on this even in Win8.1) BITS event log – also check for Event 4 – which is the end of the Job and tells you the proportion of files that came from the server vs local peers. Network latency – has nothing to do with HTTP downloads, which is what BITS is using here. As far as clients getting content from the server instead of peers – this can happen if all clients try to get the content at the same time. IF your content has 10 files for instance – SCCM client gets the manifest, but then seems to randomize the order in which the files are added to the BITS job. So this can mean that BITS on PC1 will be attempting to get FILE1 at the same time as PC2 is trying to grab FILE10 BITS + BranchCache behaves best (especially with SRV2008 and Win7) if the client start times are staggered so that certain clients can get a head start on the content. Id an ideal situation you might want to make a collection of ‘Beachhead’ PC’s that will DL the content first – one at each site. The Event 311 error is I think nothing to worry about but can’t remember off the top of my head – maybe my esteemed colleague Junior can? Anyway – have a dig around on out site, here’s the FAQ which might help - http://2pintsoftware.com/2psfaqs/ Also our free BranchCache reporting is a good way of visualizing exactly which client is getting content from the server vs peers. Good luck – and please feel free to ping me any questions offline if you wish. Cheers Phil Phil Wilcock 2Pint Software http://2pintsoftware.com From: listsad...@lists.myitforum.com<mailto:listsad...@lists.myitforum.com> [mailto:listsad...@lists.myitforum.com] On Behalf Of George Salmaniw Sent: 23 January 2015 21:05 To: mssms@lists.myitforum.com<mailto:mssms@lists.myitforum.com> Subject: [mssms] BranchCache not working as expected when serving SCCM 2012R2 CU3 clients Am testing Branch Cache for possible use at remote sites and getting mixed results. Client is Windows 7SP1 fully patched running the SCCM 2012R2 CU3 client. The server is 2008R2 running SCCM 2012R2 CU3. I have four remote test sites consisting of anywhere from 2 to 5 test PCs per site. Branch cache has been enable via GPO for test PCs as per MS BranchCache documentation. Settings have been verified via netsh branchcache show status all On the server side, BranchCache has been checked under the Distribution Point properties: Enable and configure BranchCache for this distribution point Using the Bits-Client Operational log the standard event order I am seeing is as follows: Event ID 59 - BITS started the CCMDTS Job transfer job Event ID 203 - The BITS service provided job credentials in response to the NEGOTIATE authentication challenge from … for the CCMDTS Job transfer job that is associated with the following URL … The credentials for the user were accepted. Event ID 60 - BITS stopped transferring the CCMDTS Job transfer job that is associated with the [the file]. The status code is 0x0. So all looks in order in terms of the file being downloaded. Within the Details of Event ID 60 we can confirm whether peer caching was used by the following variables: peerProtocolFlags – a value of 1 means that peer caching was used to download the file; a value of 0 means it was downloaded from the server bytesTransferredFromPeer – the actual bytes transferred from the peer cache So here is what I am observing: I install an application package on PC#1 for the first time at the remote site. The event logs shows a value of 0 for peerProtocolFlags for all event ID 60 entries I install the same application package on PC#2. Theoretically it should be pulling the files from peer cache. What I am seeing are some files are pulled from the peer cache, while others are pulled from the server. QUESTION: is network latency [I have set it to 80msec] checked for each individual file? If so, does that explain why some files are copied from the local cache while others are not? If not, what could be causing such behaviour. My concern is that if the PC pulls a large file from the server, that is cached locally on the subnet, it defeats the purpose of BranchCache. I am also seeing on occasion, event ID 311 - The BITS peer transfer with the XXX ID for the CCMDTS Job transfer job resulted in the following error: 0x80040010. This prevents the transfer from the peer cache, so that it must be downloaded from the server. QUESTION: I have searched the net is there isn’t much information on 311 error, other than 0x80040010 OLE_E_NOT_INPLACEACTIVE and find the reference within dcomcnfg. Needless to say I am getting somewhat frustrated with BranchCache, and really need to use it effectively to minimize traffic congestion at remote sites. Appreciate it if anyone can provide any insight into how to get BranchCache working optimally!