C
Colin Steadman
I've setup a very simple page which allows a group of users to start a
procedure in Oracle from an ASP page (relevant code copied below). I
was led to believe that the processing job was fairly quick and would
only take a minute to complete.
However to my disappointment, having only built and deployed the page
a few days ago, I've already had a call from one of the users who
tells me that its just timed out on them (timeout currently occurs
after 90 seconds). I've made a quick mod to the page and used
Server.ScriptTimeout 600 to give the script plenty of time to
complete.
However I'm now concerned about what would happen if the user
interrupted processing mid-way through by accidently closing the
browser window or something. What would happen on the database in
this situation?
To get around the problem I'm thinking about putting a transaction
around the execution part of the code. But would this work if the all
the SQL is doing is starting an Oracle procedure? I've only ever used
it with straight updates before!
TIA,
Colin
On Error Resume Next
Dim cn
Dim sql
Dim arSQL()
Redim arSQL(3)
arSQL(0) = "begin"
arSQL(1) = " db2acs_inbound_api.LOAD_MANUAL_INVOICES;"
arSQL(2) = " commit;"
arSQL(3) = "end;"
Server.ScriptTimeout 600
Set cn = Server.CreateObject("ADODB.Connection")
cn.open Session("PROVIDER")
cn.execute Join(arSQL,"")
procedure in Oracle from an ASP page (relevant code copied below). I
was led to believe that the processing job was fairly quick and would
only take a minute to complete.
However to my disappointment, having only built and deployed the page
a few days ago, I've already had a call from one of the users who
tells me that its just timed out on them (timeout currently occurs
after 90 seconds). I've made a quick mod to the page and used
Server.ScriptTimeout 600 to give the script plenty of time to
complete.
However I'm now concerned about what would happen if the user
interrupted processing mid-way through by accidently closing the
browser window or something. What would happen on the database in
this situation?
To get around the problem I'm thinking about putting a transaction
around the execution part of the code. But would this work if the all
the SQL is doing is starting an Oracle procedure? I've only ever used
it with straight updates before!
TIA,
Colin
On Error Resume Next
Dim cn
Dim sql
Dim arSQL()
Redim arSQL(3)
arSQL(0) = "begin"
arSQL(1) = " db2acs_inbound_api.LOAD_MANUAL_INVOICES;"
arSQL(2) = " commit;"
arSQL(3) = "end;"
Server.ScriptTimeout 600
Set cn = Server.CreateObject("ADODB.Connection")
cn.open Session("PROVIDER")
cn.execute Join(arSQL,"")