Conectar PHP para IBM i (AS / 400)

votos
30

Eu tenho um próximo projeto que eu vou precisar para ligar o nosso website ( PHP5/Apache 1.3/OpenBSD 4.1) para o nosso sistema de back-end rodando em um iSeries com OS400 V5R3 para que eu possa acessar algumas tabelas armazenadas lá. Eu fiz alguns testes ao redor, mas estou correndo em alguns obstáculos.

Pelo que tenho visto as extensões DB2 e software DB2 da IBM só correr em Linux. Eu tentei compilar as extensões com todo o software da IBM e até tentou a sua extensão ibm_db2 pré-compilado sem sorte. IBM só suporta Linux, então eu ligado a emulação Linux no kernel, mas isso não parece ajudar em nada.

Se alguém tem se deparar ficando tudo para rodar nativamente no OpenBSD que seria ótimo, mas o que eu acho que pode ter que fazer é configurar um segundo servidor executando CentOS com DB2 instalada (mais provavelmente através ZendCore para a IBM desde que parece fazer tudo isso para mim) eo motorista para que eu possa configurar um servidor de transações de pequeno porte que eu posso postar contra e obter uma representação JSON de dados DB2 que eu preciso.

Será a segunda opção parece um exagero ou Alguém tem alguma idéia melhor?

Publicado 03/08/2008 em 15:03
fonte usuário
Em outras línguas...                            


8 respostas

votos
16

Você já olhou para 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 mais informações sobre o lado do PHP.

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

Respondeu 03/08/2008 em 15:39
fonte usuário

votos
4

Em vez de uma segunda caixa de configuração, por que você não olhar para o conector PHP para iSeries? Meus de mainframe caras disse que era muito fácil de configurar em nossas iSeries aqui.

Nós escrevemos um servidor simples em PHP que carrega modelos de dados a partir de dados DB2, serializa-los, e os retorna para o chamador. Esta abordagem significa que apenas outro aplicativo PHP pode consumir o serviço, mas é apenas muito mais rápido em ambas as extremidades apenas para serializar o objeto e enviá-lo para dentro do cano.

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

Respondeu 27/08/2008 em 21:03
fonte usuário

votos
2

Para segunda @ John Downey, eu comecei a conectividade para trabalhar com PHP em um AS / 400 com unixODBC.

Verifique se o seu phpinfo () para ver se unixODBC está disponível na mesma. Eu não tinha para compilá-lo em no SLES 10.

Respondeu 25/08/2008 em 00:10
fonte usuário

votos
2

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

Respondeu 03/08/2008 em 22:31
fonte usuário

votos
1

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

(Eu acho que, apesar do OpenBSD links para manual do porteiro do FreeBSD, FreshPorts não é aplicável para o sistema?)

Se DOP não está disponível e desde que eu estou esperando que você usar portas e de acordo com o seguinte link lá é php5-ODBC disponíveis:

Assim, supondo que você gerenciar seu sistema através de portas, há seus ponteiros.

Espero que ajude!

Respondeu 01/10/2008 em 19:16
fonte usuário

votos
1

Você pode se conectar diretamente usando um driver ODBC padrão também. A versão IBM geralmente dá-lhe mais recursos, como ser capaz de chamar programas e coisas assim. Se você só precisa de SQL e procedimentos armazenados, ODBC deve funcionar.

Respondeu 23/09/2008 em 14:42
fonte usuário

votos
1

De fato, um webservice parece ser uma ótima maneira de resolver o problema. Uma maneira de evitar ter um sistema operacional completamente separado para ele seria escrever o webservice em Java no topo das ferramentas AS400 para Java (que são bastante agradável, btw). Isso deve, pelo menos, deixá-lo correr a sua camada de serviço na caixa do OpenBSD também.

Respondeu 25/08/2008 em 04:20
fonte usuário

votos
1

Um serviço web é quase certamente o caminho a percorrer. Tenho certeza que você já tenha pensado nisso, mas desde que você está fazendo PHP em ambos os lados, você pode atalho coisas um pouco usando serialize () para construir seus dados de resposta em vez de construir um documento XML adequada. É menos flexível a longo prazo, mas provavelmente vai chegar até você e correr mais rapidamente.

Respondeu 19/08/2008 em 22:51
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more