Microsiga Protheus com Postgres

Neste primeiro artigo que escrevo, demonstro basicamente como configurar o PostgreSQL com servidor SGBD para o Microsiga Protheus. Testado em Ubuntu Server com 45 usuários.

[ Hits: 79.202 ]

Por: Rogerio Reis em 11/12/2007


Motivação



Durante muito tempo a empresa que trabalho utilizou o ERP Microsiga mantendo os dados no já ultrapassado DBF. Este modelo, além de lento e obsoleto, dificultava o acesso aos dados por aplicações não-microsiga, como o PHP por exemplo.

Neste artigo vou demonstrar como utilizar o excelente SGBD Postgresql para manter os dados num servidor SQL robusto e acessível por uma infinidade de linguagens de programação.

A Microsiga utiliza um gateway chamado topconnect para acessar a base de dados, isso permite que ela consiga comercializar seu produto mais facilmente, já que este gateway se conecta à diversos bancos de dados.

No postgres, o topconnect se conecta utilizando o ODBC, mas isso não foi um empecilho no desempenho, e hoje podemos desfrutar de recursos como acessos (relatórios) aos dados diretamente na base de dados, liberando o servidor protheus para as aplicações exclusivas do sistema.

Deste modo, economizamos considerável investimento ao utilizar um software opensource que na questão desempenho não deixou nada a desejar para os testes com Oracle e MS SQL Server.

    Próxima página

Páginas do artigo
   1. Motivação
   2. Instalação
   3. Configuração
   4. TopConnect
   5. Conectando o servidor ao banco
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Monitorando Banco de Dados Postgres com ZABBIX

HowTo: Como criar Cluster Linux - Ativo/Passivo para Postgres com DRBD, Pacemaker e Corosync

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

PostgreSQL + phpPgAdmin no CentOS 5

Automação comercial livre no Slackware 12

  
Comentários
[1] Comentário enviado por Everson Pires em 12/12/2007 - 09:01h

Nossa cara, muito show esse seu artigo.

Cara,eu trabalho com algumas empresas que usam o microsiga e os servidores proprietários muitas das vezes não licenciado.

Mais, com documentação e testes, fica mais fácil convencer o cliente a mudar pra open source.

Parabéns pela iniciativa e mais pelo material.

Nota 10!

[2] Comentário enviado por rogerio-reis em 12/12/2007 - 10:26h

Obrigado pelo comentário.

Não dá pra usar um sistema pirata e nem sequer testar uma alternativa. Se você precisar de um case, já tem um.
Abraço.

[3] Comentário enviado por edivaldobrito em 30/01/2008 - 14:37h

Me tira uma dúvida, pq vc utilizou encoding SQL_ASCII no banco?

[4] Comentário enviado por rogerio-reis em 30/01/2008 - 14:52h

?comentario=Edivaldo, o padrão é o postgres usar o UTF-8, que à propósito deve ser tornar o padrão para todas as aplicações, no entanto, para nossas necessidades, alguns campos ficaram ilegíveis, pois usavam ISO.

[5] Comentário enviado por edivaldobrito em 14/02/2008 - 12:28h

Qual versão das bibliotecas (lib do ODBC) vc usou, pq toh utilizando postgresl-8.2 e não conecta. se puder me passar os nomes dos pacotes..
Grato.

[6] Comentário enviado por rogerio-reis em 14/05/2008 - 11:40h

Cara, desculpe a demora, nunca mais voltei aqui...
Eu estou usando uma lib antiga (postgresql-odbc), basta procurar na internet que você acha, veja a saída deste comando:

# dpkg -l | grep odbc
ii libiodbc2 3.52.4-5 iODBC Driver Manager
ii libodbc++-dev 0.2.3+0.2.4pre3-2 C++ library for ODBC SQL database access
ii libodbc++4 0.2.3+0.2.4pre3-2 C++ library for ODBC SQL database access
ii odbc-postgresql 08.01.0200-2 ODBC driver for PostgreSQL
ii odbcinst1debian1 2.2.11-13 Support library and helper program for acces
ii postgresql-odbc 7.0.2-3 The ODBC driver needed for accessing a Postg

Abc.,

[7] Comentário enviado por crondi em 08/01/2009 - 16:46h

Cara não a meios de fazer a ODBC funcionar....
Ja tentei de tudo

[8] Comentário enviado por jefflivre em 28/03/2009 - 04:00h

Insatale o unixODBC e crie um link simbólico e no odbc aponte para /usr/lib/libpsqlodbc.so
Link simbolico: /usr/lib/libpsqlodbc.so -> /usr/lib/unixODBC/libodbcpsql.so.2.0.0
Importante: Não use libodbcpsql.so.1, ele faz que algumas coisas não funcionem.
Unico problema que vejo em utilizar Linux é o suporte fraco. Não que eu esteja criticando a Microsiga, mas é uma questão de lógica, os técnicos dos módulos tem muito mais experiencia com Windows. Todos os técnicos, sem excessão me recomendaram M$-SQL. Sendo assim é pequeno o numero de linux rodando nos servers. Sem falar no marketing negativo referente ao postgres, limitado a 10 usuários, isso é piada, um postgres da um banho em um M$-SQL quando se fala em mais de 250 usuarios. Posso estar enganado, mas acho que eles colocaram esse valor porque não souberam configurar o postgresql.conf na parte de número de conexões e memória compartilhada. Sem falar na falta de Stored Procedures. Isso só vai mudar quando aumentar o numero de empresas utilizando o Linux. Se existir um problema a resposta vai demorar um pouco mais. Querem ver um exemplo, la por 2004 ou 2005 alterei o banco da versão 7.1 para 7.4, nessa mudança os desenvolvedores tiraram a função padrão Round. Após a virada de versão tudo ficou perfeito, aí chegou o final do mês, a unica coisa que apresentou problema foi o relatório do balancete. Abri o chamado, esperei por dois dias, como vi que não iria aparecer resposta comecei a correr atrás, criei a função round no banco, mandei a solução para a Microsiga, só 3 semanas depois saiu um comunicado alertando sobre o problema, as vezes coisas do genêro me levam a pensar que sou o unico que usa essa estrutura. Não é um bicho de 7 cabeças, quando implantei o postgres eu não o conhecia. Tem apenas alguns parametros para serem configurados na unha(sem interface gráfica). Mas eu afirmo, uma vez instalado você pode esquecer que ele existe.
Para deixar registrado: Tenho SLES 10 no server Postgres 8.2.6, e clientes XP,Vista,Gentoo,Puppy,OpenSuse. Uso essa estrutura desde 2003. Usem linux. Muiiiiitooo mais estável.
Por um mundo mais livre, Jeferson.

[9] Comentário enviado por gustavoisouza em 26/11/2009 - 16:13h

Olá Rogério.

Primeiramente parabéns pelo artigo e pelo seu tutorial.

Contribuindo para sua matéria, para quem necessitar instalar num server 64bits, eu só consegui resolver, copiando a lib do unixODBC de 32 bits, pois o Topconnect não comunica com a lib de 64bits e dá pau.

Instalei numa VM 32bits o unixODBC e copiei a lib pra dentro da máquina 64bits.

Após esse procedimento, somente criar o link simbólico como o comentado pelo jefflivre.

Atualmente estou em teste com um FC9-64bits com Postgresql 8.3.

Um abraço.

[10] Comentário enviado por carolvasquez29 em 27/11/2009 - 14:59h

Muito boa sua matéria. Já conhecia algumas empresas adeptas ao Linux com o Microsiga, e depois de ler, acho que vou indicar para mais um monte delas. Valeu !

Carol Vasquez
www.Experfite.com

[11] Comentário enviado por fadel_damen em 08/02/2012 - 20:19h

Eu tenho um seridor com postgresql e microsiga protheus 10 com mais de 100 usuarios e tudo corre bem, postgresql 8.4, mas agora quando chega a 130 conexoes o odbc começa a recusar conexões, o meu server possue 24G de memoria ram e o postgresql.conf esta com o max_coneccion em 170 usuarios.

Se alguem tiver alguma ideia para poder ajudar.


sds


[12] Comentário enviado por fadel_damen em 28/02/2012 - 22:18h

para ficar registrado quando trabalhamos com o unixodbc temos a seguinte estrutura unixodbc -- driveodbcparapostgresqldounixodbc -- odbc-postgresql-oficial, logicamente a 1 e segunda parte estao dentro dos driver drivers do unixodbc, porem não sei porque, no codigo fonte do odbc o numero maximo de conexões para o postgresql esta configura para 128 independente do que esta configurado no postgresql.conf por exemplo no unixodbc-2.2.14 temos o arquivo que contem esta constante unixODBC-2.2.14/Drivers/PostgreSQL/psqlodbc.h na linha 56 temos
#define MAX_CONNECTIONS 128 /* conns per environment (arbitrary) */
veja que como comentario diz que e um valor arbritario.
bom e necessario compiar o drive trocando esta constante para um valor que seja suficiente para sua rede eu utilizei 500 conexoes para esta constante e ja estou utilizando o postgresql com aproximadamente 155 conexoes simultantes, sem problemas e com um bom desempenho.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts