I'm working in an environment where a single web application (running in a web-farm) dynamically connects to different SQL Server databases (possibly on different servers) based on user selection (this part is non-negotiable, unless you can gift me $1,000,000 and/or some kind of time altering device).
I'd like to cache some of the commonly used data from the database(s) in the application, such as "settings", and am looking for a best practice to use with the SqlCacheDependency class or a related database cache dependent solution (not opposed to a custom implementation of SQL notification or polling; notification is preferred over polling).
So far, I'm thinking of using a collection of SqlCacheDependency objects (one for each database) that can be referenced by connection string name or related key. So when the connection is changed to a different database, the cache can be requested/populated by a key of <databasekey>+<datakey> and use the appropriate SqlCacheDependency object (probably handled by a cache-managing wrapper).Or is it just better to take the hit and always go to the database?
I'm currently working on an C#/ASP.NET project that will host several differents e-commerce websites, all running in the same application.I use LinqToSql (moving to PLINQO soon) to access my database. The database contains both informations on the website structure (pages, ...) and the products/orders/users data.
My question is, should I use only one database for all the websites, or sould I create a new database (same model) for every new website?I'm now using a single database (with SiteIDs in some tables) but I have a big security concern, I can't just backup/restore the database for ONE website if something goes wrong (e.g. somebody erase all the products on ONE website) and it's an important requirment of the application.
So I was wondering what are the good practices in that case? Is there big cons if splitting dbs?(I would have to make changes to several database instead of one in case of structural changes, but i guess i can make a db version/update system).How the existing CRMs are dealing with that?Is it a performance problem if a database server host a lot of different DataBases? A complex backup/restore tool would be better?
Subquestion:To make a website replication easy, I can also split the pure CMS data (Pages, Texts, ...) in one DB and the e-commerce data (products/categories/orders in another). It can be achieved by some select/insert functions but it would be easier by just copying a database of course.
Well I Am Working On A Client Project Who Was Earlier Using A Software Developed On Foxpro database And Now I Am Developing Advanced Reporting Based On Same Data Of Existing Database
I Am Prohibited To Create New Database, I Have To Use Existing Database Now Problem is That There Is A Report Which Require data from multiple database
database are related Like This
Database (a) 1 Column is Common in Common In Database (b)
database(b) 1 column is common in database (c)
like that
what i am doing is that, I First Filled A Dataset With Required Value Then I loped This Dataset Row For Value On Which I Have To Get Data From Another Database Again I Stored new data in another dataset and After Looping, I Merged It With Previous One.
I am trying to make a routine system(school, college) where i will use three text field as input1> Class start time(input: 8:00 AM) // when school/college will start.2> Class ending time(input: 1:00 PM) // when all of my class will finish3> Duration of class(input: 1.5(hour))// class hourdesired output: A class routine where time(hour) will be shown in row and Day(e.g, sunday,monday) will be shown in column.questions: 1> how i'll take the input as time:hour from text field?2> how i can save the calculated time in database for use in other page?
i want to develop a data access layer ,it can support multiple database like oracle ,Mssqlserver and Mysql using enterprise library and C#.net 3.5 based on database connection
I am trying to design my logic to do this but I want to create a dataSet which will have records from several databases, The records all have the same layout.
I am reagin the connection string paths from a table in a database.
I am asking for your help in trying figure out my logic.
Should I use the connectionString builder in conjunction with a loop to Connect, read a record into a dataset Until therer are no more records to be read from my databse table with the database name/paths tables ?
Here is my beginning code which deals with one database:
I have an enterprise system that is used by a handful of WinForms clients and a public-facing ASP.NET site. A backend WCF service provides several services to be consumed by each of these clients. The services require message credentials, which in the case of a WinForms app is supplied by the user when the program first starts.
I cache ChannelFactories in the WinForm apps for performance. I would like to do the same on the ASP.NET site. However, since ClientCredentials are stored as part of the factory (ChannelFactory<T>.Credentials), will I need to cache one ChannelFactory per service per user? It seems that even under moderate use that will add up quickly. Additionally, I believe I will need to store them at the application-level, not the session-level, since for future scalability I can't guarantee that I will always be using InProc session state.
I have an aspx page that retrieves and processes an image based on a query string.The whole operation takes about 2-3 seconds. However as the nature of the images means they are quite static,a 5 min (or even 5 hour) delay in picking up an updated image is acceptable. Because of this delay I would like to cache the response and only do a proper refresh only periodically. I have added the following to the top of my aspx page. <%@ OutputCache Location="Any" Duration="600" VaryByParam="*" %> Only the last request appears to be cached - i.e. f I navigate to ../DisplayImage?ImageId=1Then the page is loaded and Image 1 displayed - subsequent requests are cached.If I navigate to ../DisplayImage?ImageId=2 subsequent requests are cached. However if I go image 1, image 2, image 1 then no caching occurs.
I'm wondering if i'm missing something obvious or does IIS7 / ASP.NET just not support this type of caching.
i have a usercontrol called navigationmenu whose data is static but varies with loged in1.empID 2.empType 3 Country my question is how can i cache the data of usercontrol based upon combination of these 3 parameters
Among the many aspects of asp.net that I haven't focused my development on yet is caching. I have a perfect application for it now, I think, with a GridView that sits inside a repeater, and is bound in the Repeater ItemDataBound event. The contents of the GridView will remain static for each Repeater data item for each Client. The nature of the data in the GridView is that it can change from day to day per Client, but wouldn't need to be refreshed more frequently than that. The Page istelf only deals with one at a time Client based on a QueryStringParameter. My questions are a) how do I cache the DataTable so that a call to the DataBase isn't made each time Repeater item is bound and b) can I create/cache multiple DataTables (one for each Client) and let them live for day, checking for existence before calling the SQL stored procedure to regenerate the data?
since asp.net contains multiple threads that are executing at the same time.so if 2 threads access an object (simple or complex) that i got from the the asp.net httpcontext Cache.can't this lead to state problems on that object if these 2 theads tried to modify/read it at the same time?so what kind of precautions should i implement?for example i am thinking maybe locking the object while working with it? (wont this cause performance problems?)or maybe when i retrieve some object from the cache i should create a copy from it? or maybe i dont need to worry about this issue at all?
I have a Dictionary<int, string> cached (for 20 minutes) that has ~120 ID/Name pairs for a reference table. I iterate over this collection when populating dropdown lists and I'm pretty sure this is faster than querying the DB for the full list each time.
My question is more about if it makes sense to use this cached dictionary when displaying records that have a foreign key into this reference table.
Say this cached reference table is a EmployeeType table. If I were to query and display a list of employee names and types should I query for EmployeeName and EmployeeTypeID and use my cached dictionary to grab the EmployeeTypeIDs name as each record is displayed or is it faster to just have the DB grab the EmployeeName and JOIN to get the EmployeeType string bypassing the cached Dictionary all together.
I have a page with a number of user controls, In one of my user controls I have a button event. I turn on output cache for the user control that has the button and vary by control using the ID property of a hidden field control in the user control. whenever I turn on the output cache my button event doesn't fire.
protected void Button3_Click(object sender, EventArgs e) { //Create a connection to the database MySqlConnection conn = new MySqlConnection("Database=kid07025;Data Source=195.178.228.254;User Id=kid07025;Password=********"); //open the connection conn.Open(); //MySQL Query which updates the row where Anvandarnamn = Anvandarnamn (recieved from a cookie) MySqlCommand cmd = new MySqlCommand("UPDATE personer SET Information=?Information,Fnamn=?Fnamn,Enamn=?Enamn,Personnr=?Personnr,Adress=?Adress,Postnr=?Postnr,Ort=?Ort WHERE Anvandarnamn=?Anvandarnamn", conn); // Update with new text cmd.Parameters.AddWithValue("?Anvandarnamn", Request.Cookies["Anvandarnamn"].Value); cmd.Parameters.AddWithValue("?Information", TextBox1.Text); cmd.Parameters.AddWithValue("?Fnamn", TextBox2.Text); cmd.Parameters.AddWithValue("?Enamn", TextBox3.Text); cmd.Parameters.AddWithValue("?Personnr",TextBox4.Text); cmd.Parameters.AddWithValue("?Adress", TextBox5.Text); cmd.Parameters.AddWithValue("?Postnr", TextBox6.Text); cmd.Parameters.AddWithValue("?Ort", TextBox7.Text); cmd.ExecuteReader(); conn.Close(); RefreshProfile(); }
I don't know what I am doing wrong here, but the database doesn't get updated when I press the button.
I'm working with Oracle database and I want to improve performance of my website.I read about caching. So is it possible to implement caching (SQL Server Database Dependency) with oracle?
I have to update multiple row and two column of each row.
I have try to Update with case statement but after I perform that statement it blank out every other column that doesn't fall into the criteria of the update statement.
My table structure is like this;
table1 col1 row1 11 row2 22
I want to update row1 and row2 of their col1 in one single sql , how do i do that?
In my web application, I have 2 totally different databases - one that's being used mostly by a CMS from which we'd like to get page information on non CMS pages on the same website, & one that contains totally different data. Is it possible to use Spring.NET's Open Session In View module with multiple session factories for both of those databases, so in this case I have 2 objects defined in spring.config of type Spring.Data.NHibernate.LocalSessionFactoryObject?
One is adding Userdetails(Fn Name : AddUserDtls) and another one adding address details(Fn name : AddAddresDtls) based on UserName which will get added after execution of first method ie AddUserDtls.
Problem I am facing is :
I have a single transaction and in that I have all the methods.
After the execution of first method,with out commiting i will go to second method.
and if any error occurs in second method.
I will rollback everything including the changes made by first method also.
Here one issue is there.
Since I am not committing the changes made by first method,
While I am executing the second method I am getting error that 'No user Name exists'
I understood that if we commit the transaction before the second method starts ,it will solve the issue.
But then it creates another problem.If some problem araise in the second method,then I cannot rollback the changes made by first method since it aleready commited.
I've got a web application that runs of a state server. It looks like soon it may need to distributed and there will be two web servers behind a load balancer.
This works great for session state but my next challenge is Cache
My application leverages heavily of cache. I understand ASP.Net 4.0 will be offering more here but nothing much has been said about the how too.
There are two challenges that I face
1). Each webserver will have its own copy of cache whereas it would be more efficient to put this to a third server the same as session state is put to state server.
2). The real challenge is keeping cache in sync if a simple dataset derived from the database is changed my code dumps that cache item and reloads the cache. That's all well on one webserver but webserver number two wont know to drop that particular cache item and reload it. This could cause some unexpected problems in the application.
For scenario number 2 I could attempt to do some smart coding so server number two knows to dump the cache and reload it.
My guess is someone else has already been here before and there's probably a better implementation approach rather than writing extra code.
Does anyone know how I could achieve the goal of keeping Cache in sync between multiple webservers or even better farm Cache management to another server?