Pergunta

Tenho um projeto futuro no qual precisarei conectar nosso site (PHP5/Apache 1.3/OpenBSD 4.1) para nosso sistema back-end rodando em um iSeries com OS400 V5R3 para que eu possa acessar algumas tabelas armazenadas lá.Fiz algumas verificações, mas estou enfrentando alguns obstáculos.

Pelo que vi, as extensões do DB2 e o software DB2 da IBM rodam apenas no Linux.Tentei compilar as extensões com todo o software da IBM e até tentei a extensão ibm_db2 pré-compilada sem sorte.A IBM suporta apenas Linux, então ativei a emulação de Linux no kernel, mas isso não pareceu ajudar em nada.

Se alguém conseguiu fazer com que tudo rodasse nativamente no OpenBSD, isso seria ótimo, mas o que acho que preciso fazer é configurar um segundo servidor rodando CentOS com DB2 instalado (provavelmente via ZendCore para IBM, já que parece fazer tudo isso para mim) e o driver para que eu possa configurar um pequeno servidor de transações no qual possa postar e obter uma representação JSON dos dados do DB2 necessários.

A segunda opção parece um exagero ou alguém tem alguma ideia melhor?

Foi útil?

Solução

Você já viu como se conectar ao servidor usando unixODBC?Se bem me lembro, ele tem suporte para IBM DB2 e compila no OpenBSD.Confira http://www.php.net/odbc para obter mais informações sobre o lado do PHP.

Se você não conseguir fazer isso funcionar, a opção de configurar um serviço web em um servidor Linux pode ser tudo o que você pode fazer.

Outras dicas

Em vez de configurar uma segunda caixa, por que você não dá uma olhada no PHP Connector para iSeries?Meu pessoal de mainframe disse que era muito fácil configurar nosso iSeries aqui.

Escrevemos um servidor simples em PHP que carrega modelos de dados de dados do DB2, os serializa e os retorna ao chamador.Essa abordagem significa que apenas outro aplicativo PHP pode consumir o serviço, mas é muito mais rápido em ambas as extremidades apenas serializar o objeto e enviá-lo pelo canal.

Aqui está um PDF da IBM sobre o assunto: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

Segundo @John Downey, consegui conectividade para trabalhar com PHP em um AS/400 com unixODBC.

Verifique seu phpinfo() para ver se o unixODBC está disponível nele.Não precisei compilá-lo no SLES 10.

Parece que um serviço web será a resposta para mim.Em uma caixa de produção, prefiro não ter que compilar e manter minha própria instalação especial do PHP, já que o suporte ODBC precisa ser compilado, de acordo com a documentação do PHP.

Um serviço web é quase certamente o caminho a percorrer.Tenho certeza que você já pensou nisso, mas como você está fazendo PHP em ambos os lados, você pode atalhos um pouco usando serialize() para construir seus dados de resposta em vez de construir um documento XML adequado.É menos flexível no longo prazo, mas provavelmente fará com que você comece a trabalhar mais rapidamente.

Na verdade, um webservice parece ser uma ótima maneira de resolver o problema.Uma maneira de evitar ter um sistema operacional completamente separado seria escrever o webservice em Java sobre as ferramentas AS400 para Java (que são muito boas, aliás).Isso deve pelo menos permitir que você execute sua camada de serviço na caixa do OpenBSD também.

Você também pode se conectar diretamente usando um driver ODBC padrão.A versão IBM geralmente oferece mais recursos, como poder chamar programas e coisas assim.Se você precisar apenas de SQL e procedimentos armazenados, o ODBC deverá funcionar.

Por que não usar o DOP do PHP?Eu tenho que adivinhar aqui já que não consegui encontrar uma lista pública de todas as portas disponíveis para OpenBSD, mas já que existe uma porta para FreeBSD, NetBSD etc.talvez você tenha sorte também.

(Eu acho que mesmo que o OpenBSD esteja vinculado ao manual do porteiro do FreeBSD, Freshports não é aplicável ao seu sistema?)

Se o PDO não estiver disponível e espero que você use ports e de acordo com o link a seguir existe php5-ODBC disponível:

Então, supondo que você gerencie seu sistema através de portas, aí estão suas dicas.

Espero que ajude!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top