terça-feira, 22 de setembro de 2009

Magic UniPaaS Enterprise Broker X IIS 6 no Windows Server 2003

A pouco tempo migrei um serviço Web que utiliza o Magic UniPaaS Enterprise Broker no IIS, que estava rodando sobre um Windows XP para um servidor Windows Server 2003.

A partir daí começaram a surgir problemas sérios de performance no acesso de alguns recursos do Site que acessavam o serviço do Broker. Depois de inúmeras tentativas e análise de diversas possibilidades de problema, como link, recursos locais, etc., consegui identificar o problema.

O módulo ISAPI disponibilizado pelo Magic UniPaaS Enterprise Broker, um arquivo chamado mgrqispi.dll aparentemente não está completamente migrado para o IIS 6. Ele é que estava causando o problema de performance. Para resolver o problema precisei habilitar um recurso de compatibilidade com o IIS5. A partir daí tudo ficou muito rápido.

Abaixo segue detalhes do caminho para ativar esta configuração dentro do console de Administração do IIS:
E aqui o flag que precisa ser marcado para resolver o problema, destacado em azul:

Após marcar esta opção é preciso reiniciar o serviço do IIS para que a configuração tenha efeito.

quinta-feira, 17 de setembro de 2009

[ERP CIGAM] - Comparando configurações da Base Oficial com a Base de Testes

Muitas vezes precisamos ter certeza de que as configurações da base de testes esteja idênticas às da base oficial. Para fazer esta conferência criei este script abaixo:

select p.sequencia, p.descricao,
p.dado_alpha,t.dado_alpha,
p.dado_numeric,t.dado_numeric,
p.dado_logico,t.dado_logico,
p.dado_data,t.dado_data,

p.dado_valor,t.dado_valor
from cigam.gecfg p,
cigam_teste.gecfg t

where p.sequencia=t.sequencia

and (p.dado_alpha <> t.dado_alpha

or p.dado_data <> t.dado_data
or p.dado_logico <> t.dad
o_logico
or p.dado_valor <> t.dado_valor

or p.dado_numeric <> t.dado_numeric)
order by p.sequencia;


O resultado do script, caso existam divergências de configuração será semalhante a este:


Caso não haja divergência o resultado será esse:


Obs: Para rodar este script é necessário que o usuário tenha permissões de fazer SELECT tanto na tabela GECFG da base de Produção quanto na de Testes. Para o exemplo acima usei o usuário SYS, que tem permissão de DBA para rodar o select.

sexta-feira, 10 de julho de 2009

Enviando artigos por e-mail para o Blogger.com com Mail2Blogger

Dando uma revisada nas configurações do meu Blog aqui no Blogger.com encontrei um recurso interessante que resolvi testar. Na verdade estou justamente agora realizando o teste com este post.
Trata-se do recurso de envio de publicações através de uma nova mensagem criada a partir do seu cliente de e-mail favorito. No meu caso o 'Mozilla Thunderbird". O legal desse recurso é que não é necessário realizar nenhum tipo de configuração no cliente de e-mail, mas somente habilitar o recurso nas configurações do Blog e escolher uma chave de segurança para evitar que qualquer um faça os envios.
Para habilitar o recurso fiz o seguinte:
  • Acessei as configurações do meu blog;
  • Abri a guia "E-mail e celular";
  • Em Opções de postagem escolhi uma chave complementar do e-mail, como na figura abaixo;
  • Por segurança achei melhor gerar um rascunho de publicação para eu revisar antes de enviar, ao invés de publicar diretamente;
  • E por fim estou criando este post para avaliação do recurso.

O e-mail ficou desse jeito...

Porém no momento de abrir o rascunho...

Uma surpresa, a imagem não apareceu...
Por fim precisei adicionar a imagem novamente, no mais ficou legal a formatação. Possivelmente funcionaria se tivesse antes feito upload da imagem em um serviço externo e apontasse apenas um link da imagem. Mas aí daria mais trabalho.
Além disso não foi possível via e-mail informar os marcadores da postagem, mas como marquei para chegar como rascunho ao invés de publicar diretamente deixo para colocar depois.
Mesmo com os problemas relatados considero útil o recurso, até para gerar um esboço inicial para posteriores ajustes.

quarta-feira, 8 de julho de 2009

Atualizando o PDI, da versão 3.1 rc-1 para 3.2

O procedimento para atualização de versão do Pentaho Data Integration é bastante simples.
Abaixo descrevo os procedimentos que utilizei...

- Ao tentar conectar no repositório do PDI com a nova versão recém baixada recebo a mensagem abaixo, informando que a versão do repositório é 3.0 e precisa ser 3.2. Ainda na mensagem recebo a sugestão de exportar o repositório de projetos para XML, de modo a ter um backup e posteriormente seguir os passos para upgrade.
- Como gero um backup diário automático do meu repositório, que descrevi aqui no blog, pulei esta parte e fui diretamente para o processo de upgrade.
- Este processo consiste basicamente em clicar no botão "Editar", ao lado do nome do Repositório, entre os botões "Novo" e "Apaga";
- Vai abrir uma nova janela onde é possível visualizar o botão "Create or Upgrade", basta clicar nele para iniciar o processo de upgrade.- Deve pedir para confirmar a senha do usuário Admin para conectar ao repositório;
- Ainda, antes da efetiva execução, sou questionado se desejo avaliar o script de atualização. Aqui respondo que sim, mas não é obrigatório;
- Como respondi sim à pergunta anterior a próxima janela aberta me exibe os procedimentos que serão executados no Repositório para atualização. Dou uma rápida olhada e confirmo no botão "Execute" no rodapé da janela;
- Após a conclusão do processo de upgrade é exibida a tela abaixo informando sobre as alterações. Aqui basta confirmar no botão "OK".

Com os passos detalhados acima estou agora com a versão 3.2 do PDI.
As novidades da versão estão aqui. Não houveram grandes mudanças em relação a 3.1, mas como eu estava utilizando uma release candidate, compensa o upgrade, principalmente pela correção de possíveis bugs.

Recuperando Datafile(s) Danificado(s)

Ao nos depararmos com o erro acima podemos seguir os procedimentos detalhados mais abaixo para recuperar o datafile danificado:

  • Conectamos no Servidor onde o Oracle está instalado;
  • Acessamos o sqlplus como usuário sys;
  • Paramos o banco;
  • Subimos a instância do banco somente em modo “Mount” (não aberto);
  • Rodamos o comando de recuperação sobre o arquivo informado no erro;
  • Abrimos o banco (modo Open);
  • Alteramos o datafile para modo online;
  • Liberamos o Oracle para utilização.
Exemplo prático dos passos acima:
SQLPLUS SYS/ORACLE AS SYSDBA;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
RECOVER DATAFILE 'E:\ORACLE\ORADATA\ORCL\CIGAM_DATA01.DBF';
ALTER DATABASE OPEN;
ALTER DATABASE DATAFILE 'E:\ORACLE\ORADATA\ORCL\CIGAM_DATA01.DBF' ONLINE;
Observações:
  • Funciona somente com ARCHIVE LOGs habilitados no banco;
  • Estes passos são para datafiles de dados (CIGAM_DATA, USERS), não para datafiles do sistema (SYSTEM.DBF, UNDO.DBF), nem para tempfiles (TEMP.DBF);
  • Caso o banco não esteja com ARCHIVE LOGs habilitado o único recurso possível é voltar backup.
  • Comando para verificar se Oracle está em modo ARCHIVE ou não: SELECT LOG_MODE FROM V$DATABASE;