37

そこに保存されているいくつかのテーブルにアクセスできるように、Webサイト(PHP5/Apache 1.3/OpenBSD 4.1)をOS400V5R3を搭載したiSeriesで実行されているバックエンドシステムに接続する必要がある次のプロジェクトがあります。私はいくつかのチェックを行いましたが、いくつかの障害にぶつかっています。

私が見たところ、IBMのDB2拡張機能とDB2ソフトウェアはLinuxでのみ実行されます。私はIBMのすべてのソフトウェアを使用して拡張機能をコンパイルしようとしましたが、プリコンパイルされたibm_db2拡張機能を試してみましたが運がありませんでした。IBMはLinuxのみをサポートしているので、カーネルでLinuxエミュレーションをオンにしましたが、それは何の役にも立たなかったようです。

誰かがOpenBSDですべてをネイティブに実行することに遭遇した場合、それは素晴らしいことですが、私がしなければならないと思うのは、DB2がインストールされたCentOSを実行する2番目のサーバーをセットアップすることです(ほとんどの場合、ZendCore for IBMを介してすべてを実行するようです)これは私にとって)とドライバーです。これにより、投稿できる小さなトランザクションサーバーをセットアップし、必要なDB2データのJSON表現を取得できます。

2番目のオプションはやり過ぎに見えますか、それとも他の誰かがより良いアイデアを持っていますか?

4

8 に答える 8

18

unixODBCを使用してサーバーに接続することを検討しましたか?私の記憶が正しければ、IBM DB2をサポートしており、OpenBSDでコンパイルできます。PHP側の詳細については、http://www.php.net/odbcを確認してください。

それを機能させることができない場合は、LinuxサーバーでWebサービスをセットアップするオプションがすべて実行できる可能性があります。

于 2008-08-03T14:39:09.710 に答える
4

2 台目のボックスをセットアップするのではなく、iSeries 用の PHP コネクタを調べてみませんか? 私のメインフレーム担当者は、ここで iSeries にセットアップするのは非常に簡単だと言いました。

DB2 データからデータ・モデルをロードし、それらをシリアライズして、呼び出し元に返す単純なサーバーを PHP で作成しました。このアプローチは、別の PHP アプリのみがサービスを使用できることを意味しますが、オブジェクトをシリアル化してパイプに送信するだけで、両端ではるかに高速になります。

この件に関する IBM の PDF は次のとおりです

于 2008-08-27T20:03:12.293 に答える
2

Webサービスが私にとっての答えになるようです。PHPのドキュメントによると、ODBCサポートをコンパイルする必要があるため、本番ボックスでは、PHPの独自の特別なインストールをコンパイルして維持する必要はありません。

于 2008-08-03T21:31:14.353 に答える
2

2 番目の @John Downey に、unixODBC を使用して AS/400 で PHP を使用するための接続を取得しました。

phpinfo() をチェックして、unixODBC が利用可能かどうかを確認してください。SLES 10 でコンパイルする必要はありませんでした。

于 2008-08-24T23:10:28.840 に答える
1

実際、Web サービスはこの問題を解決する優れた方法のように思えます。完全に別の OS を使用しないようにする 1 つの方法は、Java 用の AS400 ツールの上に Web サービスを Java で記述することです (これは非常に優れています)。これにより、少なくとも OpenBSD ボックスでもサービス層を実行できるようになります。

于 2008-08-25T03:20:53.200 に答える
1

Web サービスは、ほぼ間違いなく進むべき道です。これについてはすでに考えたことがあると思いますが、両側で PHP を使用しているため、適切な XML ドキュメントを作成する代わりに、serialize() を使用して応答データを作成することで、作業を少し簡略化できます。長期的には柔軟性が低くなりますが、おそらくより迅速に稼働できるようになります。

于 2008-08-19T21:51:57.950 に答える
1

標準の ODBC ドライバーを使用して直接接続することもできます。IBM バージョンでは通常、プログラムなどを呼び出すことができるなど、より多くの機能が提供されます。SQL とストアド プロシージャのみが必要な場合は、ODBC が機能するはずです。

于 2008-09-23T13:42:07.653 に答える
1

PHP から PDO を使用しないのはなぜですか? OpenBSD で利用可能なすべてのポートの公開リストを見つけることができなかったので、ここで推測する必要がありますが、FreeBSD、NetBSD などのポートがあるため、運が良いかもしれません。

(OpenBSD は FreeBSD の porter's handbook にリンクしていますが、Freshportsはあなたのシステムには適用できないと思いますか?)

PDO が利用できず、ポートを使用することを望んでいるので、次のリンクによると、php5-ODBC が利用可能です。

したがって、ポートを介してシステムを管理すると仮定すると、ポインターがあります。

それが役立つことを願っています!

于 2008-10-01T18:16:11.147 に答える