Asp.Net 2.0 MM Vers 2.4
I have a web app that connects to different databases for different companies. I determine which company to connect in the Page_Load and set the databasekey on my business objects. Of cource, I have the proper connection strings in the config file. This all works fine most of the time. I'm getting an error in the mmDatabaseManager when it tries to add the key to the hash table. Is it possible multiple sessions are trying to add this at the same time ? Do I have to do some kind of app lock to get this to be reliable ? I have 10 sites and getting about 4 errors like this per day.
In may config file I have each connection string and dataaccessclass specified:
<add key="AB2253A\Connection" value="server=serverm\WEB;database=webquote_AB2253A;uid=glasave;pwd=*****;"/>
<add key="AB2253A\DataAccessClass" value="DataAccessSql"/>
<add key="SC0313A\Connection" value="server=serverm\WEB;database=webquote_SC0313A;uid=glasave;pwd=*****;"/>
<add key="SC0313A\DataAccessClass" value="DataAccessSql"/>
Below in the error
Thanks
Bill
Message:Item has already been added. Key in dictionary: 'UNI7854' Key being added: 'UNI7854'
Source:mscorlib
Date:9/9/2007 8:20:02 PM
Stack: at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
at System.Collections.Hashtable.Add(Object key, Object value)
at OakLeaf.MM.Main.Managers.mmDatabaseManager.GetDataAccessClassName(String databaseKey)
at OakLeaf.MM.Main.Business.mmBusinessObject.GetDataAccessObject(String databaseKey)
at OakLeaf.MM.Main.Business.mmBusinessObject.GetDataTables(DataSet ds, String tableName, String databaseKey)
at OakLeaf.MM.Main.Business.mmBusinessObject.GetEmptyDataSet(DataSet ds, String tableName, String databaseKey)
at OakLeaf.MM.Main.Business.mmBusinessObject.GetEmptyDataSet(String tableName, String databaseKey)
at OakLeaf.MM.Main.Business.mmBusinessObject.GetEmptyDataSet(String tableName)
at OakLeaf.MM.Main.Business.mmBusinessObject.GetEmptyDataSet()
at ctlwebquote2.ClearQuote()
at ctlwebquote2.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at OakLeaf.MM.Main.Web.UI.WebControls.mmUserControl.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)