使用するデータベースがMySQL(MyISAM)の場合、cakephpのソース上でロック処理を書かなくてもsaveを実行した段階で自動的にテーブルロックがかかるのでしょうか?
また、ロックがかかる場合、それは排他ロックではなく、共有ロックという認識で問題ないでしょうか?
プログラミング初心者で質問も分かりにくいものになっているかもしれませんが、どうかご教示ください(検索方法がいけなかったのか、ネットで答えを見つけることができませんでした)
利用するCakePHPのバージョンにもよるかもしれませんが、僕が知る限りロックは明示的にしてあげる必要があります。CakePHP1.2から導入されたらしいトランザクションを使えればいいのでしょうが、MyISAMでは使用できません。
そこで、MySQLのロックが必要なのであれば、Model::save()を呼び出す前に、Model::query()を使って"LOCK TABLES XXXX"というコマンドを実行させればいいでしょう。また、それを行うためのビヘイビアを定義してしまうのもいいかもしれません。
何かの参考になれば。
tdoiさん、ご回答ありがとうございます。
頂いた回答をヒントに実際、作成してみようと思います。
なお、追加で質問してしまって申し訳ございませんが、共有ロックにするか排他ロックにするかもプログラム側で指定するのかご教示頂けると幸いです