У меня есть предстоящий проект, в котором мне нужно подключить наш веб-сайт (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-сервере - это все, что вы можете сделать.
Вместо установки 2-я коробка, почему don' t Вы изучают Соединитель PHP для iSeries? Мои основные парни сказали, что это было очень легко к установке на нашем iSeries здесь.
Мы написали простой сервер в PHP, который загружает модели данных от данных DB2, преобразовывает в последовательную форму их и возвращает их посетителю. Этот подход означает, что только другое приложение PHP может поглотить обслуживание, но it' s именно так намного более быстрый на обоих концах, чтобы просто преобразовать в последовательную форму объект и послать ему вниз трубу.
Вот PDF от IBM на предмете: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf
Похоже, что веб-служба будет для меня выходом. На рабочем ящике я бы не хотел компилировать и поддерживать свою собственную специальную установку PHP, поскольку поддержка ODBC должна быть скомпилирована, согласно документации PHP.
Второму @John Дауни, I' ve полученная возможность соединения, чтобы работать с PHP на КАК/400 с unixODBC.
Проверьте свой phpinfo (), чтобы видеть, доступен ли unixODBC в нем. Я didn' t должны собрать его в на SLES 10.
Почему бы не использовать PDO от PHP? Я должен предположить здесь, так как я не мог найти общественный список всех портов доступным для OpenBSD, но так как есть порт для FreeBSD, NetBSD и т.д., возможно, Вы становитесь удачливыми также.
(Я предполагаю это даже при том, что OpenBSD связывается с FreeBSD' s porter' s руководство, Freshports не применимо для Вашей системы?)
Если PDO не доступен и так как я надеюсь, что Вы используете порты и согласно следующей ссылке есть php5-ODBC доступный:
Так принятие Вас управляет Вашей системой через порты, есть Ваши указатели.
Надежда, которая помогает!
Веб-сервис - это почти наверняка то, что нужно. Я уверен, что вы уже думали об этом, но поскольку вы используете PHP с обеих сторон, вы можете немного сократить время, используя serialize() для создания данных ответа вместо создания правильного XML-документа. Это менее гибко в долгосрочной перспективе, но, вероятно, позволит вам быстрее приступить к работе.
Действительно, веб-сервис походит на отличный способ решить проблему. Один способ постараться не иметь абсолютно отдельный OS для него состоял бы в том, чтобы написать веб-сервис на Яве сверху инструментов AS400 для Явы (которые довольно хороши, btw). Это должно, по крайней мере, позволить Вам управлять своим сервисным слоем на коробке OpenBSD также.
Вы можете соединить непосредственно использование типичного водителя ODBC также. Версия IBM обычно дает Вам больше особенностей как способность назвать программы и подобные вещи. Если Вам только нужны SQL и хранимые процедуры, ODBC должен работать.