Intereting Posts

Подключить 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, которые мне нужны.

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

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

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

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

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

Вот PDF от IBM по теме: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

К второму @ Джону Дауни я подключился к работе с PHP на AS / 400 с помощью unixODBC.

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

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

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

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

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

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

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

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

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

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