Сведения о вопросе

krutoi

16:03, 1st July, 2020

Теги

php   database   odbc   db2   ibm-midrange    

Соедините PHP с IBM и (AS/400)

Просмотров: 431   Ответов: 8

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

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

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

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



  Сведения об ответе

ASSembler

18:03, 1st July, 2020

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

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


  Сведения об ответе

ASER

18:03, 1st July, 2020

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

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

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


  Сведения об ответе

baggs

18:03, 1st July, 2020

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


  Сведения об ответе

prince

18:03, 1st July, 2020

Для второго @John Дауни я получил возможность работать с PHP на AS/400 с unixODBC.

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


  Сведения об ответе

ITSME

18:03, 1st July, 2020

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


  Сведения об ответе

DINO

18:03, 1st July, 2020

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


  Сведения об ответе

JUST___

18:03, 1st July, 2020

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

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

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

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

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


  Сведения об ответе

SKY

18:03, 1st July, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться