2012-04-09 12 views

cevap

37

İlk kez sf.getCurrentSession() çağrıldığında bir oturum açılır. Bu, mevcut değilse veya mevcutsa mevcut olanı kullanırsa yepyeni bir oturum oluşturur.

Tomcat'te, bu, altta yatan ThreadLocal nesnesi kullanılarak oluşturulan bir iş parçacığıyla bir oturumu ilişkilendirir. Ancak Tomcat, iş parçacığı havuzu oluşturduğundan, bir isteğin, halihazırda onunla ilişkilendirilmiş bir oturuma sahip bir iş parçacığı alabilmesi ve böylece yepyeni bir oturum oluşturmama olasılığını ortaya koyması mümkündür. Başka bir şey, sf.getCurrentSession() ile elde ettiğiniz Seansın otomatik olarak temizlendi ve kapatıldı.

sf.openSession() yöntemi, yeni bir oturum oluşturur, ancak bir iş parçacığıyla ilişkilendirmeyi denemez. Ancak, sf.openSession() un hatırlatılması, kullanıcıların hazırda bekletme işlemini otomatik olarak yapmasına izin vermek yerine, kullanıcıların oturumları kapatma ve silme işlemlerini gerçekleştirmelerini beklediğinden başka bir aksama getirdiğini hatırlatır. Genelde yeterlidir.

sf.getCurrentSession() genellikle yeterlidir. sf.openSession(), oturumun nerede saklandığını ve yönetildiğini daha iyi bir şekilde yönetir ve sağlar. Kesinlikle gelişmiş bir seçenek.

+1

Bu, tomcat'in içinde multiithreads için sf.getCurrentSession kullanıyorum - aynı oturumu kullanacağı anlamına mı geliyor? tamam mı? – Dejell