One reason why you may end up with two connections is if an error occurs after the first request. The FoxWeb error handler clears all variables, which would include gnDBConnection. You can find out if the connection code is executed twice by adding some diagnostic code:
If you see the above message more than once, then this would indicate that the IF block is executed multiple times.
Sent by Gabriel Badea on 05/05/2007 04:56:25 AM:
That's why I said that I tested with only one channel. I understand that public variables are only visible in the channel (VFP process) that processed the request.
Therefore, since I am certain that the same channel answered the request, my question stands.
>>Am I correct in assuming that public variables are NOT shared between domains (in the same channel) ?
Sent by FoxWeb Support on 05/03/2007 07:43:08 PM:
This has nothing to do with the fact that you are running two separate virtual hosts. Public variables are only visible within a single process of VFP. Each channel runs in a separate VFP process, so if your two requests happened to be served by a different channel, then they would not be able to see each other's public variables. As long as your code works as expected, you should have no more connections than the number of channels.
Sent by Gabriel Badea on 05/03/2007 01:41:45 PM:
I have two foxweb licences and I'm serving two domains from the same server.
My question is about public variable visibility from requests from one domain to another.
Let me clarify with an example. I use fw_enter to check if a database connection has been established like so :
If VarType(gnDBConnection) = 'U'
*-- Code for connecting to database
I tested after restarting foxweb (configured with 1 channel) with a call to each domain's web site.
After my test I had two connections, one to each SQL Server database. To me that says that public variables are not shared between domains.
Is my assumption correct ???