Categorias
Java Java EE Programação

Obtenção de grande volume de dados em Jobs

Sempre que é feito um job,uma das preocupações do lado da aplicação é em como não levar todos os registros necessários para a memória. Existem algumas maneiras para se fazer isso, sendo que as duas mais comuns que vejo são queries limitadas e queries paginadas. Além dessas duas formas existe uma terceira que é limitando […]

Categorias
Banco de dados Java Java EE Oracle Programação

High CPU causado pelo método copyRowsAsNeeded do driver do Oracle

Algum tempo atrás me deparei com uma situação onde uma aplicação começava a utilizar muita CPU, o load da máquina física subia demais e o tempo de resposta da aplicação acabava piorando junto com o uso de cpu / load da máquina. Para identificar o que estava causando, colocamos um script na máquina física que […]

Categorias
Banco de dados Java Java EE Programação

Resolvendo “enq: TX – allocate ITL entry” com uma abordagem alternativa

Um dos problemas vistos num banco Oracle com muitos DML’s concorrentes é o evento de espera “enq: TX – allocate ITL entry”. O problema com esse evento é que as sessões fazendo os comandos de alteração nos registros demoram para executar, causando mais espera na aplicação. Existem alguns jeitos de resolver esse evento de espera, […]

Categorias
Banco de dados Programação

Access vs Filter Predicate

A maioria das aplicações desenvolvidas atualmente utilizam um banco de dados relacional para armazenar e recuperar os seus dados. Para que o tempo de resposta e escalabilidade de aplicação não seja prejudicado, é necessário que o banco de dados consiga recuperar as informações necessárias da maneira mais rápida e fácil possível. Os índices em banco […]

Categorias
Banco de dados Java Java EE Programação

Chamadas remotas em contexto transacional de banco de dados

Um dos problemas que vejo acontecendo em diversos sistemas de produção é o pool de conexões com o banco de dados esgotar, através da exception abaixo: Geralmente, a primeira solução proposta é aumentar o pool de conexões. Só que após algum tempo o problema volta a ocorrer novamente. Olhando à partir do banco de dados […]

Categorias
Programação

git svn rebase e fatal: bad object

Ao tentar atualizar um repositório do svn através do git na minha máquina recebi o seguinte erro: Para resolver esse problema entre no diretório .git e rode o seguinte comando: No meu caso o comando acima retornou apenas 1 arquivo: Binary file ./svn/.caches/lookup_svn_merge.db matches Apague o arquivo e rode novamente o comando git svn rebase

Categorias
Linux Programação

Executando um comando para cada linha de um arquivo com bash

Hoje precisei gerar o diff do svn de alguns arquivos cujo nomes estavam armazenados dentro de um arquivo. Para gerar o diff no svn de cada um desses arquivos basta fazer o seguinte: cat arquivos.txt | xargs -I {} svn diff -r 39177:HEAD https://svn/projeto{} > diff.txt Onde o arquivo arquivos.txt contém o nome dos arquivos […]

Categorias
Linux Programação

Excluindo arquivos não versionados no SVN

Para excluir arquivos não versionados no SVN você pode utilizar o seguinte comando: A primeira parte desse comando lista todos os arquivos alterados no SVN (modificados, adicionados, excluídos e não versionados), a segunda parte do comando filtra as linhas que começam com “?” (arquivos não versionados). A terceira parte elimina o “?” e os espaços […]

Categorias
Programação

Repositório Git no Apache2

Algum tempo atrás eu coloquei um repositório Git disponibilizado através do Apache2 + WebDAV utilizando a seguinte configuração do apache: Após algum tempo comecei a receber erros ao tentar fazer o push de muitas alterações. Se eu tentasse realizar vários push’s com erro, uma hora o push funcionava. Fui procurar outras formas de disponibilizar o […]

Categorias
Programação

O Guia de Dez Minutos de diff e patch

O seguinte texto foi traduzido e adaptado de: http://jungels.net/articles/diff-patch-ten-minutes.html Primeira situação: você está tentando compilar um pacote à partir do código fonte e descobre que alguém já o modificou para compilar na sua plataforma. Ele disponibilizou o seu trabalho como um “patch”, mas você não tem certeza de como utilizá-lo. Para utilizá-lo você deve aplicar […]