cancel
Showing results for 
Search instead for 
Did you mean: 
Rob_Wilcox1
Level 6
Partner

 

Introduction

Many customers have Vault Cache configured to download all or part of an end-users archive (they have the Desktop Policy set to “Store all Items”). Downloading a large archive or even a subset of it, can take quite some time. Sometimes one of the issues is BITS. This article will help test BITS so you can eliminate it from your investigations.

 

Detail

BITS is Microsoft’s Background Intelligent Transfer Service, and was first discovered in Microsoft Windows with the Automatic Updates feature. This is where updates to Windows were trickled down from either Microsoft or an internal Windows Update server to end-user workstations (and then installed, or users notified). Bandwidth is automatically throttled with BITS and it supports suspend and resume.

To test BITS what we can do is set up a file of say 100 Mb in size on the Enterprise Vault server where the users archive is located, and from the end-users workstation we can use BITSADMIN to download that file. During the download we can monitor the progress.

 

Simple!

 

1/ Creating a 100 Mb file on the EV Server

I nearly always use the Windows Resource Kit tool called creatfil.exe

creatfil testbitsfile.txt 102400

That will create a 100 Mb file in the current folder, called testbitsfile.txt

For our testing, lets first of all try it top level of the default web site, in my case that’s c:\inetpub\wwwroot.

 

2/ Checking BITS on the client

For this you need to use BITSADMIN. When you run it with /list /verbose you will see :

C:\>bitsadmin /list /verbose

BITSADMIN version 3.0 [ 7.5.7000 ]

BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

Listed 0 job(s).

That’s from a Windows XP workstation.

 

3/ Creating the job

Using BITSADMIN do the following :

C:\>bitsadmin /create /download testjob

BITSADMIN version 3.0 [ 7.5.7000 ]

BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

Created job {EA0CC157-1C36-4987-A121-755B648C838A}.

You can then see basic information about the job :

C:\>bitsadmin /list /verbose

BITSADMIN version 3.0 [ 7.5.7000 ]

BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

GUID: {EA0CC157-1C36-4987-A121-755B648C838A} DISPLAY: 'testjob'

TYPE: DOWNLOAD STATE: SUSPENDED OWNER: EV\xyz1

PRIORITY: NORMAL FILES: 0 / 0 BYTES: 0 / 0

CREATION TIME: 9/5/2011 5:41:46 AM MODIFICATION TIME: 9/5/2011 5:41:46

COMPLETION TIME: UNKNOWN ACL FLAGS:

NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3

RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 0

PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL

DESCRIPTION:

JOB FILES:

NOTIFICATION COMMAND LINE: none

CUSTOM HEADERS: NULL

Listed 1 job(s).

At this time we then add the file(s) to the job.

C:\>bitsadmin /addfile testjob http://evault1/testbitsfile.txt c:\testbitsfile.txt

BITSADMIN version 3.0 [ 7.5.7000 ]

BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

Added http://evault1/testbitsfile.txt -> c:\testbitsfile.txt to job.

Now we should see :

C:\>bitsadmin /list /verbose

BITSADMIN version 3.0 [ 7.5.7000 ]

BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

GUID: {FC300DCE-C4B6-406B-AAB2-5A58849FBCB0} DISPLAY: 'testjob'

TYPE: DOWNLOAD STATE: SUSPENDED OWNER: EV\xyz1

PRIORITY: NORMAL FILES: 0 / 1 BYTES: 0 / UNKNOWN

CREATION TIME: 9/5/2011 5:48:24 AM MODIFICATION TIME: 9/5/2011 5:48:35 AM

COMPLETION TIME: UNKNOWN ACL FLAGS:

NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3

RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 0

PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL

DESCRIPTION:

JOB FILES:

0 / UNKNOWN WORKING http://evault1/testbitsfile.txt -> c:\testbitsfile.txt

NOTIFICATION COMMAND LINE: none

CUSTOM HEADERS: NULL

Listed 1 job(s).

 

4/ Suspend and Resume the job

To start the job, you actually “resume” it :

C:\>bitsadmin /resume testjob

BITSADMIN version 3.0 [ 7.5.7000 ]

BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

Job resumed.

You can suspend the job in the same manner, using the /suspend switch, and resume it again… just for testing purposes.

 

5/ Monitor the overall download

From the client, you can keep doing BITSADMIN /LIST /VERBOSE, or better still, in another DOS window do :-

BITSADMIN /MONITOR /REFRESH 1

When there are no jobs:

After creating the job:

When download is happening:

14259 is the number of bytes downloaded to date, and will (hopefully!) go up.

When download has finished:

At that time though, if you look at c:\ you won’t see our test file. In order to get that there is one last step – you have to “complete” the job :

C:\>bitsadmin /complete testjob

BITSADMIN version 3.0 [ 7.5.7000 ]

BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

Job completed.

And then we see :

C:\>dir c:\testbitsfile.txt

Volume in drive C has no label.

Volume Serial Number is E4A6-DDDC

Directory of c:\

09/05/2011 05:30 AM 104,857,600 testbitsfile.txt

1 File(s) 104,857,600 bytes

0 Dir(s) 1,086,599,168 bytes free

 

6/ Review/resolve any errors

If your transfer / monitor window shows an error, then do a /list /verbose, and see what that shows you.. It’s usually quite helpful. Eg :

BITSADMIN version 3.0 [ 7.5.7000 ]

BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

GUID: {0654125B-DAFC-40BC-B248-98E7E8FA67BB} DISPLAY: 'testjob'

TYPE: DOWNLOAD STATE: ERROR OWNER: EV\xyz1

PRIORITY: NORMAL FILES: 0 / 1 BYTES: 0 / UNKNOWN

CREATION TIME: 9/5/2011 5:58:56 AM MODIFICATION TIME: 9/5/2011 5:59:07 AM

COMPLETION TIME: UNKNOWN ACL FLAGS:

NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3

RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 1

PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL

ERROR FILE: http://evault1/testbitsfile2.txt -> c:\testbitsfile.txt

ERROR CODE: 0x80190194 - The requested URL does not exist on the server.

ERROR CONTEXT: 0x00000005 - The error occurred while the remote file was being p

rocessed.

DESCRIPTION:

JOB FILES:

0 / UNKNOWN WORKING http://evault1/testbitsfile2.txt -> c:\testbitsfile.

txt

NOTIFICATION COMMAND LINE: none

CUSTOM HEADERS: NULL

Listed 1 job(s).

You can try copying and pasting the URL in to a web browser to see what happens.

And from a different time in a different place (ie recycling electrons) :

BITSADMIN version 2.0 [ 6.6.2600.2130 ]

BITS administration utility.

(C) Copyright 2000-2004 Microsoft Corp.

GUID: {87AB7825-DEFE-4583-9D52-5F7EEFD01DC8} DISPLAY: get-clienttest.gif

TYPE: DOWNLOAD STATE: ERROR OWNER: l3-af782\robert_wilcox

PRIORITY: NORMAL FILES: 0 / 1 BYTES: 0 / UNKNOWN

CREATION TIME: 11/11/2008 09:31:47 MODIFICATION TIME: 11/11/2008 09:34:25

COMPLETION TIME: UNKNOWN ACL FLAGS:

NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3

RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 1

PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL

ERROR FILE:    http://gpkvltstr1.enterprise.veritas.com/enterprisevault/clienttest.gif -> c:\clienttest.gif

ERROR CODE:    0x80190191

ERROR CONTEXT: 0x00000005

DESCRIPTION:

JOB FILES:

        0 / UNKNOWN WORKING http://gpkvltstr1.enterprise.veritas.com/enterprisevault/clienttest.gif -> c:\clienttest.gif

NOTIFICATION COMMAND LINE: none

Listed 1 job(s).

We got an error state :

0x80190191 =  HTTP 401

0x00000005 = Access Denied

 

As mentioned previously BITS will automatically throttle bandwidth usage, but for those people who don’t trust Microsoft software, or just want to be control freaks, you can have a Group Policy to throttle it too (and in fact was one of the early Vault Caches cases I worked one, and it caused great issues until it was discovered it was a GPO throttling things!). If the test download that you performed was AMAZINGLY slow, yet connectivity to the EV is good, try (using appropriate credentials) to drag and drop the file using Windows Explorer from the Enterprise Vault server, to the client workstation. If that copy process is nice and quick, then suspect Group Policy interference!

Read more about that here.

 

Summary

BITS is used heavily for Content Cache data, so testing it, and eliminating it from any potential issues is an important step in getting to the resolution of some problems.

Maybe we’ll use BITS for uploads of data … in the future???

Comments
lgarcia
Level 4
Partner Accredited

Hi Rob,

 

I have a client having issues when downloading vault cache content.

 

I did many check and here is a portion of dtrace where there are many error messages about bits

Did you ever seen this error message, what checks do you think i can do?

The EV server is a Windows 2008 x64 MSCS cluster EV8SP4 archiving exchange 2007 Server.

The client is a XP Pro SP3 with outlook 2003 SP2 EV8.4 add-in.

Thanks for your  help.

 

Luis

 

30/08/2011 16:04:03.118[6048]: Number of items to download is 0
30/08/2011 16:04:03.244[6048]: Desktop Setting: OVContentDownload
30/08/2011 16:04:03.245[6048]: No Value
30/08/2011 16:04:03.246[6048]: OVContentDownload = 1 [default]
30/08/2011 16:04:03.680[4476]: Insufficient range support, unknown file size30/08/2011
16:04:03.682[4476]: Job Name is 'EV: 2011-07-01 to 2011-09-30'
30/08/2011 16:04:03.684[4476]: Error description is 'Le serveur ne prend pas en
charge le protocole HTTP requis. Le service de transfert intelligent d'arrière plan
(BITS) requiert la prise en charge par le serveur de l'en-tête de protocole Range.



30/08/2011 16:04:03.688[4476]: ERROR - The error was related to the specified remote
file. For example, the URL was not accessible.
30/08/2011 16:04:03.690[4476]: Job Error - Failed
30/08/2011 16:04:03.691[5664]: DTCC: WaitForMultipleObjects: 3
30/08/2011 16:04:03.692[5664]: CONTENT:BUILD: Completed INITIAL Job filename
'2011_07_09_0001.db' state '7'
30/08/2011 16:04:03.694[5664]: CONTENT:BUILD: Stopping download state '7'
30/08/2011 16:04:03.695[5664]: CONTENT: ERROR - Initialisation failed - retry logic
starting
30/08/2011 16:04:03.697[5664]: CONTENT: RETRY logic started reason '302'
30/08/2011 16:04:03.707[5664]: CONTENT:DB: DB file 1 does not exist, error '2'
30/08/2011 16:04:03.708[5664]: CONTENT:STORE: Setting DBId '1' to status '0'
30/08/2011 16:04:03.710[5664]: URL is DeleteJob.aspx
30/08/2011 16:04:03.711[5664]: Sending headers : 'Content-type: application/x-wwwform-urlencoded



Content-length:
79
 

Rob_Wilcox1
Level 6
Partner

I've not seen that error before, but it sounds like BITS support isn't enabled/added to IIS on the EV Server.

 

I would suggest running through the steps in this article in order to test BITS, and report back on your findings.

Bruce_Cranksh1
Level 6
Partner Accredited

Hi Rob

Interesting one as usual

I appreciate your continued effort in posting these types of Technical articles and others like the Dtrace basics and advanced . They are an invaluable source of reference

Keep them coming :)

Rob_Wilcox1
Level 6
Partner

You're welcome.

lgarcia
Level 4
Partner Accredited

Hi Rob,

Thanks for your answer.

The next time i'll be at the client office i'll do the checks your recommend here.

I did not search any document on the way how to add bits support for a server, i'll do before i go at my client next time. Do you have a technical document that describe how to add bits server functionnality on EV server?

faigi
Not applicable

Nice Article, Thanks for that

Ben_Heymink
Level 4
Employee

BITS is not required on the server. There has been some confusion over this, but I can assure you it is not required on the server in any form.

Rob_Wilcox1
Level 6
Partner

Yep, you're right.  The only bit server side is a little add-on which gives a console view on the server side of things.  (Which I've never tried, but I just had a look at the option under Add/Remove Programs)

AKL
Level 6
Certified

Did you get any resolution for this by any chance?

Version history
Last update:
‎09-05-2011 01:22 PM
Updated by: