NHibernate oturumu kullanan çok sayıda kalıcı çağrı içeren bir yöntem kullandım, işe yaradı, iyiydi. Ancak, bu yöntemi yeniden işlemek için, çok satırlı nedenlerden dolayı, bir döngü içindeki bir içeriğin bir yöntemini ayıklamak gerekiyordu. Sonra bu yöntemle bir sınıf oluşturdum. Bu normal bir refactoring gibidir, ancak bu yöntem çağrısı içindeki nHibernate oturumu bağlamsızdır, herhangi bir anda kesinleştiremedim. Çok iş parçacıklı nHibernate sorunları var mı? Sadece bir tane daha iş parçacığım olsa bile, aynı soruna sahibim.nHabernate oturumu ve çoklu iş parçacığı
SessionFactory ve Cephe düzeni aracılığıyla nHibernate oturumunu kullanıyorum, oturum, bu nesnelerin alanı değil, SessionFactory'de global.
o Making daha net biraz:
ÖNCE:
Method()
{
... persistence calls
foreach(Thing..)
{
...persistence calls for each thing (1)
}
...
}
SONRA:
Method()
{
... persistence calls
foreach(Thing..)
{
create a thingResolver object with some data
open a new thread with thingResolver.Method (1)
starts this thread
}
.. waits for finishing threads and continues
}
nHibernate Oturum Fabrikamız iş parçacığıdır ve iş parçacığı başına nHibernate oturumunu kaydeder/alır.
teşekkürler Aleksey. Bunu yapmak için problemlerim olacak (başka bir oturumla çalışıyorum), çünkü tasarımımı ihlal ettiğinden, bu çok şeyi unutmayı düşünüyorum. –
aslında, benim oturum fabrikası sağlam ve iş parçacığı başına bir oturum yönetebilir, çalışma: D –
Güncelleştirilmiş belge dokümanı http://nhforge.org/doc/nh/en/index.html#transactions – AlfeG