O NeoMatrix Tech está de casa nova!

Você deverá ser redirecionado em 6 segundos. Se não, visite:
http://www.leonelfraga.com/neomatrixtech
e atualize seus favoritos.

Aviso IMPORTANTÍSSIMO!

Aviso aos navegantes:

O NeoMatrix Tech mudou de casa!!!

A partir de agora, acessem pelo novo endereço:

http://www.leonelfraga.com/neomatrixtech

Ué... mas é só o domínio mudou de lugar?

R: Na verdade, não é bem assim hehe. Este domínio que você acessa agora aponta para um blog hospedado no Blogger, enquanto no novo, aponta para um blog na plataforma Wordpress, hospedagem própria, muito mais rápida e com um layout mais agradável de ler ;)

Não vou fechar este domínio igual ao que eu fiz com o NM Light (que já está 100% na nova plataforma). Talvez beeeeeeem depois eu faça isso.

Todos os posts daqui se encontram lá, e novos posts serão colocados somente no novo endereço.
A única coisa que não consegui importar foram os comentários. Mas em breve vai ter um post contando sobre a epopéia que foi migrar o NeoMatrix Tech!

Somente vou fechar a área de comentários daqui. Caso queiram comentar, favor ver o post correspondente no "Novo NeoMatrix Tech" e comentem por lá. É bem melhor! (pena que os permalinks "amigáveis para SEO" não funcionam lá, dá erro 404 e não consigo fazer a configuração funcionar. E olha que eu já vi vários artigos falando desse assunto :( ).

Quem assina o feed, já está lendo o conteúdo do novo NeoMatrix Tech!

sábado, 1 de agosto de 2009

Uma situação não prevista: #FAIL

É praticamente impossível prever TODAS as situações durante o desenvolvimento de um sistema, seja durante a análise, a programação, o teste e demais etapas do ciclo de vida de um programa.

fail_20at_20failing

Estava fazendo um sistema que conversa com um webservice, que eu mesmo desenvolvi, quando me deparo com um resultado um tanto indesejável.

Veja este pequeno trecho de código:

public void atualizaUltimaConsulta(int parametro)
{
	this.executaSQL("update TABELA set DATA_ULT_CONSULTA = current_date, HORA_ULT_CONSULTA = (current_time - 20) where PARAMETRO = " + parametro.ToString(), false);
}

Esta função faz parte de uma rotina de verificação de histórico: o sistema chama o webservice, executa um método que retorna um histórico de alterações e no final confirma o recebimento disparando a rotina atualizaUltimaConsulta, colocando a data e hora atuais no banco de dados, para que a seleção de novos registros de histórico a serem enviados em uma próxima requisição seja sempre os após a última consulta.

Atualizo o banco de dados com um tempo de 20 segundos antes, para que novos registros inseridos durante o processamento sejam incluídos na próxima “rodada” de verificação de histórico.

Até aí nada demais, algo (quase) perfeitamente normal.

Só que…

Era por volta da meia-noite quando fiz o teste desta rotina, e nas execuções posteriores nenhum registro era retornado, embora satisfazessem as condições para que eles sejam retornados.

Po##a, tem registro na tabela e por que nao retorna? É o c@r@lh0 de asa fumegante e voador!

Resolvi checar a tabela onde é gravada a data/hora da última consulta e eis o que eu vejo: A data ele atualizou certinho, como eu executei a rotina de confirmação de consulta depois da meia-noite, ele gravou o dia atual. Porém, no campo de hora, o maledeto me gravou 23:59, por causa da diferença de 20 segundos que retirei da hora atual, ou seja, estes registros só iriam aparecer no dia seguinte :-(

Resumindo: uma #fail de dimensionamento de tipo de dado, pois se ele fosse timestamp ao invés de campos separados isso não teria acontecido…

Mas, em produção, isso nunca aconteceu hehe.

Um abraço!

0 comentários:


Postar um comentário

Para tornar este artigo ainda mais interessante, escreva suas críticas (desde que construtivas e sem ofenças), elogios, sugestões, complementos, dúvidas, etc, etc, etc!!!

Sobre o NeoMatrix Tech

Meu blog para assuntos profissionais, ligado com tecnologia.
Dicas de programação (grande parte de C# e ASP.NET, mas não limitado a essa plataforma :-) ), dicas de utilitários, análises de equipamentos e serviços, resenhas sobre sites que eu visito, relacionados com tecnologia, opinião sobre mercado de trabalho, metodologias de desenvolvimento, comportamento no mundo tecnológico...

NeoMatrix Light

  © Blogger templates ProBlogger Template by Ourblogtemplates.com 2008 - Editado e configurado por Leonel F.

Voltar ao TOPO