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.
Copiar / descompactar os arquivos no diretório /topconnect:
# ls /topconnect/
informix multi oracle9 topmonitor topmonitor.ini
Executar o servidor:
# /topconnect/multi/topconnect &
Configuração:
Deverá ser feita remotamente, utilizando o topmonitor (versões para Linux e Windows). Lógico que eu usei o Linux:
Conectando-se ao servidor:
Configurando o banco criado:
Clicar em configurações - Postgres - Novo (colocar como nome do banco criado no postgresql).
Adicionar o nome do usuário e a senha configurada no postgresql.
É uma boa idéia verificar a conectividade através do assistente, basta informar SGBD e nome do banco.
Caso a mensagem dê ok, está tudo pronto, no primeiro teste de conexão o topconnect cria algumas tabelas na base, que ele irá usar. Caso contrário, revise os passos anteriores. O mais importante aqui é verificar se a lib do ODBC está correta, infelizmente não tive sucesso com as libs mais novas, observe qual arquivo está sendo 'reclamado' pelo topconnect no log do mesmo.
[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.
[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
[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.
[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 !
[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.
[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.