Link to home
Start Free TrialLog in
Avatar of Gemini532
Gemini532Flag for United States of America

asked on

where is the data held before it reaches the databsae SQL SERVER 2000

Hello everyone, can you tell me where is the data held before it reaches the databsae SQL SERVER 2000?!?!

Is it held in a cashe, in IIS?  Any ideas?
thank you,
angie
Avatar of Gemini532
Gemini532
Flag of United States of America image

ASKER

could it be in a local cashe on their computer, by their I mean the users who fill out our form?

This is a 7 page application which gets its data in the database only after all 7 pages have been filled...It treats the whole application as on huge page, and we are loosing data becasuse sometimes the data does not make it to the database... Can you think of any reason why this might happen?
Avatar of James Murrell
can you post the code from the page.... that send the data
No idea, all depends on your web app. Session variables, postback data, cookie (unlikely due to size limitations), text file on the server?
Could the user be going for a walk between pages and 4 and 5 (for example) and their session times out, they return fill out the remainder of the form and end up only submitting the last bit to the DB as the first lot was lost when the session timed out?
Avatar of Chumad
Chumad

It's stored in the RAM of the computer where IIS is running.

This is making an assumption though that you are using something like a Dataset or recordset.
My guess is that when you transfer from page to page, you are not keeping or passing the values from the first page to the next.
Since this is an ASP application, I assume IIS is involved :)

The data could be disappearing because a session is timing out, or because you are saving it in cookies but the user is disallowing cookies, or.... it depends on how the application is preserving the data between pages.

Do you have control over the application coding, or is it a third-party application?  If control is in-house, you may want to write all of the data to the DB in a staging table which holds it longer than a session would, and have a hidden field or URL parameter on all of the pages that contains the operational session - that is, some unique identifier you will use to track a user's data entry even when a session has expired.   Using this, you could decide that the data remains for 30 minutes since the last submission, or 30 days.
I am using a recordset
ODBC connection like this:
adodb.connection
Hi Chumad, if that was true, wouldnt' it make sense that NO ONE woudl be able to complete the applicatoin, where in our case it is only a small percentage of users and when they switch computers they're usually fine


What about the idea of using session varialbes which expire in 15 min, can we set to to expire when the user closes his browser sesssion, is that done in IIS?  or in the CODE through parameters?
CODE through parameters
we're also using several sotred procedures especially to send out the emails from the application which lets the user know how many departments they have chosen if the email tells them zero, it means that their datad idn't mkae it to the DB because the application forces them to choose at lesat one
Do you have control over the application coding, or is it a third-party application?


I HAVE CONTROL, well the DB people do but they will be willing to work with me if you can only tell me what needs to be done... I myself am not an expert on IIS but I know we are using IIS and I did suspect that that is where the session variables would need to iincrease thier time to the point when the user closes his browser session...is this possilbe, can you tell me how?
Hi bhess1,

>>Do you have control over the application coding, or is it a third-party application?  If control is in-house, you may want to write all of the data to the DB in a staging table which holds it longer than a session would, and have a hidden field or URL parameter on all of the pages that contains the operational session - that is, some unique identifier you will use to track a user's data entry even when a session has expired.   Using this, you could decide that the data remains for 30 minutes since the last submission, or 30 days.


THIS IS it!  THANK YOU!  this is what we need.  However I do not understand a word of it... can you give me a link to read up on it... anything that coudl help me understand what you mean and most importantly can you tell me is this something done through code or in the IIS?
Unfortunately, IIS can not tell when a browser is closed without additional web coding requiring a mostly continuous connection between browser and server, which is not very scalable.

Increasing timeout in IIS is possible on a server wide basis.  If using ASP.NET, it can be done on a serverwide or application basis.  See

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/2a42175f-8756-4409-8db4-8c08b33b810b.mspx?mfr=true

for some examples
ASKER CERTIFIED SOLUTION
Avatar of James Murrell
James Murrell
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Is this an ASP.NET app?  A classic ASP app?  Something else?

What web coding languages?  PHP?  Java?  C#?  Something else?

Each variation of the above requires somewhat different techniques, although there are common points as well.  The coding environment on the web server side is as important as the DB, or the browser.
actually bhess1, my brohter is against your idea of leaving the session vairalbes open for a long time because they contain secure information which if hackers were to get at it it coudl open up us to lawsuits

I'm usin ASP(VBScript)

My brohter uses PHP to increase security while programming with session variables and he uses the following function 2 do it:
regenerate_session_id().
Is there an equavalent function in ASP?
I code in dreamweaver, I use IIS... what is a web server side?
you should know that sessions timing out is only where there is no user activity (sending/receiving page/data) with the server.
The session will only time out if there is zero client-server activity for 15 minutes. Do any of your pages take this long to complete?

How about sending chunks (a page at a time) of data to a temp db and then on the last page submit, gather all the data back and insert it into your main table?
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
If the cookie has no expiry date then it will be gone when the browser is closed (of course this assumes the user closes their browser). That said, cookies have limited capacity when it comes to holding data so 7 pages of form data could push the limits. Personally I'd go with holding the data either in a db or text file and appending to it when each page is submitted.
Put a datetime stamp on the page submits so that you can runa script on the db to clean up old unfinished visits.
Even with all this, when the session is gone it is gone so you are going to need someway ti ID the user if they return to fill out more pages.
If yu are dealing with secure data then I'm guessing they need to do this anyways?

User logs in.
Posts page 1 (write to DB)
Posts page 2 (write to DB)
*session ends!*
redirect to login page
user logs in
query data to pick up where we left off
Posts page 3 (write to DB)
etc
Posts page 7 (write to DB)
finished!

periodic sql script in DB
delete from mytable where page7data is null and lastactivity < dateadd(d,-1,getDate())


but I'm not tablkign about cookies, i'm taking about session variables in ASP, do they behave the same as cookies, exactly the same?
That depends on how you have configured ASP.  It can store session data in cookies, in a database, in memory on the server.  

You can also write mechanisms to preserve the data in hidden fields on the web pages fed to the user, in the URL data, in a DB, in files on the hard drive, or in dang near any other location you want.  But these are coding choices, not automatic functions of ASP
>>You can also write mechanisms to preserve the data in hidden fields on the web pages fed to the user, in the URL data, in a DB, in files on the hard drive, or in dang near any other location you want.  But these are coding choices, not automatic functions of ASP

Where does this configuration take place?  IIS?

I'm really sorry I know very little about Cookies and I have no access to IIS I have to work on this with someone who does as the application is on a server to which I do not have permissions...

Therefore, a lot of your explanation is very confusing me to, but I'm hoping it will make sense to my co-worker

Usually all the problems come to me, even if they are server problems and I have to come up with a solution before i cap approach the database administrators...

So what you are saying is that for each application on our server we can set the session varibles used by that application on IIS?  Increase their time out?  

However you are also saying that the session variables will NOT terminate when the browser session ends, but it will ONLY terminate at the end of the timeout set in IIS?

Am I understand this?
I'm sorry to keep asking but this is completely new to me... I have worked with cookies 5 years ago, and it was very simple cookies, however the session variables behave somewhat differently...

Also have you heard for something called Application Varaibles in ASP?  Would replacing session variables with application variables be any better?

The code is already written, we want to increase the timeout of the seession variables, but we are afraid to security risks.  After all the application is on the Internet, but it has SSL security it's on a https website...  How safe is it to incease the timeout for the session variables?

I promise this will be the last question, and once I get my answer, I will print this page and show it the the database administrator... He has acccess to the server and to IIS on the server where the application is located   :)
ALSO, thank you for the link bhess1       :)
I just noticed that the configuration is for IIS6, we do not have IIS6, or ASP.NET

we use regular ASP and the version of IIS before IIS6  I forget 4 or 5

Can you help me with a link pertaining that the configuration?