State Management :: SQL Database - Cache Expires The New Data Is Picked Up?
Dec 17, 2010
I'm running a website on a SQL 2008 database. At the moment most of my data is in cache but what I want to do is be able to update the data on a regular basis, say every 3 hours, maybe more frequently. Obviously I can set the cache to expire and pick up new data, but how can I replace part of the database (because some tables are populated by the user) in the background, so that when the cache expires the new data is picked up?
I notice when I upload data through VS, it wont let me upload if the DB is in use - so how do I get round issues like this?
Im working on my first ASPX webpage now, and Im wondering if there is some way to make a cache?
With a cache, I mean a list of variables that gets transferred from a db to for insance a hashtable the first time a user loads the page. When the next user loads the page, the db doesent get touched, but the variable is collected from the hashtable.
I tried to make a static class, but it re-loaded for each time I refreshed the page.
I am using a timer in the master page of my web site in order to keep a 'status bar' up to date with all sorts of information.The issue is that the whole point of session expiry goes to waste, because a postback is always being made (although asynchronic) to the server.
How can i still expire the session after a wanted period of time?
On localhost works well. On the hosting server expires very quickly. Sometimes after a minute, and sometimes after a few minutes.
I tried mode="StateServer" and mode="SQLServer", but first works the same, other doesn't work. The next problem is that End_Session in global.asax doesn't executes if mode is not InProc. And I need this.
How could I achive that session expires only when browser is closed or other url is typed. Just setting timeout doesn't work.
my web app doesn't use authorization in web.config, but i want to detect when a session has expired and redirect to the home page.I have searched and found solutions that rely on the web app using authorization. Other solutions have implemented a user control to drop in every page.Obviosly i don't want to manually check for null on every session variable on every event of the web app, so i want the app to do it automatically.
I'm facing a great problem in session. My session expires after every 4-5 minutes. Firstly I checked my web hosting settings. I increased session timeout to 50000. In my web.config I wrote :
[Code]....
Also Locally it expires withing 5 minutes. Secondly can I also increase idle timeout.
I have a webpage which displays some data along with a banner. The banner image is stored in the database with parameters "Pagename" and "form".
The application has been coded in such a way that when the page loads , a function checks for the banner in cache memory first with the parameters "pagename" and "form". It the banner does not exist, the new banner is retrieved from the database and is added to the cache memory. Next time when the same page is called, the banner is displayed from the cache memory avoiding the DB to be hit everything to get the banner.
Now, I do not want a specific banner to be displayed on the page. I have removed that banner from the DB but the banner still gets displayed as this banner is still there in the cache memory.
Is there any way to delete the banner which exists in cache memory without making any code changes?
it is having the grid with bulk of data. So i decided to move to Cache to strore the dataset. So that it avoids in gettin the data from DB for each time the page is loading. Suppose my idea isnot good please suggest me the best way to acheive this.My question is if i suppose store the data into the cache, how can i dispose or clear the cache from the memmory for each time i close my current page or application. I dont want the cache in memmory for long time, i want only upto the time the application is running.
I have created a demo application to read data from the CSV and after read the data from the csv file there is a button to save all the CSV loaded data in the database. When i load the large CSV (2MB) file . after load all the data from the file i will save all the data in datatable and store in view state.
when i click on another Link the page doesn't work and page become expires. Where is the problem.
Its simple doing read CSV file .. file stream closed. store all the csv data in view state. and click on the another link save into the database. but click save database button page expire.
I have some weird problem. We're using Windows Server 2008 R2 x64 (8 Cores and 8 GB RAM) with IIS 7.5 and ASP.NET MVC 2.
I always cache (simple) stuff via the context cache and it seems like 9 out of 10 immediate page refreshs the Cache["MyKey"] is always null, even though there's no memory limit set on the pool and the server has lots of free memory.
I add expiring data via:
[Code]....
When just doing: Cache.Insert("MyKey", myObject); or Cache["MyKey"] = myObject; I get the same result (cache is almost always null for that key).
As you can see I added a callback, which writes the CacheItemRemovedReason to a text file, and the text file says CacheItemRemovedReason.Removed for MyKey. The doc for CacheItemRemovedReason.Removed says, that I call Remove/Insert on it, even though in my whole project there's no "Remove"-calls, just simple if(Cache["MyKey"] == null) {Cache["MyKey"] = ...} stuff.
I have a treeview that shown groups and their sub groups in my usercontrol. I pass the parent GroupId to the usercpntrol from the page. I want to cache nodes of treeview for every Parent Group Id. My code is works good for first time and fill the cache object . after refresh the page, cache object fill the TreeNodeCollection succesfully and everything is ok. But after another refresh, cache object is not null but is empty and TreeNodeCollection.count is zero(0). What's my fault? Please help me to solve this problem.
I am looking for an elegant (i guess as elegant as it can be) solution to caching a users profile on login (whether it is session, cache, cookie, etc) and keeping it in sync when a users profile is changed. How do you guys handle this? Just simply call a Flush() method in your Save() method that invalidates the cache?
I'm trying to cache a complex page with lots of controls on it so that if the user navigates to it later it will look like it did when he last saw it.The page has controls which post back and other controls are populated depending on the selections.
I'm using [Code].... after the <@ Page directive.
What happens is that a postback gets the cached page, so no processing and it looks the same regardless of user selections. So far so good. But if I browse to another page and return by a link, the cached version is ignored and the default page is created again. This is more or less the opposite to what i want.
I attempted to use the validation callback to ensure that a postback resulted in a new version, and that worked, but it still ignored the cached page if it wasn't a postback.I realise that it will need more work to ensure each user gets their version of the page from the cache, but why bother if this doesn't work.
I know the big difference, but one thing is confusing me. Cache works only on a single machine on webfarm and to make it globally we use Velocity or memcache.So is static does same, or is it already work globally ? eg
Cache["someid"] = "value"; //this will only work on single machine cache,
static string abc = "value"; // will this work on single machine or globally ?
I wanted to know the best practice for caching data. Say I have some control example a dropdown list which is populated from my db. Now this dropdown is global and used across many pages. I was thinking of not going to database everytime to fetch data for this dropdown and put the result in Cache. And then populate this dropdown from cache. Is this a good practice or if there is another approach. Can I store my datareader in cache and then use it globally. Also could I do this in application start event?