Usuário com melhor resposta
[Erro]SandBox - ProcessCPUCycles

Pergunta
-
Boa noite!
Estou usando uma solução em SandBox e, foi estourado erro com ProcessCPUCycles.
Como poderia resolver este problema? E sempre terei este problema com SandBox?Grato desde já!
Atenciosamente,
Charles Lomboni.- Editado Charles Lomboni sexta-feira, 20 de setembro de 2013 21:36
Respostas
-
Charles,
Você pode utilizar o Developer Dashborard, conhece?
msdn.microsoft.com/en-us/library/gg512103%28v=office.14%29.aspx
Atenciosamente, Rafael Fausto
- Marcado como Resposta Charles Lomboni quinta-feira, 26 de setembro de 2013 15:49
-
Charles,
O ProcessCPUCycles é o número de ciclos de CPU (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spusageusercoderequestsmonitoreddataentry.processcpucycles(v=office.14).aspx), ou seja, está dizendo que sua aplicação consumiu mais ciclos de CPU que o permitido, conforme as cotas que o Rafael falou.
Pelo erro que vc enviou imagino que o seu SharePoint seja OnPremise e não no Office 365. Se sim, vc pode ir nas cotas da site collection e mudar para uma cota maior ou criar uma nova para ter mais pontos de sandboxed solutions.
Mas de qualquer forma, revisar o código irá ajudar também.
Atenciosamente,
Fabian André Gehrke
MCITP e MCPD SharePoint 2010
http://fabiangehrke.com.br- Editado Fabian André GehrkeMicrosoft employee, Moderator quinta-feira, 26 de setembro de 2013 01:30
- Marcado como Resposta Charles Lomboni quinta-feira, 26 de setembro de 2013 15:49
Todas as Respostas
-
-
Fabian,
A mensagem que recebo é esta:
- Erro da Web Part: O processo de trabalho que está executando esta solicitação foi interrompido porque excedeu o recurso ProcessCPUCycles.No log exibe isto:
- ExecuteRequestInSandBox call failed. Microsoft.SharePoint.UserCode.SPUserCodeExecutionPipelineFailedException: O processo de trabalho que está executando esta solicitação foi interrompido porque excedeu o recurso ProcessCPUCycles. ---> Microsoft.SharePoint.UserCode.SPUserCodeExecutionPipelineTerminallyFailedException: O processo de trabalho que está executando esta solicitação foi interrompido porque excedeu o recurso ProcessCPUCycles. at Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcess.Execute(Type userCodeWrapperType, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, SPUserToken userToken, String currentAffinity, SPUserCodeExecutionContext executionContext) at Microsoft.SharePoint.UserCode.SPUserCodePoolableProcessConnection.Execute(Type userCodeWrapper... ...Type, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, SPUserToken userToken, String affinity, SPUserCodeExecutionContext executionContext) at Microsoft.SharePoint.UserCode.SPUserCodeExecutionHost.Execute(Type userCodeWrapperType, Guid siteCollectionId, SPUserToken userToken, String affinity, SPUserCodeExecutionContext executionContext) --- End of inner exception stack trace --- Server stack trace: at Microsoft.SharePoint.UserCode.SPUserCodeExecutionHost.Execute(Type userCodeWrapperType, Guid siteCollectionId, SPUserToken userToken, String affinity, SPUserCodeExecutionContext executionContext) at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInCon... ...text, Object[]& outArgs) at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at Microsoft.SharePoint.Administration.ISPUserCodeExecutionHostProxy.Execute(Type userCodeWrapperType, Guid siteCollectionId, SPUserToken userToken, String affinityBucketName, SPUserCodeExecutionContext executionContext) at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.Execute(Type userCodeWrapperType, SPSite site, SPUserCodeExecutionContext executionContext) at Microsoft.SharePoint.... ...UserCode.SPUserCodeWebPartRemoteExecutionHelper.<>c__DisplayClassa.<ExecuteRequestInSandBox>b__9() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) at Microsoft.SharePoint.UserCode.SPUserCodeWebPartRemoteExecutionHelper.ExecuteRequestInSandBox(HttpContext context, SPWeb web, SPWebPartManager manager, SPUserCodeWebPart userCodeWebPart)Atenciosamente,
Charles Lomboni. -
Fabian,
Não entendi como esse ciclo funciona.. ele excede por quantidades de exceções ou algo do tipo? Porque estou tendo isso no servidor de homologação apenas.. na máquina local, tento forçar algum erro do tipo e nada ocorre. Poderia dar uma luz sobre esse problema? Isto esta se tornando uma dor de cabeça. :(
[]'s
Atenciosamente,
Charles Lomboni. -
Charles,
Uma solução sandbox tem suas particularidades, visando a qualidade do ambiente.
O Sharepoint possúi alguns recursos para monitorar e gerenciar essas soluções, tudo isso para garantir que uma solução mal codificada prejudique o desempenho e a qualidade do ambiente.
Podemos agora definir limites para a utilização de CPU, memória e o tempo de execução de queries por exemplo.
Quando a solução passa ultrapassa o limite determinado, o Sharepoint desabilita a solução.
O ideal é você analisar o código e verificar se existe algum ponto da solução que ultrapasse esse limite.
O que essa solução faz realmente?
Atenciosamente, Rafael Fausto
-
Rafael,
A solução recebe um arquivo xml e decifra os campos com algumas validações, e como o "core" geral alguns relatórios de valores das cargas subidas pelo xml.
Acredito que o código possa ser refatorado - visto que peguei este projeto já pronto. Mas até poder pegar e, de fato refatorar o código, gostaria de entender em qual ponto pode estar ocasionando este erro e tentar solucionar. Por onde estiver a melhor solução, será meu ponto focal.
Grato pela atenção.
Atenciosamente,
Charles Lomboni.- Editado Charles Lomboni segunda-feira, 23 de setembro de 2013 20:07
-
Charles,
Você pode utilizar o Developer Dashborard, conhece?
msdn.microsoft.com/en-us/library/gg512103%28v=office.14%29.aspx
Atenciosamente, Rafael Fausto
- Marcado como Resposta Charles Lomboni quinta-feira, 26 de setembro de 2013 15:49
-
Charles,
O ProcessCPUCycles é o número de ciclos de CPU (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spusageusercoderequestsmonitoreddataentry.processcpucycles(v=office.14).aspx), ou seja, está dizendo que sua aplicação consumiu mais ciclos de CPU que o permitido, conforme as cotas que o Rafael falou.
Pelo erro que vc enviou imagino que o seu SharePoint seja OnPremise e não no Office 365. Se sim, vc pode ir nas cotas da site collection e mudar para uma cota maior ou criar uma nova para ter mais pontos de sandboxed solutions.
Mas de qualquer forma, revisar o código irá ajudar também.
Atenciosamente,
Fabian André Gehrke
MCITP e MCPD SharePoint 2010
http://fabiangehrke.com.br- Editado Fabian André GehrkeMicrosoft employee, Moderator quinta-feira, 26 de setembro de 2013 01:30
- Marcado como Resposta Charles Lomboni quinta-feira, 26 de setembro de 2013 15:49
-