Подключите PHP к IBM i (AS / 400)

У меня есть предстоящий проект, в котором мне нужно будет подключить наш веб-сайт ( PHP5/Apache 1.3/OpenBSD 4.1) к нашей серверной системе, работающей на iSeries с OS400 V5R3, чтобы я мог получить доступ к некоторым таблицам, хранящимся там. Я проверил немного, но наткнулся на некоторые контрольно-пропускные пункты.

Из того, что я видел, расширения DB2 и программное обеспечение DB2 от IBM работают только под Linux. Я попытался скомпилировать расширения со всем программным обеспечением IBM и даже безуспешно попробовал их предварительно скомпилированное расширение ibm_db2. IBM поддерживает только Linux, поэтому я включил эмуляцию Linux в ядре, но это, похоже, ничего не помогло.

Если кто-то сталкивался с тем, чтобы все было нормально работать под OpenBSD, это было бы замечательно, но я думаю, что мне, возможно, придется настроить второй сервер под управлением CentOS с установленной DB2 (скорее всего, через ZendCore для IBM, поскольку, похоже, он все делает это для меня) и драйвера, чтобы я мог настроить небольшой сервер транзакций, на котором я мог бы публиковать сообщения, и получить JSON-представление данных DB2, которые мне нужны.

Второй вариант кажется излишним или у кого-то есть идеи получше?

3.08.2008 14:03:28
8 ОТВЕТОВ
РЕШЕНИЕ

Вы смотрели на подключение к серверу с использованием unixODBC ? Если я правильно помню, он поддерживает IBM DB2 и компилируется в OpenBSD. Проверьте http://www.php.net/odbc для получения дополнительной информации о стороне PHP.

Если вы не можете заставить это работать, возможно, вам подойдет настройка веб-службы на сервере Linux.

18
20.05.2015 00:18:44

Вместо того, чтобы настраивать второй блок, почему бы вам не заглянуть в PHP Connector для iSeries? Ребята из моего мэйнфрейма сказали, что здесь очень легко настроить нашу систему iSeries.

Мы написали простой сервер на PHP, который загружает модели данных из данных DB2, сериализует их и возвращает их вызывающей стороне. Этот подход означает, что только другое приложение PHP может потреблять службу, но с обеих сторон намного быстрее просто сериализовать объект и отправить его по конвейеру.

Вот PDF-файл от IBM на эту тему: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

4
27.08.2008 20:03:12

Во-вторых, @John Downey, я получил возможность работать с PHP на AS / 400 с unixODBC.

Проверьте свой phpinfo (), чтобы увидеть, доступен ли в нем unixODBC. Мне не нужно было скомпилировать его в SLES 10.

2
24.08.2008 23:10:28

Похоже, что веб-сервис будет для меня ответом. В производственной среде я бы предпочел не выполнять компиляцию и поддержку своей собственной специальной установки PHP, так как поддержка ODBC должна быть скомпилирована в соответствии с документацией PHP.

2
9.01.2013 05:46:43

Веб-сервис почти наверняка путь. Я уверен, что вы уже подумали об этом, но, поскольку вы делаете PHP с обеих сторон, вы можете немного ускорить процесс, используя serialize () для построения данных ответов вместо построения правильного XML-документа. В долгосрочной перспективе он менее гибок, но, вероятно, поможет вам быстрее начать работу.

1
19.08.2008 21:51:57

Действительно, веб-сервис кажется отличным способом решения проблемы. Один из способов избежать полностью отдельной ОС для этого - написать веб-сервис на Java поверх инструментов AS400 для Java (что довольно неплохо, кстати). Это должно, по крайней мере, позволить вам запустить сервисный уровень на коробке OpenBSD.

1
25.08.2008 03:20:53

Вы можете подключиться напрямую, используя стандартный драйвер ODBC. Версия IBM обычно дает вам больше возможностей, таких как возможность вызывать программы и тому подобное. Если вам нужен только SQL и хранимые процедуры, ODBC должен работать.

1
23.09.2008 13:42:07

Почему бы не использовать PDO из PHP? Я должен угадать здесь, поскольку я не смог найти общий список всех портов, доступных для OpenBSD, но, поскольку есть порт для FreeBSD, NetBSD и т. Д., Может быть, вам тоже повезло.

(Полагаю, что хотя OpenBSD ссылается на руководство по портеру FreeBSD, Freshports не подходит для вашей системы?)

Если PDO недоступен и я надеюсь, что вы используете порты и по следующей ссылке доступен php5-ODBC:

Итак, если вы управляете своей системой через порты, у вас есть указатели.

Надеюсь, это поможет!

1
1.10.2008 18:16:11