「P.011」の編集履歴(バックアップ)一覧はこちら

P.011」(2010/02/18 (木) 10:34:57) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

MGWSIを導入したときの作業メモです。(2010年1月16日 初版作成) * 導入環境 - マシン -- hp の Compaq 6710b (ノートPC)(CPU:Core2Duo T7100)(メモリ:2GB) - OS --アスキームックについてた Ubuntu 9.10 (デスクトップ版) - HTTPサーバ -- Apache 2.2.12 -- PHP 5.2.10 -- 双方とも apt-get で適当に ※注意 最初に apt-get update;apt-get upgrade を実行しておく - MUMPS環境 --GT.M --- 米F.I.S社がフリーで公開しているM言語(MUMPS)のひとつ --- 現状は、商用の Caché(キャシエ) か GT.M しか選択肢はないのかな~ - MUMPSと各環境との仲介(Gateway) -- MGWSI --- 商用のMUMPSは別として、GT.M単体では外部からデータを扱うことができません --- そこで、各実行環境との仲介をしようってのが The M/Gateway Services Integrator (MGWSI) です --- 英 M/Gateway Developments 社が提供しています --- 商用利用でなければフリーで使えるようです(詳しくはホームページを参照ください) * MUMPS - GT.M 導入 ** 導入手順 - アーカイブをダウンロード -- http://sourceforge.net/projects/fis-gtm/ → gtm_V53004A_linux_i686_pro.tar.gz - 展開すればすぐに使えます (バイナリになってます) - 日本語(UTF-8)も使えますが、マルチバイト対応の組込関数が使いたいなら utf8 ディレクトリを使います - 本格的に導入するなら同梱の configure を使うようですが、今回はやってません。 * 使い方 - 環境変数を設定 -- gtm_dist=実行ファイルmumpsのあるディレクトリ -- gtmgbldir=$gtm_dist/mumps.gld -- とりあえず動かすときはこんくらいでOK - データベースファイルをつくる $ mupip MUPIP> create MUPIP> exit - これで mumps.dat が作られます。そこに実際のデータが格納されます。 - あとは通常のMUMPSと同じ感じで使えると思います。 - 同梱の mumps.hlp (英語のテキストファイル) が参考になると思います。 * MGWSI 導入 ** ダウンロード - http://gradvs1.mgateway.com/main/ → mgwsi_lx-x86_95b.tar.gz -- 名前、会社、役職、メールアドレスを入力します。個人なので会社と役職は no にしときました。 -- メールアドレスにライセンスキー(*2)が届きます - これも展開した中身はバイナリなので、そのまま使えます - 同梱の Mgwsi.pdf (英語) を参考にしました ** セットアップ *** MGWSI - 仲介用デーモンプロセス(*1) - mgwsi と同じディレクトリに mgwsi.key を作成 -- 中身はメールで送られてきたライセンスキーです -- [MAIN] の行から [OPTIONS] の下の行までをコピペします - 起動 $ mgwsi - 停止 $ mgwsi stop - nph-mgwsic を cgi-bin ディレクトリにコピーしてブラウザから見たら管理画面?出たけど詳細は未調査 *** MGWSI - MUMPS向けの通信プロセス - GT.M から (*1)とやりとりします - ~/m/gtm/ZMGWSI.RO を GT.M のディレクトリへコピー - 登録 $ mumps -direct GTM> DO ^%RI (Enter) (Enter) ZMGWSI.RO(Enter) (Enter) - 開始 $ mumps -direct GTM> DO START^%ZMGWSI(0) - 停止 $ mumps -direct GTM> DO STOP^%ZMGWSI *** MGWSI - 各環境向けの拡張モジュール - PHP から (*1)とやりとりします ※ここでは PHP 用のモジュール(m_php)を使います -- 他にも m_jsp, m_aspx, m_python, m_ruby, m_apache, m_cgi, m_websphere_mq があるよう - php5210_mgw.so を /usr/lib/php5/20060613+lfs/ 配下へコピー (数字がバージョンに対応してると仮定して) - /etc/php5/conf.d/mgwsi.ini を作成 (たぶん名前はなんでもいいのかな?) extension=php5210_mgw.so - Apache を再起動 -- sudo /etc/init.d/apache2 restart -- phpinfo() で m_php が組み込まれていることを確認します * 動かしてみる <?php // データの格納はこんな感じ m_set('^animal','dog','wanwan'); m_set('^animal','cat','nya-nya-'); m_set('^animal','snake','...'); // データの参照はこんな感じ $animal = 'cat'; echo 'Hey, ' . $animal . ' ! -> ' . m_get('^animal',$animal) . '<br />'; // データの削除はこんな感じ m_kill('^animal','snake'); ?> 上記を GT.M でやってみると… set ^animal("dog")="wanwan" set ^animal("cat")="nya-nya-" set ^animal("snake")="..." set animal="cat" write "Hey, ",animal," ! -> ",^animal(animal),! kill ^animal('snake') - わざとまぎらわしく書きましたが ^animal はデータベースへのアクセス、animal はローカル変数へのアクセスになります - 事前に ^animal を用意する必要はありません - このまま使う分にはコミット等は必要ありません - 全体を削除する場合は kill ^animal のようにします - つまり、データベース(ファイル)とローカル変数の扱いがほとんど同じってことなのです <?php // もちろん n次元配列のアクセスも可能です。 $data = m_get($table,$country,$part,$date,$name); ?> -------------------------------------------------------------------------------------------------- ※ Ruby で使ってみました → [[m_ruby]] ※ Python で使ってみました → [[m_python]] ※ JSP で使ってみました → [[m_jsp]] ※ Apache で使ってみました → [[m_apache]]
MGWSIを導入したときの作業メモです。(2010年1月16日 初版作成) * 導入環境 - マシン -- hp の Compaq 6710b (ノートPC)(CPU:Core2Duo T7100)(メモリ:2GB) - OS --アスキームックについてた Ubuntu 9.10 (デスクトップ版) - HTTPサーバ -- Apache 2.2.12 -- PHP 5.2.10 -- 双方とも apt-get で適当に ※注意 最初に apt-get update;apt-get upgrade を実行しておく - MUMPS環境 --GT.M --- 米F.I.S社がフリーで公開しているM言語(MUMPS)のひとつ --- 現状は、商用の Caché(キャシエ) か GT.M しか選択肢はないのかな~ - MUMPSと各環境との仲介(Gateway) -- MGWSI --- 商用のMUMPSは別として、GT.M単体では外部からデータを扱うことができません --- そこで、各実行環境との仲介をしようってのが The M/Gateway Services Integrator (MGWSI) です --- 英 M/Gateway Developments 社が提供しています --- 商用利用でなければフリーで使えるようです(詳しくはホームページを参照ください) * MUMPS - GT.M 導入 ** 導入手順 - アーカイブをダウンロード -- http://sourceforge.net/projects/fis-gtm/ → gtm_V53004A_linux_i686_pro.tar.gz - 展開すればすぐに使えます (バイナリになってます) - 日本語(UTF-8)も使えますが、マルチバイト対応の組込関数が使いたいなら utf8 ディレクトリを使います - 本格的に導入するなら同梱の configure を使うようですが、今回はやってません。 * 使い方 - 環境変数を設定 -- gtm_dist=実行ファイルmumpsのあるディレクトリ -- gtmgbldir=$gtm_dist/mumps.gld -- とりあえず動かすときはこんくらいでOK - データベースファイルをつくる $ mupip MUPIP> create MUPIP> exit - これで mumps.dat が作られます。そこに実際のデータが格納されます。 - あとは通常のMUMPSと同じ感じで使えると思います。 - 同梱の mumps.hlp (英語のテキストファイル) が参考になると思います。 * MGWSI 導入 ** ダウンロード - http://gradvs1.mgateway.com/main/ → mgwsi_lx-x86_95b.tar.gz -- 名前、会社、役職、メールアドレスを入力します。個人なので会社と役職は no にしときました。 -- メールアドレスにライセンスキー(*2)が届きます - これも展開した中身はバイナリなので、そのまま使えます - 同梱の Mgwsi.pdf (英語) を参考にしました ** セットアップ *** MGWSI - 仲介用デーモンプロセス(*1) - mgwsi と同じディレクトリに mgwsi.key を作成 -- 中身はメールで送られてきたライセンスキーです -- [MAIN] の行から [OPTIONS] の下の行までをコピペします - 起動 $ mgwsi - 停止 $ mgwsi stop - nph-mgwsic を cgi-bin ディレクトリにコピーしてブラウザから見たら管理画面?出たけど詳細は未調査 *** MGWSI - MUMPS向けの通信プロセス - GT.M から (*1)とやりとりします - ~/m/gtm/ZMGWSI.RO を GT.M のディレクトリへコピー - 登録 $ mumps -direct GTM> DO ^%RI (Enter) (Enter) ZMGWSI.RO(Enter) (Enter) - 開始 $ mumps -direct GTM> DO START^%ZMGWSI(0) - 停止 $ mumps -direct GTM> DO STOP^%ZMGWSI *** MGWSI - 各環境向けの拡張モジュール - PHP から (*1)とやりとりします ※ここでは PHP 用のモジュール(m_php)を使います -- 他にも m_jsp, m_aspx, m_python, m_ruby, m_apache, m_cgi, m_websphere_mq があるよう - php5210_mgw.so を /usr/lib/php5/20060613+lfs/ 配下へコピー (数字がバージョンに対応してると仮定して) - /etc/php5/conf.d/mgwsi.ini を作成 (たぶん名前はなんでもいいのかな?) extension=php5210_mgw.so - Apache を再起動 -- sudo /etc/init.d/apache2 restart -- phpinfo() で m_php が組み込まれていることを確認します * 動かしてみる <?php // データの格納はこんな感じ m_set('^animal','dog','wanwan'); m_set('^animal','cat','nya-nya-'); m_set('^animal','snake','...'); // データの参照はこんな感じ $animal = 'cat'; echo 'Hey, ' . $animal . ' ! -> ' . m_get('^animal',$animal) . '<br />'; // データの削除はこんな感じ m_kill('^animal','snake'); ?> 上記を GT.M でやってみると… set ^animal("dog")="wanwan" set ^animal("cat")="nya-nya-" set ^animal("snake")="..." set animal="cat" write "Hey, ",animal," ! -> ",^animal(animal),! kill ^animal('snake') - わざとまぎらわしく書きましたが ^animal はデータベースへのアクセス、animal はローカル変数へのアクセスになります - 事前に ^animal を用意する必要はありません - このまま使う分にはコミット等は必要ありません - 全体を削除する場合は kill ^animal のようにします - つまり、データベース(ファイル)とローカル変数の扱いがほとんど同じってことなのです <?php // もちろん n次元配列のアクセスも可能です。 $data = m_get($table,$country,$part,$date,$name); ?> -------------------------------------------------------------------------------------------------- ※ Ruby で使ってみました → [[m_ruby]] ※ Python で使ってみました → [[m_python]] ※ JSP で使ってみました → [[m_jsp]] ※ Apache で使ってみました → [[m_apache]] ※ m_aspx は Windows のサーバ環境が無いので試せないかなあ ※ m_websphere_mq は、何者かわからないのでパス ※ m_cgi を /usr/lib/cgi-bin/ にコピーしてみたけどエラーになった →時間があったら調べる

表示オプション

横に並べて表示:
変化行の前後のみ表示: