11 Eylül 2009 Cuma

Microsoft Commerce Server 2007/2009 ConnectionString'lerini Okumak

Microsoft Commerce Server 2007/2009 (=MSCS) ürününü kullanıyorsanız bir site oluşturduğunuzda şu veritabanlarının oluşturulduğunu göreceksiniz:

1. SiteName_ProductCatalog
2. SiteName_Profiles
3. SiteName_Marketing
4. SiteName_MarketingLists
5. SiteName_Transactions
6. SiteName_TransactionConfig
7. SiteName_DataWareHouse

Yukarıdaki veritabanları her "SiteName" için oluşturulur; tabii eğer veri ambarı kaynağını kurmadıysanız 7nci veritabanı olan SiteName_WareHouse oluşturulmayacaktır.

Tüm MSCS kurulumlarından sonra iki tane veritabanı oluşturulur: MSCS_Admin, MSCS_CatalogScratch . Bu db'lerin ilki MSCS'in ayarlarını ikincisi ise geçici olarak oluşturulan tabloları tutmaktadır.

Herhangi bir "SiteName" için yukarıdaki kaynaklardan herhangi birinin ayarı değiştirilebilir. Örneğin siz bir ay önceki productCatalog'unuzu "SiteName_pCatalog2" olarak db serverınıza restore ettiniz ve bu db'yi kullanarak bir kodun testini yapmak istiyorsunuz. Bunuyapabilmesniz için

"MSCS Configuration Manager" adlı uygulamayı açarak productCatalog için tanımlanan iki connection string'i değiştirmeniz ve iisreset yapmanız yeterli olacaktır.

Öte yandan kodumuz içerisinde daha hızlı çalışmasını istediğimiz productCatalog db'sine erişen bazı sorgular olabilir. MSCS'in siteAgent'ı veya serviceAgent'ı kullanılarak yapılan sorgulamalar uzun zaman alabileceği için direk veritabanına bağlanıp sorgu çalıştırmak daha hızlı sonuç verebilmektedir. Fakat burada önemli olan sık sık veritabanına tabloları kilitleyecek sorgular atmamaktır, çünkü daha hızlı sonuç alalım diye db'ye direk erişip attığımız sorgular bazı MSCS tablolarını kilitlerse sistemin normal işletiği sekteye uğrayacaktır. Bu yüzden sık sık bu şekilde sorgular atmamakta fayda vardır. Şayet azımsanmayacak kadar çok SELECT sorgusu atılacaksa SQL cümlesine "(NOLOCK)" eklenerek dirty read yapılması sorgumuzun sunucuda beklememesine hemen çalıştırılmasını sağlayacaktır.

Madem MSCS Configuration Manager kullanarak ConStr'leri değiştirebiliyoruz, ve direk db'ye erişerek sorgu atmamız da gerekebiliyor o halde güncel connectionString'lere ulaşmamız gerekecektir. Bunu yapmak için bir kütüphane hazırladım. Bunu uygulamalarınıza ekleyerek bir dictionary içerisinden istediğiniz resource'un conStr'sine ulaşabileceksiniz.

İyi çalışmalar dilerim,
Ziver Alen MALHASOĞLU

0 yorum:

Yorum Gönder