Pregunta

Tengo un proyecto próximo en el que necesitaré conectar nuestro sitio web (PHP5/Apache 1.3/OpenBSD 4.1) a nuestro sistema back-end que se ejecuta en un iSeries con OS400 V5R3 para poder acceder a algunas tablas almacenadas allí.He investigado un poco, pero me encuentro con algunos obstáculos.

Por lo que he visto, las extensiones DB2 y el software DB2 de IBM solo se ejecutan en Linux.Intenté compilar las extensiones con todo el software de IBM e incluso probé su extensión ibm_db2 precompilada sin suerte.IBM solo admite Linux, así que activé la emulación de Linux en el kernel, pero eso no pareció ayudar en nada.

Si alguien se ha encontrado con que todo se ejecute de forma nativa en OpenBSD, sería genial, pero lo que creo que tendré que hacer es configurar un segundo servidor que ejecute CentOS con DB2 instalado (muy probablemente a través de ZendCore para IBM, ya que parece hacer todo). esto para mí) y el controlador para poder configurar un pequeño servidor de transacciones en el que puedo publicar y obtener una representación JSON de los datos de DB2 que necesito.

¿La segunda opción parece excesiva o alguien más tiene alguna idea mejor?

¿Fue útil?

Solución

¿Has mirado cómo conectarte al servidor usando unixODBC?Si no recuerdo mal, tiene soporte para IBM DB2 y compila en OpenBSD.Verificar http://www.php.net/odbc para obtener más información sobre el lado PHP.

Si no puede hacer que eso funcione, la opción de configurar un servicio web en un servidor Linux puede ser todo lo que pueda hacer.

Otros consejos

En lugar de configurar un segundo cuadro, ¿por qué no examina el Conector PHP para iSeries?Mis chicos de mainframe dijeron que era muy fácil de configurar en nuestro iSeries aquí.

Escribimos un servidor simple en PHP que carga modelos de datos a partir de datos de DB2, los serializa y los devuelve a la persona que llama.Este enfoque significa que solo otra aplicación PHP puede consumir el servicio, pero es mucho más rápido en ambos extremos simplemente serializar el objeto y enviarlo por la tubería.

Aquí hay un PDF de IBM sobre el tema: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

Segundo @John Downey, obtuve conectividad para trabajar con PHP en un AS/400 con UnixODBC.

Verifique su phpinfo() para ver si unixODBC está disponible en él.No tuve que compilarlo en SLES 10.

Parece que un servicio web será la respuesta para mí.En una caja de producción, preferiría no tener que compilar y mantener mi propia instalación especial de PHP, ya que es necesario compilar el soporte ODBC, según la documentación de PHP.

Es casi seguro que un servicio web es el camino a seguir.Estoy seguro de que ya ha pensado en esto, pero como está usando PHP en ambos lados, puede atajar un poco las cosas usando serialize() para generar sus datos de respuesta en lugar de crear un documento XML adecuado.Es menos flexible a largo plazo, pero probablemente le permitirá ponerse en marcha más rápidamente.

De hecho, un servicio web parece una excelente manera de resolver el problema.Una forma de evitar tener un sistema operativo completamente separado sería escribir el servicio web en Java encima de las herramientas AS400 para Java (que son bastante buenas, por cierto).Eso al menos también debería permitirle ejecutar su capa de servicio en el cuadro OpenBSD.

También puede conectarse directamente utilizando un controlador ODBC estándar.La versión de IBM generalmente te ofrece más funciones, como poder llamar a programas y cosas así.Si sólo necesita SQL y procedimientos almacenados, ODBC debería funcionar.

¿Por qué no utilizar PDO desde PHP?Tengo que adivinar aquí ya que no pude encontrar una lista pública de todos los puertos disponibles para OpenBSD, pero sí hay un puerto para FreeBSD, NetBSD, etc.tal vez tú también tengas suerte.

(Supongo que aunque OpenBSD enlaza con el manual del portero de FreeBSD, Puertos frescos ¿No es aplicable a su sistema?)

Si PDO no está disponible y espero que utilices puertos, según el siguiente enlace hay php5-ODBC disponible:

Entonces, suponiendo que administre su sistema a través de puertos, ahí están sus sugerencias.

¡Espero que ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top