Translate

Mostrando postagens com marcador AX2012. Mostrar todas as postagens
Mostrando postagens com marcador AX2012. Mostrar todas as postagens

domingo, 3 de novembro de 2024

AX 2012 EP - 'The referenced file '/_layouts/ep/EPSecurityControlascx' is not allowed on this page'

 Este erro no EP do AX2012 apesar de antigo e amplamente documentado nos blogs ainda causa problemas... Resolvi deixar este post aqui pra facilitar minha vida!

O erro é este abaixo ao acessar qualquer pagina do EP após aplicar atualizações do Sharepoint no Windows:

A solução vem da própria Microsoft: Microsoft - Erro EP AX 2012

A depender de como o Sharepoint foi instalado, você pode ter dificuldades para localizar o arquivo "web.config" correto. Neste caso basta fazer como no print abaixo:


Faça uma cópia do seu arquivo web.config por segurança:



Busque no arquivo web.config por <PageParserPaths> e adicione o seguinte:

<PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" AllowUnsafeControls="true" IncludeSubFolders="true"></PageParserPath>

Após adicionar a linha acima o arquivo ficará como no print abaixo:

Salve e tente acessar o EP novamente!



quarta-feira, 19 de março de 2014

Problemas ao instalar KB2899956 AX2012 R2 CU7.

Boa tarde pessoal!

Quero hoje compartilhar com vocês uma situação complicada pela qual estou passando!

Me foi solicitado que aplicasse o KB2899956 em um ambiente de AX2012 R2 com CU7. Este KB é referente a atualização do calculo do PIS e Cofins com ICMS fora da base de calculo, isso de acordo com o consultor que me solicitou a aplicação deste KB!

Este KB ainda não está disponível no Partner Source e só consegui acesso a ele via chamado técnico.

Para não gerar problemas no ambiente do cliente eu utilizei um ambiente de testes, idêntico ao ambiente do cliente. Neste ambiente eu tinha o AX2012 R2 com o CU7 instalado e também o KB2859549 necessário para o DIEF. Como disse, ambiente de testes exatamente idêntico ao do cliente.

Ao executar o setup do KB2899956 eu segui normalmente o processo e ao chegar na parte em que eu deveria selecionar qual o banco de dados a ser atualizado nada foi exibido, veja imagem abaixo:





Ao clicar em next eu tinha a opção de digitar o nome do servidor de banco de dados e também o nome do banco de dados do AX a ser atualizado, e ao fazer isso a seguinte mensagem de erro me foi apresentada:
"A instância do banco de dados fornecida não atende aos requisitos de aplicabilidade para esta atualização. Para obter mais informações consulte os  logs de instalação."




Ao consultar os logs encontrei a seguinte informação:

 === Starting UI phase ===
Property AcceptLicenseTerms set to: '1'
Property InstallOtherModelDatabase set to: '0'
Property InstallOtherModelDatabase set to: '1'
Calling AxUtil to get list of installed models.
Using AxUtil to connect to database "AX6_GVS_HMG_model" on server "GVSBRAX02".
AxUtil call is complete.
Installed models:
Layer: "Sys", name: "Foundation", publisher "Microsoft Corporation", version "6.2.158.0", partition "N/A"
Layer: "Sys", name: "Foundation Labels", publisher "Microsoft Corporation", version "6.2.158.0", partition "N/A"
Layer: "Syp", name: "Update for Foundation", publisher "Microsoft Corporation", version "6.2.1000.4051", partition "Foundation"
Layer: "Syp", name: "SYP Labels", publisher "Microsoft Corporation", version "6.2.1000.4762", partition "SYP-Labels"
Layer: "Syp", name: "Hotfix-KB2859549-Foundation", publisher "Microsoft Corporation", version "6.2.1000.4762", partition "Foundation"
Layer: "Syp", name: "Hotfix-KB2909140-Foundation", publisher "Microsoft Corporation", version "6.2.1000.4748", partition "Foundation"
Layer: "Var", name: "VAR Model", publisher "", version "1.0.0.0", partition "N/A"
Layer: "Var", name: "DotSoft_GVS", publisher "Rodrigo Fontana", version "1.0.0.0", partition "N/A"
Layer: "Usr", name: "USR Model", publisher "", version "1.0.0.0", partition "N/A"
Found update model(File: D:\Install\KB2899956\Models\dynamicsax2012r2-kb2858835-foundation.axmodel, Layer: Syp, Name: Hotfix-KB2858835-Foundation, Version: 6.2.1000.3670, Partition: Foundation)
Found update model(File: D:\Install\KB2899956\Models\dynamicsax2012r2-kb2899956-foundation.axmodel, Layer: Syp, Name: Hotfix-KB2899956-Foundation, Version: 6.2.1000.4610, Partition: Foundation)
Found update model(File: D:\Install\KB2899956\Models\dynamicsax2012r2-kb2899956-syplabels.axmodel, Layer: Syp, Name: SYP Labels, Version: 6.2.1000.4610, Partition: SYP-Labels)
Evaluating applicability requirements for model file: D:\Install\KB2899956\Models\dynamicsax2012r2-kb2858835-foundation.axmodel
Required model (Layer: SYS, Name: Foundation, Version: 6.2.158.0) is installed: True
Update model file is installed: True
Evaluating applicability requirements for model file: D:\Install\KB2899956\Models\dynamicsax2012r2-kb2899956-foundation.axmodel
Required model (Layer: SYS, Name: Foundation, Version: 6.2.158.0) is installed: True
Update model file is installed: True
Evaluating applicability requirements for model file: D:\Install\KB2899956\Models\dynamicsax2012r2-kb2899956-syplabels.axmodel
Required model (Layer: SYS, Name: Foundation, Version: 6.2.158.0) is installed: True
Update model file is installed: True


Notem na mensagem acima a linha em azul....

(Este mesmo erro ocorreu em outros 9 ambientes de mesma configuração)

Ao ver esta linha me lembrei de um outro problema que tive, um erro semelhante e causado por este mesmo KB que já estava instalado. Vejam o erro aqui.

Por esta razão eu decidi tentar aplicar o KB2899956 em um ambiente de AX "limpo", ou seja, sem nenhum outro KB já aplicado, apenas com o CU7. A instalação funcionou perfeitamente, sem nenhum erro, compilei e sincronizei o AX normalmente. Durante o processo o proprio setup localizou o banco a ser atualizado:



Ok, mas e como resolver o problema do cliente? Neste caso eu utilizei o meu ambiente de teste idêntico ao do cliente. Utilizei o comando Get-AXModel e identifiquei o nome do Model instalado pelo KB do DIEF, neste caso o nome é "Hotfix-KB2859549-Foundation".

Por se tratar de meu ambiente de teste, eu simplesmente removi este model (como remover model), reiniciei o AOS, compilei e sincronizei o AX.

Após as ações acima eu pude aplicar o KB2899956 sem problema no meu ambiente de teste. Na descrição de conteúdo do KB2899956 é possível ver que ele também inclui o KB2859549 e que por esta razão o DIEF deveria funcionar corretamente, mas infelizmente isso não aconteceu. Utilizando o comando Get-AXModel |more eu identifiquei que o hotfix 2859549 de fato havia sido aplicado pelo KB2899956.
Eu tinha agora um ambiente atualizado com o KB solicitado pelo consultor mas o DIEF não funcionava. Ao tentar acessar as configurações do DIEF o seguinte erro era exibido:





O que fazer neste caso?....

Neste caso eu tive que aplicar novamente o KB2859549 para que o DIEF voltasse a funcionar corretamente. Logicamente fui obrigado a compilar e sincronizar o AX.

Entenderam tudo oque foi dito acima?... nem eu!!!... Só sei que foi assim!!!

No final das contas entendi a causa de todo o problema. Ao instalar o KB2859549 para o DIEF tudo funcionou normalmente. 02 meses após me foi solicitado que aplicasse o KB2899956, o problema foi exatamente este, a sequencia de aplicação destes KB`s. Verificando as builds dos KB`s temos a seguinte informação:



Kb 2899956 - build - 6.2.1000.4610
kb 2859549 - build - 6.2.1000.4762


Ou seja, apliquei os KB`s de acordo com a necessidade do projeto, e por isso o erro!!!

Muita atenção a versão de build dos KBs para evitar erros como este!

Em resumo, para resolver o meu problema eu fiz os seguinte:

Removi o Model aplicado pelo KB2859549, compilei e sincronizei o AX.
Instalei o KB2899956, compilei e sincronizei o AX.
Reinstalei o KB2859549, compilei e sincronizei o AX.

E assim meu problema foi resolvido!!!

segunda-feira, 24 de fevereiro de 2014

Alterar instancia do AX para o Add-in do Excel - AX2012 R2.

Olá pessoal!

O post de hoje é uma dica simples mas que creio eu será de muita utilidade em ambientes com múltiplos AOS's!

Em casos assim, ao utilizar o Add-in do Excel ele utilizará os parâmetros do "Microsoft Dynamics AX Configuration Utility" para se conectar à instância do AX. Se a configuração estiver apontando para a instância 01 o excel se conectará a ela.

Veja os detalhes de conexão do Configuration Utility e também das "opções" na aba Dynamics AX no excel. Notem as informações de conexão como nome de servidor e portas utilizadas.





Utilizando o Configuration Utility eu "apontei" a conexão para o servidor de testes, vejam novamente os parâmetros de conexão, nome de servidor e portas utilizadas.




Em resumo, ao acessar um servidor com múltiplas instâncias do AX, ou mesmo um servidor central para acesso remoto, basta alterar as configurações do "Configuration Utility" e aponta-las para a instância à qual você deseja que o add-in do excel se conecte.

O "Microsoft Dynamics AX Configuration Utility" esta localizado nas "Ferramentas Administrativas" do servidor ou estação de trabalho e só pode ser executado por um usuário com privilegios administrativos locais.

Consulte seu administrador de redes para obter informações como nome de servidor e portas a serem utilizadas.

Até a próxima!

terça-feira, 18 de fevereiro de 2014

Erro Gacutil utility for registering .NET 4.0 assembly.

Olá pessoal!

Este post é mais para gravar uma informação do que uma dica ou outra coisa do tipo...

Este erro me ocorreu hoje, não sei a causa e a solução não tem explicação plausível, mas mesmo assim deixo este post aqui para necessidades futuras!!!

Em um servidor com AX2012 R2 CU1, depois de todos os requisitos corretamente preparadas, tentei instalar o DMF, neste caso utilizei o "DMF" mesmo e não o "DIEF", o setup me apresentou a seguinte tela de erro:

A solução para este problema foi copiar os arquivos "gacutil.exe" e "gacutil.exe.config" do diretório C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools de um servidor onde a instalação foi executada sem problemas e colar estes arquivos no mesmo diretorio do servidor que apresenta o problema.



E desta forma finalizei o setup....

Ainda estou testando a ferramenta para saber se terei mais problemas, caso encontre algo novo ou mesmo se tudo funcionar corretamente eu atualizarei este post.

Até a proxima!

segunda-feira, 2 de dezembro de 2013

Dica do dia!

Olá pessoal!

Segue abaixo um link muito util que os ajudará a evitar problemas na execução de relatorios do AX2012.

Talvez vocês já tenham visto esta pagina, mas com certeza ela será útil sempre!

Tips to help prevent long-running reports from timing out [AX 2012]

quinta-feira, 3 de outubro de 2013

Dica do dia!!!

Olá pessoal!

Hoje vou compartilhar com vocês uma dica para descontrair!

Espero que gostem!


Até a próxima!

quarta-feira, 18 de setembro de 2013

Aplicativos do Dynamics AX2012 para Windows 8!

Pessoal, a Microsoft liberou 03 aplicativos do Dynamics AX2012 para Windows 8.

Os aplicativos são os seguintes:

Dynamics AX 2012 Timesheets (Folha de Ponto)

Dynamics AX 2012 Expenses (Despesas)
 


Estes 03 aplicativos estão disponíveis na Windows Store e em 38 idiomas diferentes!

Já estão disponíveis no Partner Source os KB's e manuais necessários para a instalação e configuração da comunicação entre o AX2012 e estes aplicativos.

Para mais detalhes sobre estes aplicativos acessem as paginas de cada um deles clicando nos links acima.

Em próximos posts demonstrarei como instalar e utilizar estes aplicativos!

Fonte: MSDN Blogs

Erro "Internal time zone version number" AX2012 R2

Tarde pessoas!

Hoje venho compartilhar um erro que encarei em um cliente onde estou atuando.

Este erro ocorreu após a aplicação dos seguintes KB's para Retail em um AX2012 R2 CU6:



- KB2814047 (correção do uso de dimensões de varejo na venda do item no POS);
- KB2843029 (p/ ECF Bematech);
- KB2858677 (Lei da Transparência).

Após a aplicação destes KB's foi necessário reiniciar o servidor. O problema foi notado ao tentar acessar o AX após a reinicialização do servidor, neste momento o AX já não podia ser acessado, o erro de conexão com o AOS era exibido. Ao verificar o serviço do AX ele de fato estava parado e ao tentar inicia-lo a seguinte mensagem foi exibida:




Ao verificar o Event Viewer eu encontrei os seguintes erros:




Ao pesquisar as mensagens de erro não encontrei solução para meu problema... em alguns sites diziam ser problema de permissão da conta serviço devido a restore de banco de dados com versão de CU diferente... nada resolveu meu problema...

Passei então a fazer testes baseados na primeira mensagem do Event Viewer.

No primeiro teste eu alterei a versão do AX32.EXE que devido a aplicação dos KB's para retail foi atualizado para a versão 6.2.1000.1608, sendo que o CU6 padrão é a versão 6.2.1000.1437. Restaurei a versão original deste executável mas ao tentar iniciar o serviço o mesmo erro e o mesmos logs ocorreram...

No segundo teste eu restaurei o AX32Serv.EXE para a versão padrão do CU6 já que este também havia sido atualizado pelos KB's de retail aplicados anteriormente, ao iniciar o serviço ele foi iniciado corretamente!!!

Em um terceiro teste eu restaurei o AX32.EXE para a versão atualizada pelos KB's, 6.2.1000.1608, e mantive o AX32Serv.EXE na versão 6.2.1000.1437 e o serviço novamente foi iniciado sem problemas.

No final tenho o serviço do AX iniciado utilizando versões de ax32 e axserv 32 diferentes. Por alguma razão que ainda desconheço os KB's aplicados atualizaram corretamente os executaveis do AX, mas infelizmente o AX32Serv.exe apresentou problemas.

Em um servidor diferente, e com os mesmos produtos e KB's instalados este problema não ocorreu, ambos os executaveis estão na versão 6.2.1000.1608 e o serviço do AX esta iniciado e sem nenhum problema.

Em resumo, caso encontre o erro um dos erros abaixo verifique a versão dos executaveis e efetue os testes que fiz, talvez isso resolva seu problema momentaneamente até que a verdadeira razão do problema seja encontrada e solucionada, já que não podemos deixar os executaveis em versões diferentes!

Erro 01:
 "Object Server 01:  Fatal SQL condition during login. Error message: "The internal time zone version number stored in the database is higher than the version supported by the kernel (4/3). Use a newer Microsoft Dynamics AX kernel."

 Erro 02:
"The Microsoft Dynamics AX Object Server 6.2$01-dbAX service terminated with the following service-specific error:
Cannot create another system semaphore."

Espero que este post seja util!

Até a proxima!

sexta-feira, 7 de junho de 2013

AX Server Team

Pessoal, segue abaixo o link para a pagina do time de AX.

Nesta pagina vocês terão acesso a varias dicas interessantes dos desenvolvedores do AX na Microsoft.

Incluam em seus favoritos!

Dynamics AX Server Team

segunda-feira, 20 de maio de 2013

Aos profissionais de Dynamics.

A reportagem abaixo é interessante, de fato vemos que estes dados se aplicam a profissionais que vem de fora, mas para nós, os "produtos nacionais", a realidade infelizmente é outra... uma pena não sermos valorizados...


http://www.networkworld.com/news/2013/032613-microsoft-dynamics-268111.html

segunda-feira, 13 de maio de 2013

Como identificar KB's aplicados no AX2012 R2.

Quando precisávamos verificar se um determinado KB já estava ou não instalado no AX2009 nós utilizamos a classe SysHotFixManifest e pronto.

No AX2012 esta classe não existe mais, e agora? Como identificar quais os KB's já aplicados ao AX2012?

Faça o seguinte:

 Abra o AX2012 e acesse a AOT. Após acessar a AOT clique no menu de ajuda e depois clique em Sobre o Dynamics AX, veja a imagem abaixo:
Ao clicar na opção "Mostrar modelos instalados" você verá os KB's já instalados no AX2012 R2.




Espero que a dica seja útil!!


terça-feira, 30 de abril de 2013

Dicas para Sizing do Dynamics AX.

Pessoal, publico este artigo afim de discutir com vocês quais os melhores caminhos para se gerar um documento de Sizing o mais correto possível. Espero que o conteúdo abaixo agregue conhecimento a vocês e que, a partir deste, muitas dicas sejam feitas afim de que eu possa entender e aprender como vocês trabalham para criar o Sizing para seus clientes!

Desta forma acredito que teremos um resultado final útil a todos nós!

Creio que o primeiro passo para criarmos um sizing conciso, que faça sentido frente ao cliente e que o faça se sentir seguro do investimento a ser feito, nós precisamos conhecer a arquitetura do Dynamics AX. Não conhecer estes pontos prejudicará o resultado final do sizing.
Sugiro então a leitura dos links abaixo:

http://go.microsoft.com/fwlink/?LinkId=286895
http://go.microsoft.com/fwlink/?LinkId=286896

Após a leitura acima, podemos dizer que o AX2012 trabalha com uma arquitetura de 03 camadas (Three-Tier Architecture). Esta arquitetura separa os componentes de Banco de Dados, Aplicação e Client, que são os 03 componentes básicos para a instalação do Dynamics AX.

O SQL Server fica na camada de banco de dados e armazena os dados da aplicação em tabelas.

A aplicação (AOS) fica na camada de mesmo nome, e é responsável por executar as logicas contidas nos objetos da aplicação, tais como métodos de tabelas e classes.

A ultima camada é o Client, responsável por exibir os objetos da aplicação tais como formulários e relatórios.

Outros componentes como Workflow, BI, Enterprise Portal, AIF e Help Server precisam ser avaliados e levados em consideração.

Tendo o conhecimento da arquitetura do Dynamics AX e de seus componentes, o responsável pela criação do sizing deverá questionar o cliente até entender por completo suas necessidades e caracteristicas para somente após poder criar este documento de sizing.

Algumas perguntas que devem ser feitas:

Qual o volume máximo de transações esperados por hora durante o horário maior utilização do AX?
Toda a arquitetura de sizing do Dynamics AX deve ser desenhada para suportar o maior numero possível de transações por hora no dia de maior movimento da empresa.
Todas as transações abaixo, mas não somente elas, devem ser consideradas:

  • Linhas Ordens de Venda
  • Linhas de Ordem de Compra
  • Linhas de Ordens de Produção
Qual é quantidade de registros no arquivo de dados?
Este dado é de extrema importância, obtendo esta informação poderemos estimar o tamanho inicial do banco de dados do Dynamics AX, e com isso dimensionar corretamento o disco correto para o servidor de banco de dados.

Quais módulos serão utilizados no Dynamics AX?
Obter esta informação nos permite determinar a quantidade ideal de servidores, tendo em vista que cada modulo aumenta a quantidade de transações no AX.

Haverá integração do AX com sistemas terceiros?
Entender as necessidades de integração do AX com programas terceiros é importante na construção do sizing. Algumas perguntas podem ajudar a determinar os requisitos de hardware para uma correta integração com o Dynamics AX:
  • Qual sistema será integrado ao Microsoft Dynamics AX?
  • Qual o método de transporte a ser utilizado?
    • O método de transporte ajudará a definir quantos servidores serão necessários para a integração. Por exemplo, a utilização do sistema de arquivos para um sistema externo talvez exija a utilização de um servidor de FTP. Ou a utilização do AIF vai exigir a utilização de um servidor de IIS.
  • O método de comunicação deverá ser Síncrono ou Assíncrono?
    • Se documentos precisam ser enviados ou recebidos em uma determinada ordem a comunicação síncrona será exigida para que um documento não seja enviado até que o primeiro não seja recebido por completo.
Customizações, desenvolvimentos, serão necessários?
Determinar se customizações serão necessárias ajudará a definir como elas serão implementadas. Vejam este link para entender do que estou falando!

Quantos usuários utilizarão o Microsoft Dynamics AX?
Saber quantos usuários utilizarão o sistema e como eles o acessarão nos ajudará a definir a quantidade correta de servidores de AOS. Também é importante saber se o Enterprise Portal será utilizado e quantas integrações existirão.

O Dynamics AX será acessado de fora da empresa?
Não é recomendado utilizar o Dynamics AX sem a utilização de programas específicos para publicação de aplicações tais como o Remote Desktop Services. Em caso de necessidade de acesso externo, mais servidores serão necessários, e caso existe a necessidade de alta disponibilidade do acesso a este recurso, a quantidade necessária de servidores aumenta.

Obs: Se a latência na rede for maior do que 50ms o uso do Remote Desktop services é aconselhavel.

O Enterprise Portal será utilizado? De que forma?
O Enterprise Portal é utilizado para a exibição do Role Center para o Dynamics AX Client e pode ser utilizado para o acesso a recursos via navegador, Internet Explorer. Analisar a utilização do Enterprise Portal e a necessidade ou não de alta disponibilidade deste recursos é importante.

Haverão muitos trabalhos em lotes?
Dependendo da quantidade de trabalhos em lotes, servidores dedicados serão necessários. também precisamos avaliar qual a disponibilidade requerida para os servidores de lotes do AX. Pode ser necessário a criação de um cluster de AOS para os trabalhos em lotes.

A empresa precisa de um cluster de AOS dedicado?
O Microsoft Dynamics AX permite a criação de cluster de AOS para o balanceamento de carga e alta disponibilidade deste serviço. Para mais informações sobre servidores de Load Balance para AOs consultem este link.

Quantos ambientes serão utilizados na implementação do AX?
Em uma implementação padrão é comum utilizarmos 03 ambientes, Desenvolvimento, Homologação e Produção. Contudo, outros ambientes podem ser uteis e ajudam a evitar problemas. Ambientes como os descritos abaixo podem ser disponibilizados para a implementação caso aprovado pelo cliente.

Treinamento - Ambiente dedicado a treinamento dos usuários. Este é um ambiente simples e limpo, sem customizações ou dados. Este ambiente também é útil para identificar problemas e como o ambiente trabalha de forma nativa.

Pré-Produção - Este é um ambiente idêntico ao ambiente de produção, utilizado para a validação de customizações antes de estar serem migradas em definitivo para a produção. Este também pode servir como um ambiente de testes para identificar problemas em customizações aplicadas em produção de forma errada.

A empresa necessita de alta disponibilidade dos serviços de IIS?
Sabemos que o serviço de IIS é utilizado por vários componentes do AX tais como Web Services, Enterprise Portal e Help Server. Caso a empresa necessite de alta disponibilidade para qualquer destes componentes o numero de servidores aumentará.

A alta disponibilidade de banco de dados é necessária?
Havendo a necessidade de alta disponibilidade de qualquer um dos itens acima, obviamente também será necessário configurar a alta disponibilidade dos serviços de banco de dados! Desta forma deveremos configurar corretamente a quantidade e configuração do hardware para banco de dados. Para mais detalhes sobre alta disponibilidade de SQL Server consultem este link.

Qual o nível de Disaster Recovery exigido pelo cliente?
Todas as implementações do Dynamics AX deveriam incluir um plano de Disaster Recovery. No caso de falha de qualquer dos componentes do Dynamics AX precisamos ser capazes de recuperar as informações e disponibilizar o sistema o quanto antes. O Clustes de SQL Server nos ajuda a ter mais segurança em relação ao banco de dados, mas algumas outras perguntas devem ser feitas:

  • Que tecnologia será utilizada na criação do plano de Disaster Recovery?
  • Qual o intervalo aceitável de perda de dados?
  • Quanto o tempo aceitável para a disponibilização do sistema?
  • Onde serão disponibilizados os dados de backup? Onde será o Disaster Recovery Site?
    • Este local deverá sempre ser fora da infra estrutura da empresa de forma a evitar problemas físicos e desastres naturais! 
Este link nos dará mais detalhes sobre o assunto acima!

Qual a estrategia de backup a ser utilizada?
A estrategia de backup deve incluir qual o melhor tipo de backup (Full, Diferencial ou Transaction Log), a frequência do backup e onde os arquivos de backup serão armazenados. Logicamente a estrategia deve envolver o processo de restore deste backup em um ambiente de testes afim de validar a integridade dos backups. Analise também o espaço em disco necessário para um backup full e se a compressão de arquivo será utilizada nas rotinas de backup. Outras dicas podem ser encontradas neste link.

Para nos ajudar a construir o sizing ideal existem alguns Guidelines que podem nos ajudar. Atenção a este ponto pois cada sizing varia de acordo com as necessidades de cada cliente, os guidelines indicados aqui servem somente como um parâmetro inicial e devem ser considerados como tal.

Database Server Sizing Guidelines
O sizing para o banco de dados do Microsoft Dynamics AX deverá ser baseado no volume de transações concorrentes. É mais importante entender a quantidade e carga das transações do que saber a quantidade de usuários concorrentes.
O guideline para banco de dados inclui o seguinte:

O servidor deverá ser dedicado ao banco de dados do Dynamics AX.

CPU - O servidor deverá possuir um núcleo de processador para cada 4 ou 12 mil transações por hora, com um minimo de 04 núcleos. Por exemplo, uma empresa que insere 48mil transações por hora deverá possuir um servidor com 04 a 12 núcleos de processador.

Memoria - Para cada núcleo de processador é necessário ter de 02 a 04GB RAM. Portanto, em um servidor com 08 núcleos precisaríamos de um minimo de 16GB RAM ou máximo de 32GB.

Storage - Arquivos de dados, logs e tempdb devem ser armazenados em RAID 10. Logicamente o disco deverá possuir espaço o suficiente para suportar o volume de dados do AX.

Application Object Server (AOS) Sizing Guidelines
Este guideline deverá ser utilizado como ponto de partida, mas outros elementos como módulos a serem utilizados, integrações e customizações devem ser levadas em considerações na geração do sizing final.

Assim como o servidor de banco de dados, o AOS Server deve ser configurado tendo como base o volume de transações, logicamente a quantidade de usuários deverá ser levada em consideração.

CPU - O servidor deverá possuir um núcleo de processador para cada 4 ou 12 mil transações por hora. Um núcleo também deverá existir para cada 25/100 usuários concorrentes.
Memoria - 04GB ou 08GB RAM devem ser alocados para cada AOS.

Obs: Uma alternativa é criar servidores de AOS com 04 núcleos de processador e 08GB RAM e adicionar mais servidores de AOS a cada 48mil transações por hora ou a cada 250 usuários concorrentes.

Batch Server - Servidores de AOS utilizados como servidores de lotes devem possuir de 01 a 04 threads alocados para cada núcleo.

Enterprise Portal Sizing Guidelines

CPU - O servidor de Enterprise Portal deverá possuir de 2 a 16 núcleos dependendo do numero de usuários e complexidade das transações. Normalmente 01 núcleo para cada 120 usuários deve ser adicionado.

Memoria - 02GB RAM devem ser alocados para cada núcleo de processador.

Terminal Server Sizing Guidelines
Ao criar o sizing para este serviço é necessário, logicamente, considerar a quantidade de usuários que vão utilizar este serviço para determinar a configuração do servidor. Este servidor possivelmente terá aplicativos como o Microsoft Office e outros e por esta razão a configuração do servidor sofrerá alterações.

CPU - Um minimo de 02 núcleos devem ser alocados para servidores de RDS.

Memoria - Um minimo de 04GB RAM devem ser alocados para este servidor. Deverão ser alocados 200MB para cada usuário a que vai acessar este servidor.

Rede - Caso a latência da rede local seja maior do que 50ms ou seja necessário efetuar o acesso ao AX de fora da rede é indicada a utilização do RDS.

Benchmarks
Para ajudar a construir sizing ideal é indicado a utilização dos documentos de benchmark gerados pela Microsoft. Estes documentos podem ser adquiridos através deste link. A leitura destes documentos é importante!

Espero que este post gere uma discussão saudável e que o final dela seja a melhor pratica para a geração do sizing para o Microsoft Dynamics AX.

Este post foi baseado em diversas documentações da Microsoft, ao encontrar falhas no post como erros de português ou mesmo informações incorretas ficarei grato se me corrigirem! Erros acontecem!

Este post será constantemente atualizado visando melhorar o conteúdo e também meu entendimento sobre os assuntos aqui escritos.

"Este post foi criado baseado em diversas documentações da Microsoft, mas apesar disso este post reflete apenas a minha opinião de forma que a empresa Microsoft nada tem a ver com o que escrevi aqui."

sexta-feira, 26 de abril de 2013

Dynamics AX2012 - Compilação.

Olá pessoal, recentemente houve uma "discussão" muito boa referente a copilação do AX2012 no forum de AX da Microsoft. Sugiro que acompanhem a discussão e aproveitem para contribuir com suas experiencias neste tema.

A discussão no forum gerou um post extremamente valioso no blog do Joris de Gruyter. Com a autorização do Joris eu traduzo este post para o nosso idioma!

"
Tenho certeza que a maioria de vocês sabem, tempos de compilação no Dynamics AX 2012 são uma preocupação conforme mais funcionalidades vão sendo adicionadas ao AX. Especialmente em nossos ambientes de testes, que são máquinas (não otimizadoas) virtuais, estamos falando de cerca de 3 horas para AX 2012 RTM / FPK e cerca de 5 horas para R2. Houveram discussões sobre este assunto no Forum Microsoft Dynamics AX, e parece haver grandes diferenças nas experiências de tempos de compilação. Depois de muita discussão com outras pessoas sobre os tema, e chats com as pessoas da Microsoft, eu acho que está bem claro em quais áreas é preciso se concentrar para otimizar os tempos de compilação.

 1) O compilador AX foi originalmente construído quando nem se falava em multi-core. Assim, como resultado, você já deve ter notado que uma compilação utiliza apenas um thread. Com a tendência atual de mais núcleos, mas a uma velocidade mais baixa de clock, uma máquina "mais velha" (tipo de CPU) pode possivelmente ter um melhor desempenho do que uma nova, ou um Desktop pode ser melhor do que um servidor dedicado.
2) A comunicação entre AX e SQL é crítica. A comunicação com o Model Store é crítica ( O AOS recebe o código fonte a partir do Model Store, compila, e coloca de volta os binários no Model Store).
3) O Model Store está no SQL, portanto o SQL tem que executar de forma otimizada.


Para este fim, eu me propus a construir uma das bases de código do nosso cliente (AX 2012 RTM CU3, sem Feature Pack) em uma máquina de compilação "experimental". Esta base de código vem tomando uma média de tempo de compilação de 3 a 3,2 horas a cada vez em nossa AOS virtual conectado a um SQL físico.

A nova configuração? Laptop Dell Latitude E6520 

* Core i7-2760QM CPU @ 2.4GHz, 4 Cores, 8 Logical Processors
* 8 GB memory
* High performance SSD (Samsung 840 Pro), 256GB
* Windows Server 2012, SQL 2012, AX 2012 RTM CU4


Além do hardware (velocidade de clock de 2,4 GHz - o número de núcleos não importa, SSD para maximizar o rendimento SQL), os elementos fundamentais da nossa configuração foram colocar o AOS e o servidor SQL nessa mesma máquina e desabilitar TCP / IP  nos protocolos de servidor do  SQL para que ele use o Shared Memory.

A diferença no tempo de compilação é impressionante. Na verdade, eu executei várias vezes, porque eu pensei que tinha feito algo errado. No entanto, uma vez que este é UM um sistema automatizado usando o TFS, eu sei que os passos, os códigos e tudo o resto são exatamente os mesms, por definição.




Old Build Server

New Build Server
Remove old models
00:00:27

00:00:03
Start AOS
00:01:26

00:00:25
Synchronize (remove old artifacts from DB)
00:06:52

00:05:57
Import XPOs from TFS
00:13:17

00:03:55
Import VS Projects
00:00:29

00:00:11
Import Labels
00:00:22

00:00:08
Synchronize (with new data model)
00:05:42

00:01:55
X++ Compile
02:29:36

00:41:28
CIL Generation
00:13:41

00:05:29
Stop AOS
00:00:10

00:00:03
Export Built Model
00:00:42

00:00:12
Total Build Time
03:14:43

01:00:59

Então, sim, o tempo de compilação caiu para 41 minutos! Agora eu preciso de uma outra máquina para a compilação do R2 :-) vou postar os tempos de compilação do R2 assim que conseguir!


Os dizeres acima foram traduzidos do seguinte link:
http://daxmusings.codecrib.com/2013/04/dynamics-ax-2012-compile-times.html

Todos os creditos do post acima vão para Joris de Gruyter!

Em resumo pessoal, para quem não acompanha o  Forum Dynamics AX, passe a acompanhar, muitas dicas e discussões interessantes estão acontecendo por lá.

Neste caso em especifico, a discução iniciada por Tommy Skaue, que gerou o post acima, pode ser acompanhada aqui.

As dicas em todo este post são de grande utilidade, acredito que nos ajudarão muito nas proximas implementações e atualizações do AX2012!

Muito obrigado ao Joris por me permitir traduzir este post e ao tommy por ter iniciado este assutno no forum!