Midnightjapan

Author Archive

Android 4.2~4.4ダウンロード障害の対応

by jun on 8月.19, 2017, under Android, Android, Java, Programing

今回のお仕事は障害対応でサーバーサイドJavaのサポート開発をしていて簡単で奥の深い問題を知ることができたのでナレッジとして。
タイトルの通りあまりJavaの話は関係ありません。

案件としてはAndroid4.2~4.4の端末でダウンロードできないシステムがありこれを解消したいという内容。
予算の都合か、さらに古いAndroid4.1.1端末で検証することになりました。

結構単純なプログラムでリクエストに応じた画像をダウンロードさせてあげるというもの。
ContentType(“application/octet-stream”)と設定されています。

検証してみました。

Android4.1.1には標準ブラウザが入っています。これがChromeかどうかが問題です。
調べたところ、標準ブラウザがChromeであるかどうかはディストリビューションにより違います。
そこでChromeと両方入れて検証しました。

標準ブラウザ → ダウンロード > 0 byte > 開けない
Chrome    → ダウンロード> ギャラリーに入らない > 開けない > FileExplorerをいれる > 見れる!ギャラリーに登録で成功・・・

本当だ。
しかも一般ユーザーにFileExplorerいれてなんてことはさせられない・・・・

冒頭で書いたとおり、画像なのに指定なしのContentType(“application/octet-stream”)がそもそもおかしいのではという動きであったため、ここを直して検証してみました。

ContentType(“image/jpeg”) に変更!

標準ブラウザ → ダウンロード > 0 byte > 開けない
Chrome    → ダウンロード> ギャラリーに入る > 開けた!

標準ブラウザは本来ディストリビューション側で組み込んだもので、Chromeなどと同じようにアップデートする必要があるのですが、たぶんお構いなしなんでしょうね。
それにソースとしても、古いのでサポートできません!でいいのかもしれませんが、以前は10年以上使えるPC相手だったのが、2年するとサポート完了のスマホ相手にすると日本の美学がなくなっていくように思いました。

ついでにAndroid 4.2~4.4の機種についても調べました。

機種名 標準ブラウザ その他搭載ブラウザ
Nexus 10、Nexus 7(2013)、Nexus 4、Nexus 5(EM01L) 、SH-01G、SH-02G、KYV31、402SH Chrome なし
SO-01F Chrome (smallブラウザ)
Galaxy SC-04E、SC-01F、SC-02F、 SC-04F、SCL22、SCL23など Sブラウザ Chrome
Fujitsu Arrows F-01F、Xperia SO-03F、LG G-Flex LGL23、Xperia SOL25、DIGNO R 202K、AQUOS PHONE 303SHなど Androidブラウザ Chrome
Aquos ZETA SH-04F、Fujitsu Arrows F-05F、Aquos 304SH、Xperia SO-01G、京セラ Torque G01 KYY24、LG isai LGV31など Androidブラウザ Chrome

赤字の部分が問題のようです。Chrome標準に統一してくれてもいいようなものですが、日本のメーカーが多いのも釈然としません。

簡単そうで奥の深い話題でした。

コメントなし more...

FileMaker ExecuteSQL デバッグ方法

by jun on 8月.09, 2017, under FileMaker

ファイルメーカーのExecuteSQLは実行に失敗すると「?」しか返ってきません。

そのためデバグしながら、何が問題なのかさっぱりわからず、使うの嫌になってきます。

頭にきてネットを探していると、FileMaker Advanced 限定ですが下記の記事を発見。

カスタム関数をつかってデバッグすれば、エラーをみることができます。

これで実用レベルになるでしょう!すばらしい発見、私にはこんなアイデアでてきません。

とても参考になりました。感謝。

ExecuteSQL関数の隠されたエラーメッセージを表示する

http://notonlyfilemaker.com/2015/01/error-messages-in-the-executesql/

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

FileMaker ExecuteSQL できることできないこと

by jun on 7月.22, 2017, under FileMaker

ファイルメーカーの開発をしていると、本当に情報が少ないので小さなことでひっかかることが多い。今回はそんな迷える子羊を少しでも減らすために記録として掲載する。

ExecuteSQL その名のとおり、SQLを実行してくれる。FM12から実装されている機能。

SQLを実行してくれるは間違えで、SQLでFMを操作できるが正しいかと思う。さらにExecuteSQLはSELECTのみ実行が可能。

なんでこんなものが必要かというと、ファイルメーカーの弱点は良くも悪くもリレーションシップを定義しないと何もできない。

レイアウトの配置ですら、どうリレーションシップで関連しているのかも意識して作成が必要です。

ExecuteSQLはそういったことを意識することなく、画面を切り替える必要もなくデータを取得することができます。

ユーザーレビューでは数百万件の結果を取得するようなSQLクエリには不向きですが、スクリプトでちょっとした値を取得するとかにはとても便利です。

ファイルメーカーでは出来そうで出来ない複雑なグループ化やソートもSQLでは結構複雑なものを簡単に取得することができます。

日本人の場合、日本語のファイル名、テーブル名、フィールド名などが使われているため、ダブルクォート「”」でかこってあげる必要があるが、テキストブロックとしてSQLを記述するため、これをエスケープ「\」(¥じゃなくて、バックスラッシュ)もしてあげないといけないことに注意すれば、あとは素直にSQLとして処理してくれる。

もう一つはテーブルオカレンスにも注意。FROMの対象となるテーブルはテーブル名ではなく、テーブルオカレンスとなることに注意されたし。
ただし、SELECTやWHEREなどはダイレクトにフィールド名だけ指定すればいい。

テーブル名はデータベースの管理画面でテーブルに表示さているもの。

テーブルオカレンスはリレーションシップにマップされた名称です。

以下のデータベースをSQLで呼び出してみたい。

テーブル名:ファイル管理(テーブルオカレンス:ファイル管理マスター)

フィールド:id
フィールド:所属
フィールと:分類

ファイルデータ(テーブルオカレンス:ファイルdata)

フィールド:id
フィールド:ファイル名
フィールド:ファイル属性

ファイル管理マスター::id←リレーション→ファイルdata::id

1)テーブルオカレンス:ファイル管理マスターからすべてのフィールドとレコードを取得する

ExecuteSQL ( "SELECT * FROM \"ファイル管理マスター\"" ; "" ; "" )

2)テーブルオカレンス:ファイル管理マスターから指定のレコード(id=5)を取得する

ExecuteSQL ( "SELECT * FROM \"ファイル管理マスター\" WHERE id=?" ; "" ; "" ; "5" )

3)テーブルオカレンス:ファイルdataをLEFT JOINでファイル管理マスターの所属を取得する

ExecuteSQL ( "SELECT m.所属,d.id,d.ファイル名 FROM \"ファイルdata\" as d LEFT JOIN \"ファイル管理マスター\" as m ON d.id=m.id WHERE id=?" ; "" ; "" ; "5" )

ここからが迷子になるところ。

いろんな結合ができることから、抽出データをソートや結合したいところですが、これらが対応していません。

SELECT * FROM (SELECT * FROM B) のようなFROMに対してのサブクエリーは対応していません!と、思います。何度やってもダメでした。

WHEREやORDER、SELECTにサブクエリは使えましたが・・・残念です。

またやっていていやになってくるのが、正しいと結果がかえり、正しくないと「?」しか返ってきません。

なにがどうわるいのか説明くらいしてくれてもいいような・・・

皆様がどうか迷子になりませんように。

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

FileMaker Cloud 東京リージョンリリース

by jun on 7月.11, 2017, under FileMaker

北米ではリリース済みのFileMaker Cloudがついに東京リージョンでリリースされた。
1)Amazonマーケットプレイスにアクセス

https://aws.amazon.com/marketplace/

2)「filemaker cloud」で検索
3)表示された検索結果からユーザー数を選択し、「For Region」のプルダウンから
「Asia Pacific(Tokyo)」を選択したら東京リージョンでインスタンスを作成することができる。
日本のファイルメーカーのオフィシャルページでも公開されました。
https://www.filemaker.com/jp/company/media/press-releases/releases/2016/filemaker-launches-filemaker-cloud-for-secure-reliable-access-to-custom-apps.html

あわせてFileMaker カンファレンス 2017 の案内までメールで送付された。

来る2017年10月23日~25日 3日間にわたり開催される。

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

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...



何かお探しですか?

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

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