安価なシステム町工場的ソフトウェア屋のブログ新潟市で個人でコンピュータ相手にシステム開発をしています。確実、安く、素早くをモットーにやっています。システム開発の時に調べた技術を惜しみなく公開していきます。よろしくない業者についての苦言も為に吐きます。コンピュータにベッタリというのもどうかと思いますが、やはりこれからは、コンピュータのことを知らないよりは知っていたほうが良いと思いますよ。2015年10月31日ノベルティの言い間違いあるイベントの出店者側の言い間違いが面白かったノベルティグッズを配っているので、そういうと思ったのでしょうが、大きい声で「アメニティ」と叫んでました。王様の耳はロバ2015年10月29日ドッグフーディングは大切だよそもそも、ドッグフーディングなんて言葉があるのかしら?自社開発した(ほとんどビジネスパートナーだより)アプリケーションを世の中に出す前に厳しくテストする必要はあると思いますが、自分たちで使いもせずに変なものは出せないといいテストだけし続けるのはどうかと思う。気持ちはわかりますが、今のままでは、永久にリリースすることはできませんよぉ。小さく始めてから育てるでいいじゃないですか?現在は、このブラウザだけ、この端末だけターゲットですという縛りで。プログラミングタブレッドで端末の向きが変わったのを検知するiPadの向きが変わったことこののロジックで検知できます。タブレット2015年10月16日CakePHPでセッションがよく切れてしまうのを回避CakePHPを使ってWebアプリケーションを運用していると特定の条件でセッション切れがよく発生します。(よく発生してはダメです...)ページからリクエストした時にサーバーで処理が終わらないうちに再度、リクエストをするとCakePHP内でセッションが無いことになってエラーになってイました。CakePHPのソースまで追ってみたら、セッションを管理しているファイルをReadした時にそのファイルが無いことになっていてダメだったようです。この時は、セッション内容を持っているファイルをロックすることができなくてエラーになっていたのかと思っていました(いや、もしかするとそうなのかもしれない)そのシステムを使っているお客様からURLの一覧から画面を複数連続で開くとセッションが頻繁に切れるようになったのでなんとかしてほしいという要望というかクレームが上がってきました。再度、速い連続リクエストが原因でセッションが切れる問題を解決する記事が無いかちょっと調査したところ答えがありました。WEB制作所インレットさんのサイトです。対応策に3つのことをする必要があるのですが、(1)と(3)は、対応していたので、(2)の対応をすることにしました。結論からいうと、セッション切れになることもなく、連続表示したページは全て正しく表示されました。1点だけ腑に落ちないところがあります。CakePHPのCore.php内のSessionの設定のろ頃でどこにセッションを作成するかの指定が効いていないようでした。私の環境では、"cake"としているのでCakePHPのセッション用ディレクトリに作成されるはずのところが、Apacheのphp.confで指定されているパス(php_value)で指定しているディレクトリに作成されています。1サーバーで複数のサイトを運用しているのでちょっと気持ち悪いですが、何か案がないか考えて見ようと思います。※もしかすると、php_valueを各サイトのconfに書けば良いのかもしれないです。この処理を追加します。CakePHP2015年10月4日AWSのELBを使っている場合のタイムアウト対応AWSを使ってシステム構築をしています。504のタイムアウトになってしまいました。※実際のところはファイルのアップロードではなく、アップロードしたファイルの処理に時間がかかっています。エラーになる場合は、60秒前に504ステータスが返ってきていました。(504は、Webブラウザからのリクエストを受けたサーバーがされに別のサーバーにリクエストを送信した際に、別のサーバーからの応答が一定時間に返ってこないことを表しています。)今回のシステムの構成は以下のようになっています。[Webサーバ(Apache)]Webサーバのタイムアウト時間は設定していないのでデフォルトの300秒らしいです。60秒以内で504が返ってくるのはおかいいのでApacheではない。60秒」という設定がありました。これを編集し、Apacheと同じ300秒に変更してファイルアップロード処理をしてみたところ正常動作をしました。このあたりの設定(ELBに限らず)とかは、全然やったことがなかったので新しい知識がついたということで大OKとしたいと思います。このあたりをちゃんと考えられるプロの人だったら一瞬でわかったり、あらかじめ長めにしたりするんでしょうね。