I have an asp.net webforms page that makes calls to pick/d3 through mv.net.
I've logged the server side performance by surrounding the mv.net calls with timing code, for example:
logTimeElapsed()
getDataFromPick() 'gets 5 rows of test data
logTimeElapsed()
When I call this page from the hosting iis server, I get quick response times such as:
newAC elapsed: 2.9297 total: 2.9297 Dim Acct As mvAccount = New mvAccount("...")
row 1 elapsed: 20.5078 total: 23.4375 Acct.FileOpen("...").ReadV(strID, 17)
row 2 elapsed: 9.7657 total: 33.2032 same as above
row 3 elapsed: 11.7187 total: 44.9219 same as above
row 4 elapsed: 11.7188 total: 56.6407 same as above
row 5 elapsed: 9.7656 total: 66.4063 same as above
Logout elapsed: 1.9531 total: 68.3594 Acct.Logout()
However, when I call this same page from another location on the network or on the web, I get response times that are roughly 7 times longer:
new acct elapsed: 0 total: 0 Dim Acct As mvAccount = New mvAccount("...")
row 1 elapsed: 156.25 total: 156.25 Acct.FileOpen("...").ReadV(strID, 17)
row 2 elapsed: 78.125 total: 234.375 same as above
row 3 elapsed: 78.125 total: 312.5 same as above
row 4 elapsed: 78.125 total: 390.625 same as above
row 5 elapsed: 78.125 total: 468.75 same as above
Logout elapsed: 0 total: 468.75 Acct.Logout()
From the results above it looks like:
When Accessed Locally:
mv.net is taking a couple milliseconds to create and logout of an account and each FileOpen call is fast.
When Access Remotely:
mv.net is taking 0 time to create and logout of an account(reusing a shared account?), but each FileOpen call is slow.
How can I bring the remote performance in line with the local performance? Are there changes to the mv.net or iis setup to make?
Is there something going on with user permissions that is different when iis is called locally vs remotely?
Any help appreciated
I'm thinking your account profile is configured for a fairly rapid termination. So when you're testing locally you hit it a few times and it looks fast. Then you gear up to use a remote connection, during this time the connection to D3 terminates. Then you do the connection and it has to login to D3 again, incurring a performance hit.
My suggestion is to set the account profile to not terminate on logout. So all connections hitting it at that point will use the same persistent session. Your local connection will terminate and then when the remote connection comes in, the login session with D3 will still be active and you won't feel the pain of a new login. If that's Not it, let me know and we'll work it through. :)