Informix, zope, plone e python...

Essa semana foi corrida. Entre as tarefas que tomaram meu tempo estava fazer o zope/plone, que serve o portal da repartição onde eu trabalho, conversar com o Informix (sim, vocês ouviram bem, Informix! Isso ainda existe...). Enfim, uma tarefa árdua e dura, e que ninguém mais no mundo deve ter feito antes de mim 😉 (exageros a parte, o número de downloads do "adaptor" de informix para o zope estava em míseros 530 quando escrevi esse post).

E como esse é maaaaaais um post técnico e chato, vou aproveitar pra testar o "leia mais" desse diabo de blog...

Nem quero ver que aparência isso vai ter no final!

Durante o curso de zope/plone que tínhamos feito semana passada, o professor falava maravilhas de um adaptor ODBC que seria a salvação da lavoura, a bala de prata e a marreta de Thor, tudo ao mesmo tempo. Pra quem quiser seguir o conselho dele, a ferramenta era o eGenix. Ele se conecta, via ODBC, tanto no windows como no linux, a qualquer porcaria de banco, à maquina de lavar louças e à cafeteira elétrica. Tudo isso por apenas R$ 235.84. Isso mesmo que você ouviu: apenas R$ 235.84... Mas não ligue ainda... Se você comprar esse adaptor ODBC você ainda ganha... Não, não estou aqui pra vender nada... E nem sei se o bicho presta, porque no final, mesmo sendo um preço relativamente barato a se pagar por este tipo de produto, a burrocracia lá da repartição retardaria a compra em pelo menos 6 meses. E até lá já teríamos desistido de usar plone pra qualquer coisa além de servir conteúdo web estático.

Por isso fui atrás de outra solução. E sempre tem uma solução porquinha, que no caso foi o tal adaptor com menos de 500 downloads. E aí vem a luta pra fazer o bichinho rodar...

Primeira tentativa, claro, no windows, onde a vida é sempre mais fácil. Bem, quase sempre...

A grande vantagem do windows é o que o sujeito me disponibiliza um driver já compilado. Basta clicar e deixar a instalação rolar. Isto é... SE você tiver feito a instalação do python do jeito que ele espera. Senão você toma na cabeça um errinho básico de que o path do python não está no registry. ARGH... Tudo bem, baixei o instalador automático para windows do python, que deve ser o python que esse cara esperava usar, modifiquei os scripts do zope pra rodar com esse python, instalei o driver do cara e cruzei os dedos... só para...

Dar tudo errado! Faltava Deus e mundo nessa instalação automática do python. Nada rodava! Sem chances de dar certo. Depois de algum tempo brigando apelei: fui no registry, alterei as chaves em HK_Current_User/Software/Python para apontar pro meu python original (instalado junto com o zope), e reinstalei o driver. Hum... pelo menos aceitou instalar... 🙂 Já era um sinal de que eu estaria no caminho certo. Instalei então o ZInformixDA (o tal adaptor do informix, que dependia desse driver) e mandei rodar o zope. E nada! O zope subiu, mas nada do produto parecer no painel de controle. Desespero pra lá, desespero pra cá, fui no log pra descobrir que o diacho não achava as DLLs do informix.

POXA!!! ninguém tinha me dito que eu tinha de ter um tal cliente do informix instalado! Por isso leitor, se algum dia você aumentar o numero de downloads desse driver para 501, lembre-se: Ele não substitui o driver do informix do windows. Você precisa fuçar o site da IBM, achar e baixar o client sdk do informix, ou algo similar.

Tudo pronto e reinicio o zope. O produto aparece, crio uma nova instância dele, entro usuario e senha e... ERRO -201! Lá vou eu atrás do DBA pra descobrir: não basta instalar, tem de configurar. E pelo que entendi, nem mesmo ele sabe como se configura um driver de informix! Ele catou foi logo um arquivo pronto e importou!

Agora sim! Zope/plone conversando com Informix (pelo menos no windows) direitinho.

A segunda luta foi a do linux. Primeiro passo foi tentar descobrir como conseguir o tal ESQL/C que era necessário para compilar o driver. Afinal uma versão binária para linux era simplesmente impossível: existem apenas 150 milhões de distribuições diferentes, com versões diferentes do kernel e consequentemente APIs de driver diferentes (e tem gente que ainda defende isso... vá saber). De novo nosso DBA trouxa a informação fatídica: nosso suporte tinha vencido e a renovação ficou presa na burrocracia por algum motivo paranormal. Não daria pra baixar o ESQL/C do site da IBM sem o contrato de suporte. E não daria pra compilar o driver sem o ESQL/C.

Tudo bem, fui ao labirinto de Falken procurar, afinal ALGUÉM haveria de ter compilado isso alguma vez na vida pra me fornecer os binários né? Mas acho que ninguém nunca fez isso 🙁 Nenhum binário, nada. Depois de muuuuuita procura, apelei e mandei um email de cortar o coração para o autor do driver, que dizia mais ou menos assim:

Caro autor do driver, eu sou um pobre funcionário público de uma repartição menor de um país de terceiro mundo cujo contrato de suporte com a IBM venceu e por isso não tenho o esql/c. Por favor, não rolava de você me dar uma forcinha e mandar uns binários desse seu driver pra mim não?

Dito isso, voltei pra aula de zope/plone (afinal eu tinha matado quase metade dela já). E fiquei esperando a resposta. CLARO que quando a solução chega, não só chega tarde como chega a cavalo. No final da aula, enquanto eu discutia com o professor sobre a impossibilidade de compra do eGenix, me aparece o nosso administrador da rede que ouviu a conversa atravessada e solta: uai, (sim, ele é mineiro) esse ESQL/C veio junto com o client sdk do informix que eu baixei uma vez!

Não é possível! Não só o tal ESQL/C estava ali debaixo do meu nariz o tempo todo, como eu tinha passado o vexame e a humilhação de contar uma estória triste a apelativa pro autor do driver só pra ele me responder o óbvio? Que era tudo de graça e que era pura estupidez minha? (ele não falou nada disso, foi super educado na resposta e tudo mais, mas eu me senti assim... estúpido...).

Instalado o SDK (que tem mais de 100Mb e demorou horas pra ser baixado, pra eu descobrir que baixei a versão 32bits e o servidor era 64bits, baixar de novo e dessa vez instalar o certo), configurado com o arquivo mágico do DBA, compilado o driver e instalado o produto no zope, tudo rodou às mil maravilhas. E eu perdi apenas e tão somente uma semana com isso 😉

Enfim, fica aqui registrada a experiência, vai que no mundo tem mais algum doido que usa Informix? (E fala português, porque duvido que uma tradução automática desse texto confuso faça algum sentido).

Links:

  1. download do zope/plone.
  2. download do cliente informix.
  3. download do driver python e do adaptor zope para informix.

3 thoughts on “Informix, zope, plone e python...

  1. Alias, software livre é uma maravilha pro serviço público: Como é de graça, não precisa de licitação e o corpo técnico pode ESCOLHER o que for melhor :P. E a gente não cai numas coisas que nem o tal do Informix, que ganhou a licitação "sem querer" e ficamos preso nele pra sempre...

Leave a Reply