Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Havuzlanabilir nesneler, tek bir nesne örneğinin birden çok istemci tarafından kullanılmasını sağlamak için belirli gereksinimleri karşılamalıdır.
Vatansız
Güvenlik, tutarlılık ve yalıtımı korumak için havuza alınabilen nesneler, istemciden istemciye istemciye özgü bir durum barındırmamalıdır. IObjectControlkullanarak istemci başına herhangi bir durumu yönetebilir, bağlama özgü başlatmayı IObjectControl::Activate ile gerçekleştirebilir ve tüm istemci durumlarını IObjectControl::Deactivateile temizleyebilirsiniz. Daha fazla ayrıntı için bkz. Nesne Ömrünü ve Durumunu Denetleme.
İş Parçacığı Bağımlılığı Yok
Havuzlanabilir nesneler belirli bir iş parçacığına bağlanamaz; aksi takdirde performans potansiyel olarak felakete dönüşebilir. Bu nedenle, havuzlanabilir nesneler apartman modelinde çalışacak şekilde işaretlenemez; çok iş parçacıklı şubede veya nötr şubede çalıştırılmalıdırlar. Ayrıca, havuzlanabilir nesneler iş parçacığı yerel depolamasını kullanmamalı ve serbest iş parçacıklı marşalı da toplamamalıdır. COM+'da iş parçacığı yönetimi hakkında daha fazla bilgi için bkz. COM+ İş Parçacığı Modelleri.
Not
Microsoft Visual Basic 6.0 ve önceki geliştirme ortamları yalnızca apartman modeli bileşenleri oluşturabilir. Ancak Visual Basic .NET'te bileşenler havuza alınabiliyor.
Toplayıcı
Havuza alınabilen nesneler birleştirmeyi desteklemelidir; diğer bir deyişle, null olmayan bir pUnkOuter parametresiyle CoCreateInstance çağrılarak oluşturulmaları desteklenmelidir. COM+ havuza alınan bir nesneyi etkinleştirdiğinde, havuza alınan nesnenin ömrünü yönetmek ve IObjectControlüzerinde yöntemleri çağırmak için bir toplama oluşturur. Birleştirilebilir nesneler yazma hakkında ayrıntılı bilgi için bkz. Birleştirme.
İşlem Bileşenleri
İşlemlere katılan havuzlanabilir nesneler, yönetilen kaynakları elle kaydetmelidir. Havuza alınmış durumdayken, nesneniz veritabanı bağlantısı gibi yönetilen bir kaynak barındırıyorsa, nesne belirli bir bağlamda etkinleştirildiğinde kaynak yöneticisinin otomatik olarak bir işleme kaydolmasının hiçbir yolu yoktur. Bu nedenle, nesnenin işlemi algılama mantığını işlemesi, kaynak yöneticisinin otomatik listesini kapatması ve içerdiği tüm kaynakları el ile listelemesi gerekir. Buna ek olarak, işlem havuzuna alınan nesne IObjectControl::CanBePooledparametre değerlerinde kaynaklarının geçerli durumunu yansıtmalıdır. Daha fazla ayrıntı için bkz. İşlem Nesnelerini Havuza Alma.
Nesne Ömrünü Yönetmek için IObjectControl Uygulama
Havuza alınabilen nesneler, IObjectControluygulamalıdır, ancak bunu yapmak kesinlikle gerekli değildir. Ancak havuza alınan işlem bileşenleri, IObjectControluygulamalıdır. Bu bileşenler, barındırdıkları kaynakların durumunu izlemeli ve ne zaman yeniden kullanılamadıklarını belirtmelidir; IObjectControl::CanBePooled false döndürdüğünde, işlem sonlanır. Daha fazla ayrıntı için bkz. Nesne Ömrünü ve Durumunu Denetleme.
Dil Kısıtlamaları
Microsoft Visual Basic 6.0 ve önceki sürümleri kullanılarak geliştirilen bileşenler, apartman modeli iş parçacığı ile çalıştıkları için havuza alınamaz. Ancak Visual Basic .NET'te bileşenler havuza alınabiliyor.
Eski Bileşenler
İşlemsel olmadıkları ve uygun önceki gereksinimlere uydukları sürece, havuz oluşturma yeteneği düşünülerek özel olarak yazılmamış olsalar bile, bileşenler havuzda toplanabilir. IObjectControluygulamak gerekli değildir; bunu yapmayan bir bileşen, kullanım ömrünü yönetmeye katılmaz. IObjectControl::CanBePooled uygulanmazsa, havuz en büyük boyuta gelene kadar nesne yeniden kullanılabilir.
İlgili konular
-
nesne havuzu oluşturmanın nasıl çalıştığını
-
Nesne Havuzu ile Performansı Artırma