Hi Kevin,
the introduction of MARS solves lots of issues - it made nettalk viable on sql for me. from help -
When MARS is set to ON, the BusyHandling switch is still active, but should not be needed. The driver's default behavior is to retry whenever the busy message is encountered, but a busy message should never happen with MULTIPLEACTIVERESULTSETS on (or active).
When MARS is configured BUSYERRRORS are rare (gone)- I think i found setting BUSYHANDLING could even interfere!? (4.1x days)
I could be wrong but i thought BUSY was the connection was BUSY (handling another thread.request) not BLOCKED by sql server - (could be this connection, or some unrelated one). Are you saying it would through an error if BLOCKED?
With both the driver pooling connections and MARS handling Muliple request to SQL- makes this trickier to debug - with something like sql profiler.
Out of the BOX - a Nettalk server might be set to Run ALL SQL requests thru A Single SQL connection - So with MARS on, tight code and very light sql updates(ie: readonly), this is probably fine, however if something goes awry and you have 20 user + Several Updates all at once. its very difficult to see what started it as the SPID is the same for everyone. - you have to go a level deeper in sql to sort thru what is happening - out of my comfort zone), MARS can be a limitation...
TIP: So in Development and Deploying i have taken to adding the SesssionID, User, and sometimes the formname to the APP of the connections owner - which causes a separate connection to SQL - easily visible in PROFILER and SQL Activity Monitor. Filtering out noise is a breeze - It potentially makes many, more connections - but much,much easier to trace. (indespensable IMO), and compartmentalizes the connections - removing some benefit of mars but even less likely for contention/busy issues, which are harder to see with mars.
Regardless, I still think if a connection is BLOCKED by another SPID - the default is to wait forever. And the situation is easy to encounter if you use normal clarion thinking (browse/Update form) with nettalk default i-o.