Session pooling

hsteigstra

Member²
In my CGI-BIN application I would like to use session pooling. I think that the concept does not work as the executable is reloaded after every web-request. Am I correct?

I tried to set Pooling to spMTS but then I get an error message when committing a transaction: "Cannot commit a MTS Controlled Transaction" (Oracle 8.1.7)

Any suggestions?

Thanks, Herman Steigstra
 
In my CGI-BIN application I would like to use session pooling. I think that the concept does not work as the executable is reloaded after every web-request. Am I correct?
Yes.
Any suggestions?
As long as your cgi application holds the session, no pooling concept will help. You would need to communicate with a server application that holds the sessions for the cgi instances.

Is the connect time significant? Assuming that the cgi program runs on the database server, connection times could be very small. This is all relative of course...

------------------
Marco Kalter
Allround Automations
 
No, the application does not run on the Database Server itself, but on a dedicated machine (now my development PC). Connection time is about 0.15 sec, not much for a single request, but one action in the client application may involve several client/server requests that will accumulate.

Do you suggest that applications running on the server itself will perform (much) better?
 
Connection time could improve, as well as query execution time. It all depends on the speed of your network and the capacity of your web server and database server of course.

------------------
Marco Kalter
Allround Automations
 
From my observations I learn that the login part always takes much more time (0.15 sec) than the queries themselves (average 0.01-0.05 sec). Implementing the service on the database server will only be beneficial if it adds functionality like pooling....

Do you think that it is possible to write some (small) application only for holding pooled connections i.e. by passing connection handles between this application and the CGI-BIN service?

Herman Steigstra

PS. In my opinion your forum is the best I have ever seen, both on implementation and content..... Good work!
Originally posted by mkalter:
Connection time could improve, as well as query execution time. It all depends on the speed of your network and the capacity of your web server and database server of course.


[This message has been edited by hsteigstra (edited 15 October 2003).]
 
Do you think that it is possible to write some (small) application only for holding pooled connections i.e. by passing connection handles between this application and the CGI-BIN service?
No, the connection can only be used in the application that creates it. You would need a 3 tier solution for this. The server application would pool the connections. The client application would be your CGI program. All 3 tiers could be on the same or different servers.

------------------
Marco Kalter
Allround Automations
 
This cunfuses me. Is it No unless? What I had in mind is also some three-tier solution. The question is then how to pass the session from the middle tier to the CGI-BIN application that acts in this setting as a client of the "session server". How would you suggest to do this?

Thanks, Herman
 
The CGI program is the client application in the 3 tier solution that I mentioned. This program is frequently executed by your web server, so it's really a 5 tier solution (Web Browser Client --> Web Server --> CGI program --> Application Server --> Oracle Database Server). The Application Server holds the session pool. For the communication between the CGI program and the Application Server you can use any of the standard Delphi 3 tier concepts (COM+/MTS, MIDAS, ASTA, ...).

------------------
Marco Kalter
Allround Automations
 
OK, misinterpreted your previous answer. Interesting concept. I will surely check this out. Small note: I would say it is a 4 tier solution but never mind.
...................
Just tested this approach in a simple application simulating the 4/5 tier topology. It does noet work. The problem is that the updates made to middle tier are not forwarded to the last tier. The cds component does not process the Delta as a new Delta. When "ResolveToDataset" is false, one even gets an error message indicating that the Table cannot be found.

So only solution left is MTS?

Thanks for your assistance on this.

Best regards, Herman Steigstra

[This message has been edited by hsteigstra (edited 20 October 2003).]
 
When "ResolveToDataset" is false, one even gets an error message indicating that the Table cannot be found.
Perhaps you can use the Oracle Monitor to find out which table/sql causes this problem?

------------------
Marco Kalter
Allround Automations
 
Nothing happens on the last tier. Only requests for data arrive, no updates. In my perception the middle tier (cds) has no knowledge of the database....
I will send you a test application by email.

Herman Steigstra
Originally posted by mkalter:
When "ResolveToDataset" is false, one even gets an error message indicating that the Table cannot be found.
Perhaps you can use the Oracle Monitor to find out which table/sql causes this problem?

 
Back
Top