|
From: <sv...@de...> - 2005-05-30 20:49:47
|
Author: marijn
Date: 2005-05-30 16:49:37 -0400 (Mon, 30 May 2005)
New Revision: 1205
Added:
humano2/trunk/components/viewTools/viewCache.cs
Modified:
humano2/trunk/components/viewTools/ViewTools.cs
humano2/trunk/core/db/absCrud.cs
humano2/trunk/core/db/cachedictionary.cs
humano2/trunk/web/portal/site/instance.aspx.cs
Log:
MERGE: from 1194:1204 branches/caching/ to trunk/
* ViewTools now does some simple statement caching.
* Removing some too verbose logger statements.
Modified: humano2/trunk/components/viewTools/ViewTools.cs
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/components/viewTools/ViewTools.cs 2005-05-30 20:41:15 U=
TC (rev 1204)
+++ humano2/trunk/components/viewTools/ViewTools.cs 2005-05-30 20:49:37 U=
TC (rev 1205)
@@ -319,6 +319,11 @@
=20
public DataTable GetSQLDataTable(DataTable parametros)
{
+ return GetSQLDataTable(parametros, true);
+ }
+
+ private DataTable GetSQLDataTable(DataTable parametros, bool retry)
+ {
string sql =3D ParseQuery(parametros);
DataTable res =3D new DataTable();
int find =3D sql.IndexOf("tempTable");
@@ -363,8 +368,29 @@
// throw new Exception("Error realizando paginado de la consulta.\n"=
+ex.Message,ex.InnerException);
//}
}
- res =3D Complex.doSelect(sql);
=20
+ try=20
+ {
+ res =3D Complex.doSelect(sql);
+ }=20
+ catch (Exception ex)
+ { // We got an error executing the request!
+ if(retry)
+ {
+ Logger.Log("We got an exception executing SQL, Will flush cache!", =
LogLevel.Error);
+ Logger.Log("Statement was: " + sql, LogLevel.Error);
+ ViewCache.Instance().FlushAll();
+ GetSQLDataTable(parametros, false);
+ }
+ else
+ {
+ Logger.Log("We got an exception executing SQL again, Raising Error!=
", LogLevel.Error);
+ Logger.Log("Final Statement was: " + sql, LogLevel.Error); =09
+ throw ex;
+ }
+ =09
+ }
+
if(find > -1) {
Complex.doCommand(dropTable);
}
@@ -447,9 +473,9 @@
foreach(DisplayOrder var2 in disp)
{
vars.Add(var2.Text + "," + var2.Type);
- Logger.Log("ViewTools: vars[]=3D" + var2.Text + "," =
+ var2.Type,LogLevel.Trace);
+ //Logger.Log("ViewTools: vars[]=3D" + var2.Text + ",=
" + var2.Type,LogLevel.Trace);
}
- Logger.Log("ViewTools: call of BuildTempTable",LogLevel.=
Trace);
+ //Logger.Log("ViewTools: call of BuildTempTable",LogLeve=
l.Trace);
Query.Append(Complex.BuildTempTable((string[])vars.ToArray(typeof(st=
ring)),ref tableName));
TempTable =3D tableName;
}
@@ -461,7 +487,7 @@
=20
Query.Remove(Query.Length-2,2);
Query.Append(" ");
- Logger.Log("Select Query: " + Query.ToString() ,LogLevel.Tra=
ce);
+ //Logger.Log("Select Query: " + Query.ToString() ,LogLevel.T=
race);
return Query.ToString();
}
=20
@@ -636,10 +662,17 @@
{
DataRow objRow;
object[] objArray;
- StringBuilder Query =3D new StringBuilder();
- =09
+
objRow =3D Params.Rows[0];
+
+ string res =3D ViewCache.Instance().GetCachedStatement(objRow) ;
+ if( res !=3D null )
+ { // We got the cached datatable result. lets return that and not con=
struct a new one again.
+ return res;
+ }
+
objArray =3D objRow.ItemArray;
+ StringBuilder Query =3D new StringBuilder();
=09
string[] dataRowColumns =3D new string [objArray.Length];
=20
@@ -703,8 +736,12 @@
Query.Append(";\n");
Query.Append("SELECT * FROM " + TempTable + " where row between "+ i=
nicio.ToString() + " and " + limite.ToString());
}
- //Logger.Log("Query=3D" + Query.ToString(),LogLevel.Trace);
- return Query.ToString();
+
+ res =3D Query.ToString();
+ //Logger.Log("Query=3D" + res,LogLevel.Trace);
+ ViewCache.Instance().AddStatement(objRow, res);
+
+ return res;
}
=09
private string GetGroupingFilters(string[] strParams)
Copied: humano2/trunk/components/viewTools/viewCache.cs (from rev 1204, h=
umano2/branches/caching/components/viewTools/viewCache.cs)
Property changes on: humano2/trunk/components/viewTools/viewCache.cs
___________________________________________________________________
Name: svn:mime-type
+ text/cpp
Name: svn:keywords
+ Id
Modified: humano2/trunk/core/db/absCrud.cs
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/core/db/absCrud.cs 2005-05-30 20:41:15 UTC (rev 1204)
+++ humano2/trunk/core/db/absCrud.cs 2005-05-30 20:49:37 UTC (rev 1205)
@@ -59,7 +59,6 @@
virtual public string AttributeTypeMapping(string name)
{
string res =3D "";
- Logger.Log("AttributeTypeMapping. name=3D " + name, LogLevel=
.Trace);
if(attMap[name] =3D=3D null) //This is not a basic type
{
res =3D findSqlTypeForAttribute(attMap,name);
@@ -68,6 +67,7 @@
{
res =3D attMap[name]; =20
}
+ //Logger.Log("AttributeTypeMapping. name=3D " + name + " res=
=3D " + res, LogLevel.Trace);
return res;
}
=09
Modified: humano2/trunk/core/db/cachedictionary.cs
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/core/db/cachedictionary.cs 2005-05-30 20:41:15 UTC (rev=
1204)
+++ humano2/trunk/core/db/cachedictionary.cs 2005-05-30 20:49:37 UTC (rev=
1205)
@@ -18,6 +18,8 @@
public class CacheDictionary {
=09
Hashtable myData =3D null;
+ long hitsCount =3D 0;
+ long getsCount =3D 0;
=09
public CacheDictionary()
{
@@ -32,6 +34,15 @@
}
}
=09
+ public double HitRatio
+ {
+ get
+ {
+ if(getsCount =3D=3D 0) { return 0; }
+ return Convert.ToDouble( hitsCount ) / Convert.ToDouble( getsCount )=
;
+ }
+ }
+
/// <summary>
/// Method Add
/// </summary>
@@ -84,7 +95,13 @@
public Object this[int key]
{
get {
- return myData[key];
+ getsCount++;
+ Object obj =3D myData[key];
+ if(obj !=3D null)=20
+ { // if we got data, addone to the hits counter.
+ hitsCount++;
+ }
+ return obj;
}
}
}
Modified: humano2/trunk/web/portal/site/instance.aspx.cs
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/web/portal/site/instance.aspx.cs 2005-05-30 20:41:15 UT=
C (rev 1204)
+++ humano2/trunk/web/portal/site/instance.aspx.cs 2005-05-30 20:49:37 UT=
C (rev 1205)
@@ -113,7 +113,7 @@
=20
=20
=20
- Logger.Log("createXmlASP: BEGIN",LogLevel.Trace);
+ //Logger.Log("createXmlASP: BEGIN",LogLevel.Trace);
=20
//Generamos el XML con la informacion de la entidad pedida=20
=09
@@ -228,7 +228,7 @@
data +=3D "</data>\n";
}
=20
- Logger.Log("createXmlASP: data(before)=3D" + data,Lo=
gLevel.Trace);
+ //Logger.Log("createXmlASP: data(before)=3D" + data,=
LogLevel.Trace);
//Construimos el Xml
string swXml =3D "";
swXml +=3D "<?xml version=3D\"1.0\" encoding=3D\"UTF=
-8\"?>";
@@ -249,8 +249,8 @@
swXml +=3D "</page>";
=20
//Logger.Log("createXmlASP: structure=3D" + structur=
e,LogLevel.Trace);
- Logger.Log("createXmlASP: clearDateTime(data)=3D" + =
clearDateTimeData(data),LogLevel.Trace);
- Logger.Log("swXml: " + swXml ,LogLevel.Trace);
+ //Logger.Log("createXmlASP: clearDateTime(data)=3D" =
+ clearDateTimeData(data),LogLevel.Trace);
+ //Logger.Log("swXml: " + swXml ,LogLevel.Trace);
return swXml;
=20
}
@@ -274,7 +274,7 @@
dateClearedData =3D dateClearedData.Replace("]",">"); =
=20
// NO SACAR: Ensucia los campos TEXT!! dateClearedData =3D=
dateClearedData.Replace(" ",""); //trim
dateClearedData =3D dateClearedData.Trim();
- Logger.Log("\n\n[clearDateTimeData ]: " + dateClearedDat=
a, LogLevel.Trace);
+ //Logger.Log("\n\n[clearDateTimeData ]: " + dateClearedD=
ata, LogLevel.Trace);
return dateClearedData;
}
=20
|