What do you consider large? Would 35k be large?
When you refer to "deserialized into the local AppDomain", what does this mean exactly?
Thank you,
>Gordon,
>
>The ASP.NET cache holds the actual data and is global to the machine. Which means there's only one copy in the cache no matter how many users.
>
>When your page uses an object out of the cache it gets deserialized into the local AppDomain, so there's a memory hit there.
>
>Your real hit is the actual simultaneous requests that are happening which is probably relatively small at any given request instance.
>
>Still remember that the DataSet is serialized in the Cache object so using the Cache for objects especially large one's isn't free.
>
>+++ Rick ---
>
>
>
>
>>I have created a business object which pulls static tables from the server using a single stored procedure.
>>
>>For example, one business object created, one stored procedure executed on the data server, and finally a single dataset within the application containing 14 tables. These tables are things like Gender, Marital Status, Province/State, Country...
>>
>>The estimated total size of the 14 tables is 35k.
>>
>>The first time the application runs, the 14 tables are loaded into the cache on the server.
>>
>>
>>mmDataSet ds = (mmDataSet)Cache["cacheSupportTables"];
>>if (ds==null)
>>{
>> // pull data from the server and store it to the cache
>> Cache["cacheSupportTables"] = (mmDataSet)this.oSupportTables.LoadAllTables();
>> this.testmessages.Text = "Pulled from data server.";
>>}
>>else
>>{
>> // Send the cache to the BusinessObject
>> this.oSupportTables.GetAll(ds);
>> this.testmessages.Text = "Pulled from cache.";
>>}
>>
>>
>>
>>Now here is the question. If there are 1,000 users connected to the web application, how much server memory is used?
>>
>>a. 35k
>>b. 35000k + 35k for the cache
>>
>>When I execute the ---
>>
mmDataSet ds = (mmDataSet)Cache["cacheSupportTables"];
>>---line do we create a copy or is it just a pointer to the data?