2016-07-13 15 views
0

私たちは、大規模なサイトを持つクライアントに対して2sxcに多額の投資をしてきました。私たちは多くのカスタムアプリを開発し、デフォルトのコンテンツアプリにかなりの種類のコンテンツを追加しました。保存時に断続的例外が発生する

約1カ月前に、フロントエンドのデータを保存してContentTypesをコンテンツアプリに保存すると、遅くなってきました(しかし、そこにしか存在しません)。サイトの保存には20〜30秒かかります。今、それは悪化し、断続的に例外を投げ始めました。保存は30秒を超えません。それ以外の時は60秒です。断続的にコンテンツが保存されず、以下のエラーメッセージと例外が表示されます。

ただし、ブログアプリやカスタムアプリなどの他のアプリでコンテンツを保存することは問題ありません。パフォーマンスは良いです。また、2sxcモジュールは一般に、フロントエンドユーザーにとってうまくいくようです。

私たちはDNN 7.4.2で2sxc 8.4.5を実行しています。 DNNイベントログに表示される2つの例外があります

Had an error talking to the server (status 400) 
Message: Bad Request 
Detail: Error getting List of Stream. 
Stream Name: Default 
DataSource Name: QuickCache 

Failed to load resource: the server responded with a status of 400 (Bad Request) 
POST [removed]/en-us/desktopmodules/2sxc/api/eav/entities/savemany?appId=2 400 (Bad Request) 
(anonymous) @ VM2141:2 
(anonymous) @ set.min.js?sxcver=8.9.1.13916:103 
n @ set.min.js?sxcver=8.9.1.13916:99 
(anonymous) @ set.min.js?sxcver=8.9.1.13916:96 
(anonymous) @ set.min.js?sxcver=8.9.1.13916:131 
$eval @ set.min.js?sxcver=8.9.1.13916:145 
$digest @ set.min.js?sxcver=8.9.1.13916:142 
$apply @ set.min.js?sxcver=8.9.1.13916:146 
(anonymous) @ set.min.js?sxcver=8.9.1.13916:276 
Sf @ set.min.js?sxcver=8.9.1.13916:37 
d @ set.min.js?sxcver=8.9.1.13916:37 

:ここ


は、最初のエラーメッセージです。両方とも、保存に失敗するたびに2回表示されます。


General Exception 
AbsoluteURL:/en-us/desktopmodules/2sxc/api/eav/entities/savemany 
DefaultDataProvider:DotNetNuke.Data.SqlDataProvider, DotNetNuke 
ExceptionGUID:7888b675-2f38-4664-96ab-786b27b3406c 
AssemblyVersion: 
PortalId:-1 
UserId:-1 
TabId:-1 
RawUrl: 
Referrer: 
UserAgent: 
ExceptionHash:QVy9pjR7G9IFD3vpE650/A== 
Message:Error getting List of Stream. Stream Name: Default DataSource Name: QuickCache 
StackTrace: 
    at ToSic.Eav.DataSources.DataStream.get_LightList() in C:\Projects\eav-server\ToSic.Eav.DataSources\DataStream.cs:line 143 
    at ToSic.Eav.DataSources.BaseDataSource.get_LightList() in C:\Projects\eav-server\ToSic.Eav.DataSources\BaseDataSource.cs:line 132 
    at ToSic.Eav.Import.Import.RunImport(IEnumerable`1 newAttributeSets, IEnumerable`1 newEntities) in C:\Projects\eav-server\ToSic.Eav\ImportExport\Import.cs:line 71 
    at ToSic.Eav.WebApi.EntitiesController.SaveMany(Int32 appId, List`1 items) in C:\Projects\eav-server\ToSic.Eav.WebApi\EntitiesController.cs:line 204 
    at ToSic.SexyContent.EAVExtensions.EavApiProxies.EntitiesController.SaveMany(Int32 appId, List`1 items) in C:\Projects\2SexyContent\Web\DesktopModules\ToSIC_SexyContent\WebApi\EavApiProxies\EntitiesController.cs:line 109 
    at lambda_method(Closure , Object , Object[]) 
    at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.b__c(Object instance, Object[] methodParameters) 
    at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) 
    at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.b__4() 
    at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken) 
InnerMessage:An error occurred while executing the command definition. See the inner exception for details. 
InnerStackTrace: 
    at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) 
    at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues) 
    at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) 
    at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator() 
    at ToSic.Eav.BLL.DbLoadIntoEavDataStructure.GetAppDataPackage(Int32[] entityIds, Int32 appId, IDeferredEntitiesList source, Boolean entitiesOnly) in C:\Projects\eav-server\ToSic.Eav\BLL\DbLoadIntoEavDataStructure.cs:line 179 
    at ToSic.Eav.DataSources.SqlSources.EavSqlStore.GetDataForCache(IDeferredEntitiesList targetCacheForDeferredLookups) in C:\Projects\eav-server\ToSic.Eav\DataSources\SqlSources\EavSqlStore.cs:line 68 
    at ToSic.Eav.DataSources.Caches.BaseCache.EnsureCache() in C:\Projects\eav-server\ToSic.Eav.DataSources\Caches\BaseCache.cs:line 126 
    at ToSic.Eav.DataSources.Caches.BaseCache.GetList() in C:\Projects\eav-server\ToSic.Eav.DataSources\Caches\BaseCache.cs:line 46 
    at ToSic.Eav.DataSources.DataStream.get_LightList() in C:\Projects\eav-server\ToSic.Eav.DataSources\DataStream.cs:line 135 
Source:ToSic.Eav.DataSources 
FileName: 
FileLineNumber:0 
FileColumnNumber:0 
Method: 

Page Load Exception 
AbsoluteURL:/Default.aspx 
DefaultDataProvider:DotNetNuke.Data.SqlDataProvider, DotNetNuke 
ExceptionGUID:c5449323-0a0a-486f-98cd-9849243fff19 
AssemblyVersion:7.4.2 
PortalId:0 
UserId:-1 
TabId:56 
RawUrl:/en-us/ 
Referrer:http://www.cui.edu/en-us/ 
UserAgent:Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13F69 Safari/601.1 
ExceptionHash:301KQ/ilLzYrwILN4yfdXA== 
Message:Error getting List of Stream. Stream Name: Default DataSource Name: PublishingFilter 
StackTrace: 
InnerMessage:Error getting List of Stream. Stream Name: Default DataSource Name: PublishingFilter 
InnerStackTrace: 
    at ToSic.Eav.DataSources.DataStream.get_List() in C:\Projects\eav-server\ToSic.Eav.DataSources\DataStream.cs:line 98 
    at ToSic.Eav.DataSources.BaseDataSource.get_List() in C:\Projects\eav-server\ToSic.Eav.DataSources\BaseDataSource.cs:line 127 
    at ToSic.SexyContent.ContentGroup.get_Template() in C:\Projects\2SexyContent\Web\DesktopModules\ToSIC_SexyContent\SexyContent\ContentGroup.cs:line 71 
    at ToSic.SexyContent.ContentBlock.ModuleContentBlock..ctor(ModuleInfo moduleInfo, IEnumerable`1 overrideParams) in C:\Projects\2SexyContent\Web\DesktopModules\ToSIC_SexyContent\SexyContent\ContentBlock\ModuleContentBlock.cs:line 77 
    at ToSic.SexyContent.View.get_SxcI() in C:\Projects\2SexyContent\Web\DesktopModules\ToSIC_SexyContent\View.ascx.cs:line 18 
    at ToSic.SexyContent.View.get_UserMayEditThisModule() in C:\Projects\2SexyContent\Web\DesktopModules\ToSIC_SexyContent\View.ascx.cs:line 90 
    at ToSic.SexyContent.View.Page_Load(Object sender, EventArgs e) in C:\Projects\2SexyContent\Web\DesktopModules\ToSIC_SexyContent\View.ascx.cs:line 28 
    at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) 
    at System.Web.UI.Control.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.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.Control.LoadRecursive() 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
Source: 
FileName: 
FileLineNumber:0 
FileColumnNumber:0 
Method: 
+0

理由がわからない理由は、人々が説明なしでこれを行うときには全く役に立たない。あなたは使用されているデータベース上でSQLプロファイラを実行することができますか、またはそれは紺碧のデータベースですか? –

+0

ありがとうJキング。私は無作為投票について同じ質問をしています。過去数週間、私はサーバーパフォーマンスの問題であるかどうかを確認するために、サーバーに対して多くの最適化を実行しました。それはそうではありません。ページがすぐに応答しています。 SQLプロファイラの提案に感謝します。私は次にそこに行くでしょう。 – MDM

答えて

0

この問題は解決されているラファエル・ミュラーに感謝します。彼は、データベースのインデックスを再構築することを提案しました。これが完了すると、コンテンツの保存時間は45秒からタイムアウトとともに1.5秒に短縮されました。少年は私の顔赤です。ああ、生きて学ぶ。レッスンは簡単です:データベースにインデックスの再構築を含むメンテナンスプランがあることを確認してください。

この問題が発生する可能性のある人に役立つリンクがあります。

データベース内のすべてのインデックスを再構築するスクリプトです。理論的には、スクリプトはあなたのデータベースやウェブサイトをロックするべきではありませんが、何かが可能ですので、時間外に実行するのが最善です。約2.5Gbの私のDNNデータベースを走らせるのに5分かかりました。 https://gallery.technet.microsoft.com/scriptcenter/Script-for-rebuilding-all-8d079754

Michelle Uffordのインデックスデフラグスクリプトは高度なソリューションです。私はステージサーバー上でそれを成功させました。そして、それはコミュニティによってうまく受け入れられているようです。 http://sqlfool.com/2011/06/index-defrag-script-v4-1/

ここでは、インデックスの再構築をスケジュールする頻度についての役立つ説明があります。 How Often should the indexes be re-build in sql-server DB?

+0

ここで解決策を文書化していただきありがとうございます。あなたの答えを受け入れたものとしてマークしてください。質問はもう返答されないようになります。 –

関連する問題