<< simplexml_load_file関数で取り出せな... 質問一覧 フォーム内のチェックボックスの値を取得 >>

  • 0P
レンタルサーバー上のPHPプログラムは複数人同時使用は可能?

AS400等のオフコンで以前開発していましたが
ここ数年は遠ざかっておりました。
PHPで開発する必要が出てきたので
何本かを作りましたが
次の記事を見て、非常に不安になりました。
タイトルは「PHP V5 でマルチタスク動作のアプリケーションを開発する」
http://www.ibm.com/developerworks/jp/opensource/library/os-php-multitask/

この記事の概要が理解できない上に
「レンタルサーバー上のPHPプログラムは複数人同時使用は可能?」
「MySQLは、同時に複数ユザーで同一レコードを更新するのか?」
という疑問まで生まれてきました。

オフコンの時は、何も考えなくてもよかったのですが
レンタルサーバー+PHP+MySQLで
プログラムを開発して公開するには
・PHPのプログラム上で、マルチタスクについて考慮する
・MySQLを利用するには、複数人の同一レコード処理を考慮する
の点については
プログラマーが細かい処理を
ソースコードに記述するのですか?

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。

コメント一覧

並び替え( ツリー順 / 投稿順[降順] / 投稿順[昇順]

Re:レンタルサーバー上のPHPプログラムは複数人同時使用は可能?

>PHPのプログラム上で、マルチタスクについて考慮する

同時に複数が呼び出されることはありますが、別プロセスですのであまり考慮することはありません。例示された記事の方が「特殊」な部類になります(なので記事になっているわけですが)。phpスクリプトでマルチタスクというのは、少なくとも私はやった経験がありません(汗


>MySQLを利用するには、複数人の同一レコード処理を考慮する

これは当然ですね。別プロセスからアクセスするわけですから。普通のアプリケーションと同じです。ただ更新前の表示時点でロックするとロックされたままになりますから(webアプリなので呼び出されるたびに別プロセスなので・・)更新直前のロック付きREADで「前回読み込んだときの更新SEQ(全部の更新ロジックでインクリメントする)と同一か」をチェックして(当然SEQ値を引き継がないといけません)一致していなければ「他から更新が入ったのでやり直し」になります(そのままロック解除する)。

まぁ、「更新処理」は普通の業務アプリのようには多用しないとは思います。新規データをinsert(こちらはロックが不要ですね)して、SQL文で集計して・・というパターンが多くなります。

#もちろん管理画面からの更新やバッチ的な更新処理(cronで実行とか)もあり得ます。

このあたりは、そもそも「データベース設計」の時点で、決まってくる部分だと思いますし、普通のwebアプリではエンドユーザーでの更新を許可しない(更新は管理画面からのみ)ということにして省略するケースもあります。

∴ 業務系のようなものをそのままwebアプリに載せ替えると、一般的なwebアプリとは全然様相が異なってきますね。設計が大変だろうなぁ(汗

Re:Re:レンタルサーバー上のPHPプログラムは複数人同時使用は可能?

御回答頂き、ありがとうございます。

プロセスは自動で立ち上がる。
プロセス別にPHPプログラムは動く。
但し
別プロセスのPHPプログラムが
同一記述のSQLで同じレコードを取ることがある。

と理解しました。

分かり易い説明をして頂き
心より感謝申し上げます。

Re:レンタルサーバー上のPHPプログラムは複数人同時使用は可能?

解決済みですが

一般的なWebのシステムでは「マルチタスク動作のアプリケーション」
ということはしないので、気にしないでよいとおもいます
# がんばってPHPで実装する必要もないですし…

> ・PHPのプログラム上で、マルチタスクについて考慮する
上記理由から考慮する必要はありません

> ・MySQLを利用するには、複数人の同一レコード処理を考慮する
これは考慮する必要がありますが、基本的にMySQLがうまいこと処理してくれますから
細かい処理を記述する必要はありません

なのでPHPでDBの処理はとても簡単です
simplexml_load_file関数で取り出せな... 質問一覧 フォーム内のチェックボックスの値を取得