Midnightjapan

Tag: ファイルメーカー

Macにファイルメーカーサーバー15.0.3アップデートでWEBサーバー停止!?

by jun on 12月.24, 2016, under FileMaker, Mac OS X

久しぶりに最新ファイルメーカーをセットアップすることになりました。
プラットフォームはMac(MacOS Sierra v10.12.2)です。
ファイルメーカーサーバー15を1台構成でセットアップします。
最初のインストール時は15.0.1でしたので、ファイルメーカー社のホームページからダウンロードして15.0.3をインストールします。
まず最初にファイルメーカーが動いているのでアップデートできないとしつこく文句をいってきます。管理コンソールですべてとめますが、Webサーバーにはスイッチなどありません。もちろんfmsadminコマンドもありません。
仕方がないのでターミナルからプロセス探し出して、プロセスをkillします。

MidnightMac-Pro:~ japan$ ps -ax|grep http
  294 ??         0:00.25 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  306 ??         0:00.74 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  478 ??         0:00.85 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  533 ??         0:00.66 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  619 ??         0:00.38 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  620 ??         0:00.37 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  621 ??         0:00.37 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  701 ??         0:00.01 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  702 ??         0:00.16 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  703 ??         0:00.01 /usr/sbin/httpd -k start -D FILEMAKER -f /Library/FileMaker Server/HTTPServer/conf/httpd.conf
  798 ttys000    0:00.00 grep http
MidnightMac-Pro:~ japan$ sudo kill 294
Password:[応答]
MidnightMac-Pro:~ japan$ ps -ax|grep http
  813 ttys000    0:00.00 grep http

これでバージョンアップできるようになりました。
インストールがおわって管理コンソールにログインするとまたWebサーバーが動きません。

ファイルメーカーサーバー15 WEB サーバー状態

ファイルメーカーサーバー15 WEB サーバー状態

スイッチもないしマニュアルさがしてもコマンドでてないし、しばらくググってダイレクトな情報もなかったのでターミナルで調査することに。
/var/logをみてもファイルメーカーの管理下でやってることなので何も情報ありませんでした。
そこからファイルメーカーサーバーの中を調べてみるとこんなものが。

ls -la /Library/FileMaker\ Server/
drwxrwxr-x   8 fmserver  fmsadmin     272 12 24 09:40 Admin
drwxrwxr-x   7 fmserver  fmsadmin     238 12 24 12:37 CStore
drwxrwxr-x   3 fmserver  fmsadmin     102 12 24 09:39 Common
drwxrwxr-x@ 12 fmserver  fmsadmin     408 12 24 09:40 Data
drwxr-xr-x  10 fmserver  fmsadmin     340 12 24 12:39 Database Server
drwxrwxr-x   9 fmserver  fmsadmin     306 12 24 09:39 Documentation
-rw-r--r--   1 fmserver  fmsadmin  185122  1 25  2016 FMS Acknowledgements.pdf
-rw-r--r--   1 fmserver  fmsadmin  370665  4 13  2016 FMS License.pdf
-rw-r--r--   1 fmserver  fmsadmin  100290 10 27  2015 FMS Read Me (English).pdf
-rw-r--r--   1 fmserver  fmsadmin   75096 11 16  2015 FMS Read Me (French).pdf
-rw-r--r--   1 fmserver  fmsadmin   73750 11 16  2015 FMS Read Me (German).pdf
-rw-r--r--   1 fmserver  fmsadmin   74734 11 16  2015 FMS Read Me (Italian).pdf
-rw-r--r--   1 fmserver  fmsadmin  153224 11 16  2015 FMS Read Me (Japanese).pdf
-rw-r--r--   1 fmserver  fmsadmin   73478 11 16  2015 FMS Read Me (Swedish).pdf
drwxr-xr-x  10 fmserver  fmsadmin     340 12 24 10:02 HTTPServer
drwx--x--x   5 fmserver  fmsadmin     170 12 24 09:41 Library
drwxrwxr-x   8 fmserver  fmsadmin     272 12 24 09:40 Logs
drwxrwxr-x   6 fmserver  fmsadmin     204 12 24 10:10 Web Publishing

HTTPServerなるフォルダーがあります。
このHTTPServerの中にLogsフォルダーがありApacheのログがあります。あたりを引いたのは「httpdctl.err」ここにこのようなエラーがずらっと並んでいました。

httpd: Syntax error on line 476 of /Library/FileMaker Server/HTTPServer/conf/httpd.conf: Could not open configuration file /Library/FileMaker Server/Web Publishing/publishing-engine/php/null/httpd.fmi.conf.php: No such file or directory

というわけで「/Library/FileMaker Server/HTTPServer/conf/httpd.conf」480行目をみてみると476行目に同文がありました。
そこでそんなパス無いよと怒っているパスをたどっていきました。
「/Library/FileMaker Server/Web Publishing/publishing-engine/php/」までは正常ですがnullってたしかになんぞ?と・・・どうもOSのバージョンを取得できずにnullになってしまっているために追加設定がよめないと怒っていたようです。
「/Library/FileMaker Server/Web Publishing/publishing-engine/php/」の中をみてると

drwxrwxr-x  9 fmserver  fmsadmin  306 12 24 09:39 el capitan
drwxrwxr-x@ 9 fmserver  fmsadmin  306 12 24 10:10 sierra
drwxrwxr-x  8 fmserver  fmsadmin  272 12 24 09:39 yosemite

今回セットアップに使用したMacOSのバージョンはMarvericks(10.9)であったためファイルメーカーサーバー15がインストールできませんでした。そこでmacOS el capitan(10.11)を通り越してmacOS sierra(10.12)をインストールしたのが原因だったのかな?と思います。

どう考えてもバグだとは思うのですが、これで「/Library/FileMaker Server/HTTPServer/conf/httpd.conf」480行目をこのように修正します。

Include '/Library/FileMaker Server/Web Publishing/publishing-engine/php/null/httpd.fmi.conf.php'
↓
Include '/Library/FileMaker Server/Web Publishing/publishing-engine/php/sierra/httpd.fmi.conf.php'

これでWEBサーバーを起動してみたいところですが、はて起動は・・・
探したところ以下のそれらしいので適当なオプションそえて実行したら動きましたです。

sudo /Library/FileMaker\ Server/HTTPServer/bin/httpdctl start

これで正常に起動し、FileMaker WebDirect、PHPカスタムWEBも動作しました。
この後、うだうだしながらOSの再起動も実行してから確認したんですが動作していました。
こんなくだらないことに時間がかかる人が世の中から一人でも減りますように・・・・。

ついでにFileMaker WebDirect起動センターにアクセスしてってマニュアルのいたるところに書いてあるんですが、webdirectガイドにしか書いてないので記録まで。

FileMaker WebDirect 起動センター
→ http://< ホスト >/fmi/webd
特定のデータベースにアクセスする場合
→ http://< ホスト >/fmi/webd#< データベース名 >

無事にアクセスできたけどレイアウトつくりかえなきゃダメだなこれ・・・。
あ、そんなわけで・・・メリークリスマス。

コメントなし :, , , more...

ファイルメーカーサーバーで遅いと感じる問題の解消方法

by jun on 7月.06, 2014, under FileMaker

ここ最近、いや最近ずっとなのかな・・・ファイルメーカーシステム速度が低下している。これを解消するためには2つの問題を解消する必要がある。

1)ネットワークのトラフィックにインフラがついていけていない可能性の調査

・VPN接続の帯域が一定ではなく速度が場所時間帯によって差があり、場合によってはファイルメーカーのトラフィックすら支えきれない場合がある
・社内のシステムでもネットワークカメラ・Hangout・GoogleApps(Ajax)などの非同期通信ブロードキャストトラフィックが増えてきている。

2)ファイルメーカーの構造的な欠点

・複雑な構造を大量のデータ表示する機能
・多数のリレーションで構築された機能に存在する構造的問題
・膨大なデータを抽出する売上集計機能

インフラは物理的に解消しなければいけない。
体感以外に数字化する必要があるが、時間にばらつきがあるだけである程度分かったところからは交渉でしか解決しない。
いずれも問題を見える化しなければ解決しない。
作り変えるのは簡単だが、時間もコストもかかる。
現状を生かして改変することができれば最善だが、変化がなければ自己満足でしかない。

ファイルメーカーの機能単位のトラフィックを解析する必要がある。
ネットワーク監視用のプロツールを使って、多少時間をかけて調査することとする。

まずはネットワークキャプチャーで機能が表示されるときになにが要求されているのかわかれば、トラフィック量もかなり把握しやすくなる。

そこで以下のネットワークキャプチャーを使うことにしてみました。
調査結果はまた今度。

■ Wireshark

http://sourceforge.jp/projects/wireshark/

コメントなし :, , , more...

ファイルメーカー 複数選択値のバブルソート実装

by jun on 6月.25, 2014, under FileMaker

久々に技術ネタ

ファイルメーカーではチェックボックスを実装すると、複数選択できます。
繰り返しフィールドでもないのに、どういう値が入っているのか。

答えは選択された値が改行されて入ってるんですね。そうです。GetValueで取得できます。

じゃあ選択順はどうなるかというと、選択された順に開業されます。

チェックを外すと、切り取られるのでいなくなります。わかるかな?

選んだ値が■ 未選択が□だとすると
フィールド選択値:□01 □02 □03 □04 □05 として
01→02→03→04→05→03→03 と選択していくと

結果
01
02
04
05
03

となってしまう。これをバブルソートで

結果
01
02
03
04
05

となるスクリプトを作成した。
このスクリプトだけではどうにもならないが、このソートをスクリプトの変数に割り当てれば
結果は変数に代入される。

Let([
 // フィールド値をパラメータ引数に設定
  $prm=フィールド値;
 // ソート条件をフラグで分岐:昇順=1,降順=0)
  $sor=1;
 // ソートタイプ指定:テキスト比較=1,数値比較=0)
  $typ=1;
 // サブルーチン関数定義
  $lst=$prm;
  $sub="
   Case(
    $i< =1;$top;
      Let([
       $i=$i-1;
       $itm=GetValue($lst;$i);
       $_top=Case($typ;$top;$top*1);
       $_itm=Case($typ;$itm;$itm*1);
       $flg=Case($sor;$_top<$_itm;$_top>$_itm);
       $rtn=Case($flg;List($rtn;$itm);List($rtn;$top));
       $top=Case($flg;$top;$itm)
      ];
      Evaluate($sub)
     )
    )
   ";
 // バブルソート関数定義
 $n=0;
 $res="";
 $fnc="Case(
  $n=ValueCount($prm);$res;
  Let([
   $n=$n+1;
   $i=ValueCount($lst);
   $top=GetValue($lst;$i);
   $rtn=\"\";
   $res=List($res;Evaluate($sub));
   $lst=$rtn
  ];Evaluate($fnc))
 )"
];
 Evaluate($fnc) // バブルソート計算実行
)

さぁ、たまたまこんなことしたかった方は、サンプルを参考に実装してみましょう。

コメントなし :, , , more...

ファイルメーカーの繰り返しフィールドの挙動

by jun on 4月.19, 2010, under FileMaker

ひどいタイトルですね。

これでも私ファイルメーカーの開発を続けて、はや10年になるんですが、へんなところでつまづきました。

ファイルメーカーの繰り返しフィールドです。

これをテキスト表現すると異常にわかりにくいのですが、ファイルメーカー特有の機能のためあまり使わないほうがよい機能です。

繰り返しフィールドとは1フィールドに複数の値が入ります。SQLでいうENUMみたいなものですが、またちょっと違うんですよね。動きも。

フィールド:数量(タイプ:数字/繰り返し×5) 値:5,4,3,2,1 と入っているとします。
フィールド:単価(タイプ:数字/繰り返し×5) 値:100,110,120,130,140 と入っているとします。
フィールド:金額(タイプ:計算(数量×単価)/繰り返し×5) 値:500,440,360,260,140 と導きだされます。

これに消費税を個別で出しなさいなんてことは当たり前のように発生するし
たとえば条件分岐で計算しないなんてこともよくある状態ですが、ファイルメーカーではこれが関数を使わないといけません。

繰り返しフィールドどおしの計算ならば、上記のようにできますがたとえば・・そうですねぇ・・・

単価が固定だったとします。この場合単価の入力欄は1個でいいはずなので単価を繰り返しを使わないようにするとですね・・・

フィールド:数量(タイプ:数字/繰り返し×5) 値:5,4,3,2,1 と入っているとします。
フィールド:単価(タイプ:数字/繰り返し×1 なし) 値:100 と入っているとします。
フィールド:金額(タイプ:計算(数量×単価)/繰り返し×5) 値:500,0,0,0,0 と導きだされます。

そうです、繰り返しフィールドは非繰り返しフィールドとあわせて処理する場合、先頭項目しか処理をしません。

この場合Extend関数を使います。

フィールド:数量(タイプ:数字/繰り返し×5) 値:5,4,3,2,1 と入っているとします。
フィールド:単価(タイプ:数字/繰り返し×1= なし) 値:100 と入っているとします。
フィールド:金額(タイプ:計算(数量×Extend(単価))/繰り返し×5) 値:500,400,300,200,100 と導きだされます。

これで望みどおりです。

しかし、これに条件分岐をいれます。

もし半額優待チケットを利用した全品半額にできるとします。金額フィールドの計算式にIF文が入るとわかりますよね?

当然入力画面の設計上、正規化されているとしたら半額チケット利用のチェックボックスは1つだけにしますよね?もちろん設計によりますが一般論です。

20品買ったら20個チェックつけるのは面倒です。

とすると

フィールド:半額チケット(タイプ:数字 チェク時1入力/繰り返し×1=なし)

を追加して、金額フィールドの計算式は下記のようになります。

IF(半額チケット=1 ; 数量×(Extend(単価)/2) ;数量×Extend(単価))

いけそうですよね?これがいけないんですよ・・・

いやぁ、いまさらながら調べてググって・・・苦労しました。

結論は・・・

IF(Extend(半額チケット)=1 ; 数量×(Extend(単価)/2) ;数量×Extend(単価))

そうです、IF文の評価部分ですら繰り返しにフォーカスするようでして、非繰り返しフィールドはすべてExtend関数でくくらないと繰り返しフィールドとしてもどらないようなんです。

記録しておくようなことでもないきがしますが、私が迷ったので万が一迷ってここにさまよわれたりしたときの記録として残します。

(本当は私の個人的なメモだったりしてw

では、皆さんごきげよう (‾。‾)y-~~

6 コメント :, more...



何かお探しですか?

以下にキーワードを入力してサイト内検索が可能です:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!