SourceGear VS.NET integrated needs webservice timeouts!

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Post Reply
x0n
Posts: 1
Joined: Mon Apr 12, 2004 11:20 am

SourceGear VS.NET integrated needs webservice timeouts!

Post by x0n » Mon Apr 12, 2004 11:35 am

Hi,

I'm currently vs.net 2003 to try to check in/out projects. It works intermittantly, and I believe the cause of this to be my DSL modem/firewall ripping down NAT connections prematurely, without Windows XP noticing.

I was using the Vault client before and it had the same problems whereby after 5 minutes or so, it would freeze when trying to perform any actions. I changed the refresh to be every 2 minutes (to keep NAT alive) and the problem went away. I was hoping the vs.net integrated system would heed this value, but apparently not.

I think a sensible timeout for your webservice calls would be 30 seconds. Either than or the IDE integrated SG should honour the repository refresh settings. Currently, your software seems to be waiting forever; here is a stacktrace of vs.net after I attached a debugger after waiting 15 minutes:

mscorlib.dll!System.Threading.WaitHandle.WaitOne(int millisecondsTimeout, bool exitContext) + 0x59 bytes
system.dll!System.Net.HttpWebRequest.GetRequestStream() + 0x5e bytessystem.web.services.dll!System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(string methodName, System.Object[] parameters) + 0x6a bytes
vaultclientnetlib.dll!VaultClientNetLib.ClientService.VaultService.GetRepositoryStructure(int nRepID, long nBaseRevision, long nTargetRevision, System.DateTime dtLastClientSecurityCheck, System.DateTime dtLatestServerSecurityCheck, long nReturnTargetRevision, VaultClientNetLib.ClientService.VaultRepositoryDelta rd) + 0x114 bytes
vaultclientnetlib.dll!VaultClientNetLib.VaultConnection.GetRepositoryStructure(int nRepID, long nSrcRevision, long nDestRevision, long nReturnDestRevision, System.DateTime dtLastCheck, System.DateTime dtLatestCheck, VaultClientNetLib.ClientService.VaultRepositoryDelta rd) + 0x85 bytes
vaultclientoperationslib.dll!VaultClientOperationsLib.ClientInstance.Refresh(long knownServerRevision, bool isRetry, VaultClientNetLib.ClientService.VaultRepositoryDelta delta, long returnedRevision) + 0x112 bytes
vaultclientoperationslib.dll!VaultClientOperationsLib.ClientInstance.Refresh() + 0x11 bytes
vaultpresentationlib.dll!VaultClientPresentationLib.GUIClientInstance.TimerCallback(System.Object sender) + 0x2d bytes

I'm aware that the out of the box WSDL proxy/stub generator doesn't permit you to easily change timeout values, so I think the easiest thing to do is to have SCC provider honour the refresh values, if possible.

- Oisin

- Oisin

sterwill
Posts: 256
Joined: Thu Nov 06, 2003 10:01 am
Location: SourceGear

Post by sterwill » Mon Apr 12, 2004 12:17 pm

Actually our web service timeouts are set to 2 hours to accomodate the worst-case performance for some common operations. EndTx() is called to end every transaction, whether it's deleting one file (which should be quick), or branching 200,000 files (which may take a long time).
Shaw Terwilliger
SourceGear LLC
`echo sterwill5sourcegear6com | tr 56 @.`

Post Reply