I think your idea of opening it in shared mode whenever I can is probably what I will do. The table only needs to be opened exclusively when it is first created and the indexes are established.
The table should be able to be opened exclusively and it does work correctly most of the time. I do not use frames so that is not the issue but it could be a "multiple requests from the same session" problem which would be solved by not opening it exclusively.
Sent by FoxWeb Support on 01/15/2008 01:48:16 PM:
Several FoxWeb requests can be served simultaneously (one by each channel), so it's possible for multiple requests from the same session to trying to open the same table at the same time. This would almost certainly occur in cases where frames are used, but it could also happen in some cases when users press the reload button in rapid succession.
What's the reason for opening ReqTable exclusively? You don't need to do so, unless you are modifying the structure of the table, or sapping/packing it. I recommend that you use shared mode in most cases and use exclusive mode in conjunction with error checking and retries only when necessary.
Sent by Jeff Grippe on 01/15/2008 07:51:20 AM:
Hello and thanks in advance for the help.
The most common error in my error log is "File Access Denied" and I can't determine why it is happening.
My application uses a table whose name I store in a Session Variable called ReqTable.
It is the only table that any session opens EXCLUSIVELY.
Each session gets its own unique ReqTable.
My understanding is that each FWX must open whatever tables are going to be needed for that operation so the top of each FWX looks like
ReqTable = session.getvar("ReqTable")
use &ReqTable alias ReqTable in 0
use Debtor order debt_code in 0 share
*** open any other tables needed with shared access
Most of the time everything works fine but quite often, I'm seeing "File Access Denied" in my error log and it is always when trying to open the ReqTable (for exclusive access).
No two sessions can have the same ReqTable. The file name itself is "CR" + a six digit number which is stored in a table and incremented each time there is a new session.
Does anyone have any ideas about why this might be happening and how I should trap it or prevent it?