sori, saya kurang memperhatikan posting anda yang pertama.
nampaknya Irving salah tangkap maksud pertanyaan anda semula.
pertanyaannya adalah:
> Contoh :
> ada registered var $x
> proses A dan B dimulai secara bersamaan dan mendapatkan $x=10
> A: B:
> $x++; .
> print $x; .
> . $x--;
> . print $x;
> berapa nilai $x yang di-print di A, dan berapa nilai $x yang di-print di B ?
oleh A: 11
oleh B: 9
note: nilai variabel session diambil dari session storage (apakah
itu file di /tmp atau shared memory) pada saat session_register()
dipanggil. umumnya ini terjadi di awal request.
> Atau dengan kata lain, apakah registered variable $x yang dipake di A sama
> dengan $x yang dipake di B ?
tidak. variabel ini baru akan direkam ke storage setelah processing
request selesai. jika script A selesai dahulu, ia akan merekamkan
nilai 11 ke storage. tapi setelah itu akan ditimpa oleh B sehingga
menjadi 9. nilai akhir di storage adalah 9.
> ketika proses A dan B selesai, terus ada proses C yang masuk dengan
session id
> yang sama berapa nilai $x yang didapat oleh C?
jawab: 9. lihat jawaban sebelumnya.
> apakah nilai $x tergantung dari proses yang terakhir selesai ?
yup.
btw, jika tidak ingin hal spt ini terjadi, anda harus mencegah
A dan B jalan bersamaan. misalnya dengan membuat lock file/semaphore
di awal A berjalan dan menghapusnya di akhir A. B mengecek dulu
keberadaan lock ini. jika ada, tunggu dahulu misalnya. baru _setelah_
melihat lock file lenyap dan langsung membuat lock bagi dirinya,
lakukan session_register().
semoga jelas.
--
sh
At 3/28/2001 09:44 AM, you wrote:
>Quoting Steven Haryanto <[EMAIL PROTECTED]>:
>
> > bung hadi, pengertian "browsing session" anda keliru. satu "browsing
> > session" di sini bukan berarti satu window browser, tapi seluruh
> > instan proses[-proses] browser yang sedang berjalan. jadi jika anda
> > membuka 8 window IE, di situ ada 1 browser session, bukan 8. jika
> > saya shopping di amazon dan berbelanja di 2 window sekaligus, semuanya
> > tercatat di session ID yang sama.
>Emang begitu maksud saya, banyak window yang session idnya sama. Mungkin
>istilahnya salah, sorry :)
> >
> > masalah shopping cart yang anda ceritakan di bawah memang dipecahkan
> > dengan session. tidak perlu menyamakan session id yang satu dengan
> > yang lainnya.
>Nggak, maksud saya kita nggak perlu berusaha menyamakan sessid secara
>explisit.
>Seperti anda bilang di Amazon kalau belanja di 2 window sekaligus, semuanya
>tercatat di sessid yang sama. Hal ini bisa terjadi kalau si user membuka
>window
>baru atau misalnya dengan javascript:window.open, dan karena sessidnya pake
>cookie, jadi window yang baru otomatis sessid-nya sama, CMIIW. Dari sisi
>php di
>server-nya sendiri tidak ada usaha untuk menyamakan sessidnya.
>Ya, jadi kembali ke pertanyaan saya, kalau ada akses bersamaan, apa bisa
>dijamin hasilnya sesuai yang diharapkan (dengan hanya menggunakan session,
>tanpa usaha tambahan) ? Maksud saya, kalau di java, untuk menghindari
>simultaneous akses ke sebuah method kan methodnya bisa dijadiin synchronized,
>jadi setiap akses ke method itu akan masuk ke antrian, dan dalam satu saat
>hanya satu akses saja yang menjalankan fungsi, concurrency control mungkin
>nama
>kerennya, terus kalau akses file di php bisa pake flock, share memory pake
>semaphore, nah terus kalo session ada atau nggak mekanismenya, that's all
>what
>i want to know. Soal browsing session dan shopping cart itu cuma contoh saja.
>
>PS:kalo ada salah istilah (lagi) tolong dimaafkan :)
>
>Hadi PS
>[EMAIL PROTECTED]
--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]