From aa40ff017d2789eb25c8fdf74e9b446bc239576a Mon Sep 17 00:00:00 2001 From: Rich Date: Wed, 1 Mar 2017 15:40:36 +0000 Subject: [PATCH] Added a Timeout property to the FolderConfig Added Command Timeout to each query that did not have a specified timeout --- .../Config/FolderConfig.cs | 19 +++++++++++++++++++ .../Extension/AnnotationExt.cs | 2 ++ .../Extension/AuditExt.cs | 19 +++++++++++++------ .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 2 ++ .../Extension/ItemInsertExt.cs | 1 + .../Extension/MultiUserExt.cs | 10 +++++++++- .../VEPROMS.CSLA.Library/Extension/PdfExt.cs | 1 + .../Extension/RevisionInfoExt.cs | 3 +++ 8 files changed, 50 insertions(+), 7 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Config/FolderConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/FolderConfig.cs index 782e3a64..fafe9b0c 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/FolderConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/FolderConfig.cs @@ -262,6 +262,25 @@ namespace VEPROMS.CSLA.Library } } #endregion + #region SQL + [Category("SQL")] + [DisplayName("Timeout")] + [RefreshProperties(RefreshProperties.All)] + [Description("SQL Timeout")] + public string Timeout + { + get + { + string s = _Xp["SQL", "Timeout"];// get the saved value + return s; + } + set + { + _Xp["SQL", "Timeout"] = value; + OnPropertyChanged("Timeout"); + } + } + #endregion //#region ColorCategory // From veproms.ini //// ** Note that not all possibilities from 16-bit will be added here, until //// ** it is determined how these will be used diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/AnnotationExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/AnnotationExt.cs index 86f7e66d..e6979784 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/AnnotationExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/AnnotationExt.cs @@ -131,6 +131,7 @@ namespace VEPROMS.CSLA.Library { cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getAnnotationTypeByName"; + cm.CommandTimeout = Database.SQLTimeout; cm.Parameters.AddWithValue("@Name", criteria.Name); using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { @@ -264,6 +265,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "deleteAnnotationWithUserID"; cm.Parameters.AddWithValue("@AnnotationID", criteria.AnnotationID); cm.Parameters.AddWithValue("@UserID", criteria.UserID); diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/AuditExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/AuditExt.cs index 6fe5d679..40ef6607 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/AuditExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/AuditExt.cs @@ -455,6 +455,7 @@ namespace VEPROMS.CSLA.Library cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); cm.Parameters.AddWithValue("@UnitID", criteria.UnitID); cm.Parameters.AddWithValue("@DTS", criteria.DTS); + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -841,6 +842,7 @@ namespace VEPROMS.CSLA.Library cm.Parameters.AddWithValue("@IncludeDeletedChildren", criteria.IncludeDeletedChildren ? 1 : 0); cm.Parameters.AddWithValue("@UnitID", criteria.UnitID); cm.Parameters.AddWithValue("@DTS", criteria.DTS); + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -1024,6 +1026,7 @@ namespace VEPROMS.CSLA.Library cm.Parameters.AddWithValue("@IncludeDeletedChildren", criteria.IncludeDeletedChildren ? 1 : 0); cm.Parameters.AddWithValue("@UnitID", criteria.UnitID); cm.Parameters.AddWithValue("@DTS", criteria.DTS); + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -1097,7 +1100,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getDocumentAuditsByDocID"; cm.Parameters.AddWithValue("@DocID", criteria.DocID); - cm.CommandTimeout = Database.DefaultTimeout; + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -1159,7 +1162,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getEntryAuditsByContentID"; cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.CommandTimeout = Database.DefaultTimeout; + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -1221,7 +1224,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getGridAuditsByContentID"; cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.CommandTimeout = Database.DefaultTimeout; + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -1283,7 +1286,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getImageAuditsByContentID"; cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.CommandTimeout = Database.DefaultTimeout; + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -1345,7 +1348,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getItemAuditsByItemID"; cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.CommandTimeout = Database.DefaultTimeout; + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -1414,7 +1417,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getPartAuditsByContentID"; cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.CommandTimeout = Database.DefaultTimeout; + cm.CommandTimeout = Database.DefaultTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -1672,6 +1675,7 @@ namespace VEPROMS.CSLA.Library cm.Parameters.AddWithValue("@DeleteID", iai.DeleteStatus); cm.Parameters.AddWithValue("@CurrentID", ii.ItemID); cm.Parameters.AddWithValue("@Level", iai.Level); + cm.CommandTimeout = Database.DefaultTimeout; cm.ExecuteNonQuery(); } } @@ -1733,6 +1737,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "restoreChangedAnnotation"; cm.Parameters.AddWithValue("@AuditID", aai.AuditID); + cm.CommandTimeout = Database.DefaultTimeout; cm.ExecuteNonQuery(); } } @@ -1755,6 +1760,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "restoreDeletedAnnotation"; cm.Parameters.AddWithValue("@AnnotationID", aai.AnnotationID); + cm.CommandTimeout = Database.DefaultTimeout; cm.ExecuteNonQuery(); } } @@ -1877,6 +1883,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "restoreChangedContent"; cm.Parameters.AddWithValue("@AuditID", cai.AuditID); + cm.CommandTimeout = Database.DefaultTimeout; cm.ExecuteNonQuery(); } } diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 4002f6e6..15c80bb4 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -6449,6 +6449,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.DefaultTimeout; cm.CommandText = "vesp_ListItemAndChildrenByUnit"; cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); @@ -6738,6 +6739,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cmd = new SqlCommand("vesp_ProcedureTransitionsCount", cn)) { cmd.CommandType = CommandType.StoredProcedure; + cmd.CommandTimeout = Database.SQLTimeout; cmd.Parameters.AddWithValue("ItemID", _ItemID); _ProcedureTransitionsCount = (int)cmd.ExecuteScalar(); } diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs index 9ad9f1bf..de0057cf 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs @@ -2251,6 +2251,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "DeleteItemAndChildren"; cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); cm.Parameters.AddWithValue("@UserID", criteria.UserID); diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs index 218ae211..e99aee8a 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs @@ -44,6 +44,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "vesp_SessionCanCheckOutItem"; cm.Parameters.AddWithValue("@ObjectID", criteria.ObjectID); cm.Parameters.AddWithValue("@ObjectType", criteria.ObjectType); @@ -236,6 +237,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "vesp_SessionBegin"; cm.Parameters.AddWithValue("@UserID", criteria.UserID); cm.Parameters.AddWithValue("@MachineName", criteria.MachineName); @@ -768,6 +770,7 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getOwnersBySessionID"; cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); + cm.CommandTimeout = Database.SQLTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; @@ -821,7 +824,8 @@ namespace VEPROMS.CSLA.Library cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getOwnersByVersionID"; cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + cm.CommandTimeout = Database.SQLTimeout; + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { IsReadOnly = false; while (dr.Read()) this.Add(new OwnerInfo(dr)); @@ -886,6 +890,7 @@ namespace VEPROMS.CSLA.Library cm.CommandText = "getOwnerBySessionIDandFolderID"; cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); + cm.CommandTimeout = Database.SQLTimeout; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { if (!dr.Read()) @@ -951,6 +956,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "getOwnerBySessionIDandVersionID"; cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); @@ -1019,6 +1025,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "getOwnerByItemID"; cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); cm.Parameters.AddWithValue("@ItemType", (int)criteria.ItemType); @@ -1254,6 +1261,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "getUserByUserID"; cm.Parameters.AddWithValue("@UserID", criteria.UserID); using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/PdfExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/PdfExt.cs index db6a3827..91dbaf38 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/PdfExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/PdfExt.cs @@ -46,6 +46,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "deleteAllPdfs"; cm.Parameters.AddWithValue("@DocID", criteria.DocID); cm.ExecuteNonQuery(); diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs index 409f8b2f..ce3d918e 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs @@ -487,6 +487,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "getRevisionByItemIDandRevisionNumberAndUnitID"; cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); cm.Parameters.AddWithValue("@RevisionNumber", criteria.RevisionNumber); @@ -625,6 +626,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "getRevisionsByItemIDandUnitID"; cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); cm.Parameters.AddWithValue("@UnitID", criteria.UnitID); @@ -847,6 +849,7 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; + cm.CommandTimeout = Database.SQLTimeout; cm.CommandText = "getCurrentRevisionByItemIDandUnitID"; cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); cm.Parameters.AddWithValue("@UnitID", criteria.UnitID);