segunda-feira, 31 de agosto de 2009

TechEd 2009 - Arquivos da sessão DBP402

Olá pessoal, tudo bem?
Depois de muita correira nas últimas semanas, por conta do TechEd e alguns projetos que eu estou tocando, volto ao blog para deixar - como prometi - os scripts e PPT utilizados na sessão (DBP402) Dicas e truques - Torne suas queries mais rápidas e eficientes.

Baixe o conteúdo aqui.
ou


Para quem não viu neste blog ou não estava no evento, nesse ano eu fiz duas sessões, uma sobre SQL Server Integration Services e outra sobre tuning e melhores práticas do SQL Server. As duas sessões estavam bastante cheias, abusei de demos (gosto disso!) e acho que o pessoal gostou, eu pelo menos me diverti muito, pena não ter mais uma 1:30h de palestra para dar tempo de ver tudo que eu preparo a mais (vai que dá tempo, né?)...

Amanhã publico o PPT da outra sessão e os arquivos de demo da bendita virão na forma de screencasts, pois quem assistiu viu que a coisa é divertida. Fiquem ligados.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

segunda-feira, 10 de agosto de 2009

SQL Server 2008 R2 August CTP!!

Chegou (e bem rápido)!
Está disponível o SQL Server 2008 R2 August CTP para assinantes do MSDN e TechNet. Já estou baixando a minha cópia.

Mais detalhes sobre o anúncio estão aqui: http://blogs.technet.com/dataplatforminsider/archive/2009/08/10/download-sql-server-2008-r2-august-ctp-today.aspx

Quer ir side-by-side com sua instalação atual do 2008? Veja aqui: http://msdn.microsoft.com/en-us/library/ee210714%28SQL.105%29.aspx

Mais coisa para estudar...

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Ltda
E-mail: luciano.moreira@srnimbus.com.br

quinta-feira, 6 de agosto de 2009

SSRS no terceiro encontro do grupo SQLServerDF

Bom dia Pessoal, na próxima semana teremos o terceiro encontro do grupo SQLServerDF, dessa vez falando sobre o SQL Server Reporting Services. Aqui está o convite, também encontrado em http://sqlserverdf.sqlpass.org.

==========================================================

Data: dia 12 de Agosto de 2009, quarta-feira.
Hora: entre 19:00 e 21:30
Local: Auditório do CEFTRU, na UnB (ao lado do Cespe).
Agenda:

- SQL Server Reporting Services - (2hs) com João Paulo Barbosa
- Detabe técnico.

Descrição da sessão: essa é uma apresentação introdutória sobre o SSRS, onde temos como objetivo: entender a arquitetura do SQL Server Reporting Services, como ele se integra com a plataforma Microsoft, RDL, como criar relatórios usando o SSRS, quais são as opções de entrega e gerenciamento dos relatórios, Report Builder e Report Models, Backup/Restore e monitoração do ambiente.

Sobre o João Paulo Barbosa

Profissional com 12 anos de experiência em TI. Experiência em várias linguagens e tecnologias de desenvolvimento de sistemas e forte base de conhecimento de tecnologias de infra-estrutura como bancos de dados e redes de computadores. Possui as seguintes certificações:

Microsoft Certified Professional Developer (MCPD): Enterprise Application Developer (.Net 2.0)
Microsoft Certified Technology Specialist (MCTS) (.Net 2.0)
Microsoft Certified Solution Developer (MCSD) (.Net)
Microsoft Certified Application Developer (MCAD) (.Net)
Microsoft Certified Professional (MCP)
Sun Certified Programmer for the Java 2 Platform 1.4

Após essa apresentação introdutória, poderemos evoluir em outras sessões para analisarmos aspectos mais avançados do SSRS e abrir espaço para discussão sobre o assunto.

Se você não sabe como chegar ao CEFTRU, utilize o mapa fornecido por um de nossos colaboradores: http://maps.google.com.br/maps?f=d&source=s_d&saddr=Central+%40-15.793379,-47.882592&daddr=Unb&geocode=FR0DD_8doF4l_Q%3BFVRTD_8dN54l_Q&hl=pt-BR&mra=pr&sll=-15.772782,-47.867496&sspn=0.010531,0.01929&ie=UTF8&t=h&z=16.



Animou e vai participar? Entre no grupo de discussão http://groups.google.com/group/sqlserverdf, faça o seu cadastro e participe com a gente, debatendo sobre diversos tópicos do SQL Server.



[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Ltda
E-mail: luciano.moreira@srnimbus.com.br

terça-feira, 4 de agosto de 2009

Whitepaper: Plan Caching in SQL Server 2008

Saiu a atualização do EXCELENTE paper sobre plan caching para o SQL Server 2008. Para quem leu o 2000 e 2005, continua sendo uma boa leitura, para quem não leu, é obrigação ler.

Plan Caching in SQL Server 2008 (http://msdn.microsoft.com/en-us/library/ee343986.aspx)

Boa leitura.

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Ltda
E-mail: luciano.moreira@srnimbus.com.br

Troubleshooting Word e PowerPoint 2007 - ntdll.dll Exception c0000374

Com o tempo você vai ficando mais safo com algumas coisas...
Recentemente o Word e PowerPoint pararam de funcionar no meu notebook, era só abrir o distinto e CRASH! Depois de achar que era algum problema do Win7 ou um update com defeito (sempre tentamos culpar a Microsoft) eu resolvi lagar de ser usuário final e pensar como um desenvolvedor (já ia reinstalar o Office = solução padrão para atendimento de suporte primeiro nível - ARGH!).

Em primeiro lugar eu tentei me lembrar de quando o problema tinha começado a acontecer, mas minha memória fraca não conseguiu relacionar nenhum evento ao início do problema, então tive que partir para outra abordagem...

Fui lá no Event Viewer e vi alguns erros do Word, apontando para o módulo ntdll.dll. Será mesmo o SO me atrapalhando aqui? Continuei minha pesquisa e vi em alguns fóruns problemas relacionados a add-ins, o que me parecia mais provável. Porém como eu listo os add-ins instalados se eu não consigo abrir o Word? O help do Office me mostra como fazer isso com o aplicativo aberto, o que não era o meu caso. Bosta. Olhei o que eu tinha instalado através do Program and Features, mas não achei nada que me parecesse a causa raiz do problema.

Pegando o gancho de uma thread fui até o Control Panel e analisei os erros registrados em "Action Center > Problem Details". Eu nunca tinha entrado aqui, muita informação detalhada dos erros que foram registrados pelo Windows. Melhor até que as informações registradas no Event Viewer, vale a pena conferir. Porém ainda não foi suficiente para me ajudar...

Já sem paciência, apelei, fui atrás do mini-dump (torcendo para que ele fosse gerado). E onde ele fica armazenado? Sei lá. Nesse ponto nem google, bing, yahoo, ninguém me ajudou. Então o jeito foi usar a pesquisa atrás de arquivos gerados no dia de hoje e com extensão *.mdmp. Foi aí que encontrei um infeliz no path: C:\Users\\AppData\Local\Microsoft\Windows\WER\ReportArchive\xxxxxxxxxxxxx.

Bom, WER deve significar Windows Error Reporting. Olhando na pasta você consegui ver uma série de diretórios, como este aqui: AppCrash_WINWORD.EXE_8eff709241d432b140264320415857eabe98afc_114cf43d. Dentro dele infelizmente eu não encontrei nenhum mini-dump, somente o arquivo Report.wer que contém o seguinte:

Version=1
EventType=APPCRASH
EventTime=128935915994653877
ReportType=2
Consent=1
UploadTime=128938579482027367
ReportIdentifier=8d4694e0-7e7b-11de-9515-00125a5afadf
IntegratorReportIdentifier=8d4694df-7e7b-11de-9515-00125a5afadf
Response.BucketId=1327931979
Response.BucketTable=1
Response.type=4
Sig[0].Name=Application Name
Sig[0].Value=WINWORD.EXE
Sig[1].Name=Application Version
Sig[1].Value=12.0.6504.5000
Sig[2].Name=Application Timestamp
Sig[2].Value=49e7f5b6
Sig[3].Name=Fault Module Name
Sig[3].Value=StackHash_53ed
Sig[4].Name=Fault Module Version
Sig[4].Value=6.1.7100.0
Sig[5].Name=Fault Module Timestamp
Sig[5].Value=49eea66e
Sig[6].Name=Exception Code
Sig[6].Value=c0000374
Sig[7].Name=Exception Offset
Sig[7].Value=000c2cd3
DynamicSig[1].Name=OS Version
DynamicSig[1].Value=6.1.7100.2.0.0.256.1
DynamicSig[2].Name=Locale ID
DynamicSig[2].Value=1033
DynamicSig[22].Name=Additional Information 1
DynamicSig[22].Value=53ed
DynamicSig[23].Name=Additional Information 2
DynamicSig[23].Value=53ed4033ea40180f8f410d0cd405d663
DynamicSig[24].Name=Additional Information 3
DynamicSig[24].Value=4707
DynamicSig[25].Name=Additional Information 4
DynamicSig[25].Value=4707150de8f1d59e1fe285ed73ff0945
UI[2]=C:\Program Files\Microsoft Office\Office12\WINWORD.EXE
UI[3]=Microsoft Office Word has stopped working
UI[4]=Windows can check online for a solution to the problem the next time you go online and try to recover your information.
UI[5]=Check online for a solution and close the program
UI[6]=Check online for a solution later
UI[7]=Close the program
LoadedModule[0]=C:\Program Files\Microsoft Office\Office12\WINWORD.EXE
LoadedModule[1]=C:\Windows\SYSTEM32\ntdll.dll
LoadedModule[2]=C:\Windows\system32\kernel32.dll
LoadedModule[3]=C:\Windows\system32\KERNELBASE.dll
LoadedModule[4]=C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4918_none_d089094c442eb5ff\MSVCR80.dll
LoadedModule[5]=C:\Windows\system32\msvcrt.dll
LoadedModule[6]=C:\Windows\system32\apphelp.dll
LoadedModule[7]=C:\Windows\AppPatch\AcSpecfc.DLL
LoadedModule[8]=C:\Windows\system32\SspiCli.dll
LoadedModule[9]=C:\Windows\system32\RPCRT4.dll
LoadedModule[10]=C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7100.19_none_fadd78f501c74761\COMCTL32.dll
LoadedModule[11]=C:\Windows\system32\ADVAPI32.dll
LoadedModule[12]=C:\Windows\SYSTEM32\sechost.dll
LoadedModule[13]=C:\Windows\system32\GDI32.dll
LoadedModule[14]=C:\Windows\system32\USER32.dll
LoadedModule[15]=C:\Windows\system32\LPK.dll
LoadedModule[16]=C:\Windows\system32\USP10.dll
LoadedModule[17]=C:\Windows\system32\mscms.dll
LoadedModule[18]=C:\Windows\system32\USERENV.dll
LoadedModule[19]=C:\Windows\system32\profapi.dll
LoadedModule[20]=C:\Windows\system32\SHLWAPI.dll
LoadedModule[21]=C:\Windows\system32\ole32.dll
LoadedModule[22]=C:\Windows\system32\SHELL32.dll
LoadedModule[23]=C:\Windows\system32\WINMM.dll
LoadedModule[24]=C:\Windows\system32\DDRAW.dll
LoadedModule[25]=C:\Windows\system32\DCIMAN32.dll
LoadedModule[26]=C:\Windows\system32\SETUPAPI.dll
LoadedModule[27]=C:\Windows\system32\CFGMGR32.dll
LoadedModule[28]=C:\Windows\system32\OLEAUT32.dll
LoadedModule[29]=C:\Windows\system32\DEVOBJ.dll
LoadedModule[30]=C:\Windows\system32\dwmapi.dll
LoadedModule[31]=C:\Windows\system32\MPR.dll
LoadedModule[32]=C:\Windows\system32\COMDLG32.dll
LoadedModule[33]=C:\Windows\system32\IMM32.dll
LoadedModule[34]=C:\Windows\system32\MSCTF.dll
LoadedModule[35]=C:\Windows\system32\WS2_32.dll
LoadedModule[36]=C:\Windows\system32\NSI.dll
LoadedModule[37]=C:\Windows\system32\msi.dll
LoadedModule[38]=C:\Program Files\Microsoft Office\Office12\wwlib.dll
LoadedModule[39]=C:\Program Files\Microsoft Office\Office12\oart.dll
LoadedModule[40]=C:\Program Files\Common Files\Microsoft Shared\office12\mso.dll
LoadedModule[41]=C:\Program Files\Microsoft Office\Office12\1033\wwintl.dll
LoadedModule[42]=C:\Windows\system32\uxtheme.dll
LoadedModule[43]=C:\Program Files\Common Files\Microsoft Shared\OFFICE12\MSPTLS.DLL
LoadedModule[44]=C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7100.19_none_b6a32c7c247ee542\Comctl32.dll
LoadedModule[45]=C:\Program Files\Common Files\Microsoft Shared\OFFICE12\MSORES.DLL
LoadedModule[46]=C:\Program Files\Common Files\Microsoft Shared\office12\1033\MSOINTL.DLL
LoadedModule[47]=C:\Windows\system32\mscoree.dll
LoadedModule[48]=C:\Windows\Microsoft.NET\Framework\v4.0.20506\mscoreei.dll
LoadedModule[49]=C:\Windows\system32\MSVCR100.dll
LoadedModule[50]=C:\Windows\system32\VERSION.DLL
LoadedModule[51]=C:\Windows\system32\CRYPTBASE.dll
LoadedModule[52]=C:\Windows\system32\Winspool.DRV
LoadedModule[53]=C:\Windows\system32\spool\DRIVERS\W32X86\3\opxfjqiu.dll
LoadedModule[54]=C:\Windows\system32\spool\drivers\w32x86\3\opxfjjdm.dll
LoadedModule[55]=C:\Windows\system32\spool\drivers\w32x86\3\opxfjqir.xrs
State[0].Key=Transport.DoneStage1
State[0].Value=1
State[1].Key=DataRequest
State[1].Value=iData=1/nDumpFile=//Upload//iCab//9AFAA9EED6854B7197F60E80A0DF0380.cab/nDumpServer=Watson103.Watson.microsoft.com/nResponseServer=Watson103.Watson.microsoft.com/nResponseURL=//dw//StageFour.asp?iBucket=1327931979&szCab=9AFAA9EED6854B7197F60E80A0DF0380.cab&MID=E8DD56F3-834A-4D11-B0A0-84D72F5A70AD/nAnalysisServer=oca.microsoft.com/nAnalysisURL=//user//analyze.oca?iBucket=1327931979&iBucketTable=1&EventTypeName=AppCrash32&P1=WINWORD.EXE&P2=12.0.6504.5000&P3=49e7f5b6&P4=StackHash_53ed&P5=6.1.7100.0&P6=49eea66e&P7=c0000374&P8=000c2cd3&OS=6.1.7100.2.00010100.0.0.1.0&MID=E8DD56F3-834A-4D11-B0A0-84D72F5A70AD/nMemoryDump=1/nBucket=1327931979/nBucketTable=1/nResponse=1/n
State[2].Key=Headless.2ndLevelConsentNeeded
State[2].Value=1
FriendlyEventName=Stopped working
ConsentKey=APPCRASH
AppName=Microsoft Office Word
AppPath=C:\Program Files\Microsoft Office\Office12\WINWORD.EXE

WTF?! Que nada, foi esse camarada que me ajudou!
Olhando a lista de módulos carregados você consegue ver que o último na listagem é o LoadedModule[55]=C:\Windows\system32\spool\drivers\w32x86\3\opxfjqir.xrs

Supondo que os módulos sejam carregados em ordem, existe uma chance de que o último carregado esteja causando o problema que "crasha" o aplicativo. Vendo esse registro, eu lembrei imediatamente que havia instalado na última quarta uma nova impressora enquanto estava em um cliente.
Calmamente desinstalei a impressora e voilá, tudo voltou a funcionar perfeitamente!

O que quero deixar aqui como lição:

1 - Uma abordagem estruturada e passo a passo para resolução de problemas, sempre ajuda.
2 - Se eu tivesse lembrado o que eu havia instalado na máquina, seria BEM simples descobrir o problema => entreviste o seu cliente antes de sair caçando o problema, pode ser que com um bate-papo você consiga refinar o escopo do seu trobleshooting.
3- Antes de culpar a MS e xingar o "Bill-primo-do-Woldemort-Gates", analise o seu cenário e pare de falar besteira. Muitos problemas são de terceiros e culpamos a pessoa/empresa errada.
4 - Se alguém estiver te pedindo para reinstalar o software sem nenhuma explicação plausível, existe uma grande chance dele estar mais perdido que você. :-)

[]s
Luciano Caixeta Moreira - {Luti}
Chief Innovation Officer
Sr. Nimbus Ltda
E-mail: luciano.moreira@srnimbus.com.br