バージョン選択

フォーラム

メニュー

オンライン状況

38 人のユーザが現在オンラインです。 (28 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 38
もっと...

サイト内検索

質問 > その他 > 【2.12系】 SC_Queryのトランザクションについて

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
cohki
投稿日時: 2013/9/9 10:35
対応状況: −−−
一人前
登録日: 2013/4/15
居住地:
投稿: 133
【2.12系】 SC_Queryのトランザクションについて
お世話になります。

SC_Queryのトランザクションについて質問です。
以下、開発中に気になりましたのでご存知の方いらっしゃいましたらご意見、ご回答頂けると幸いです。

■ シングルトンパターン適用により、参照渡しは不要となったのか?

 個人としてはこの認識でいますが、間違いないでしょうか。
 トランザクション開始してから、

 SC_Query_Ex::getSingletonInstance();
 
 によって取得したインスタンスを使用することで、その間の全ての更新処理がトランザクションの対象となるのでしょうか。


■ 上記の場合の排他処理について問題はないのか

 phpにさほど深い知識がありませんので、誤認識あればご指摘下さい。
 仮に上記のような処理が可能だとすれば、別スレッドでの全く別系列の処理に対しても、意識していないトランザクションが施されるかと思います。
 こちらに対してはどのような処理が行われているのでしょうか。

 それとも、そもそも各処理(1アクセス)に対してはApacheから独立したプロセスが割り当てられるため、上記のような現象が発生しないのか。
 

手元でも色々調査しているところではありますが、不安な部分であります。
何卒よろしくお願いいたします。

###


/////////////////////////////////////////////////////////////

【株式会社エスキュービズム】 (EC-CUBEプラチナパートナー)
↓プラグインを多数公開しています。 ↓
http://www.ec-cube.net/integrate/partner/partner.php?partner_id=165
↓EC-CUBEのカスタマイズも承っております!↓
http://ec-cube.ec-orange.jp

/////////////////////////////////////////////////////////////
nanasess
投稿日時: 2013/9/9 17:58
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: 【2.12系】 SC_Queryのトランザクションについて
引用:

シングルトンパターン適用により、参照渡しは不要となったのか?


「参照渡しは不要になるか?」というと語弊がありますが、SC_Query_Ex::getSingletonInstance() によって同一の SC_Query インスタンスを取得可能です。
SC_Query の内部では MDB2 のインスタンスを保持しており、 MDB2 自身も singleton で DB 接続を取得していますので、一貫したコネクションを取得可能です。

引用:

上記の場合の排他処理について問題はないのか

 phpにさほど深い知識がありませんので、誤認識あればご指摘下さい。
 仮に上記のような処理が可能だとすれば、別スレッドでの全く別系列の処理に対しても、意識していないトランザクションが施されるかと思います。
 こちらに対してはどのような処理が行われているのでしょうか。


厳密には、 RDBMS のトランザクション分離レベルが適用されます。
通常、 PHP はシングルスレッドで動作しますので、 別のスレッドがアクセスするようなことはありません。
(ISAPI で動作しているような環境は例外ですが)
cohki
投稿日時: 2013/9/9 23:12
対応状況: −−−
一人前
登録日: 2013/4/15
居住地:
投稿: 133
Re: 【2.12系】 SC_Queryのトランザクションについて
お世話になっております。
回答ありがとうございます。

引用:

「参照渡しは不要になるか?」というと語弊がありますが、SC_Query_Ex::getSingletonInstance() によって同一の SC_Query インスタンスを取得可能です。
SC_Query の内部では MDB2 のインスタンスを保持しており、 MDB2 自身も singleton で DB 接続を取得していますので、一貫したコネクションを取得可能です。


上記理解しました。
当初、SC_Queryのコメントにも記述がありましたが、厳密なシングルトンではなかったために少し困惑しました。。
現状、SC_Queryインスタンスは別(クローンしているため)であるが、MDB2インスタンスが共通との認識でおります。


引用:

厳密には、 RDBMS のトランザクション分離レベルが適用されます。
通常、 PHP はシングルスレッドで動作しますので、 別のスレッドがアクセスするようなことはありません。
(ISAPI で動作しているような環境は例外ですが)


上記、理解しました。
ほぼイメージが取れました。

回答いただきありがとうございました。


###

/////////////////////////////////////////////////////////////

【株式会社エスキュービズム】 (EC-CUBEプラチナパートナー)
↓プラグインを多数公開しています。 ↓
http://www.ec-cube.net/integrate/partner/partner.php?partner_id=165
↓EC-CUBEのカスタマイズも承っております!↓
http://ec-cube.ec-orange.jp

/////////////////////////////////////////////////////////////
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,980名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.