MEMPERBAIKI: Katalog caching tidak digunakan saat Anda menggunakan kelas CategoryConfiguration bersamaan dengan properti CategoryConfiguration. ChildProducts. SqlWhereClause di Commerce Server 2009

Gejala

Pertimbangkan skenario berikut:

  • Anda mengaktifkan caching dalam sistem Katalog dalam file web. config untuk situs web yang menjalankan Microsoft Commerce Server 2009.

  • Anda menggunakan kelas categoryconfiguration untuk menentukan konfigurasi dimuat sebelumnya objek kategori .

  • Anda mengatur properti Loadchildproducts ke True.

  • Anda menentukan klausul pemfilteran dalam properti Categoryconfiguration. ChildProducts. SqlWhereClause .

  • Anda menggunakan metode Getcategory atau metode getProducts untuk mengambil kategori anak atau produk turunan dari objek categoryconfiguration .

Dalam skenario ini, caching Katalog mungkin tidak digunakan untuk mengambil kategori anak dan produk turunan. Oleh karena itu, situs web mungkin mengalami penurunan kinerja ketika ada muatan tinggi. Misalnya, Anda memiliki situs web yang menggunakan Katalog contoh AdventureWorks. Anda menjalankan contoh kode berikut untuk mengambil nama tampilan objek kategori . Dalam contoh ini, data kueri data dari database Katalog setiap waktu, meskipun caching Katalog diaktifkan.

CategoryConfiguration categoryConfiguration = new CategoryConfiguration();  categoryConfiguration.LoadChildProducts = true;  categoryConfiguration.ChildProducts.SqlWhereClause = "[IsVisible] = 1";  var catalogContext = CommerceContext.Current.CatalogSystem.CatalogContext;  Category category = catalogContext.GetCategory("AdventureWorks Catalog", "SleepingBags");  Response.Write(category.DisplayName);

Catatan Masalah yang sama terjadi ketika Anda menggunakan metode Getproduct dalam contoh kode. Microsoft menyediakan contoh pemrograman untuk ilustrasi saja, tanpa garansi baik tersurat maupun tersirat. Ini termasuk, namun tidak terbatas pada, jaminan tersirat tentang kelayakan untuk diperdagangkan atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa Anda sudah terbiasa dengan bahasa pemrograman yang sedang diperlihatkan dan dengan alat yang digunakan untuk membuat dan melakukan debug prosedur. Teknisi dukungan Microsoft bisa membantu menjelaskan fungsionalitas prosedur tertentu. Namun, mereka tidak akan mengubah contoh ini untuk menyediakan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda.

Pemecahan Masalah

Untuk mengatasi masalah ini, Terapkan hotfix ini ke server yang menjalankan server perdagangan 2009. setelah Anda menerapkan hotfix ini, tembolok produk anak dan kategori anak dalam tembolok Katalog diizinkan saat Anda menggunakan filter "whereClause". Secara default, setiap kueri yang berisi klausa Where melewati singgahan Katalog. Untuk mengaktifkan caching, Anda harus menambahkan bagian "cacheFilter" dan mengonfigurasikannya dengan benar di file web. config untuk situs web server perdagangan. Bagian "cacheFilter" menyediakan atribut berikut ini:

  • Atribut "whereClause".

  • Atribut "exactMatch".

Anda bisa menggunakan salah satu opsi berikut ini untuk mengelola klausa Where to cache:

  • Tentukan klausa Where di "whereClause", lalu Atur atribut "exactMatch" ke True.

  • Tentukan klausa Where dalam atribut "whereClause", lalu Atur atribut "exactMatch" menjadi false. Ini memungkinkan server perdagangan untuk menyimpan klausa Where yang memiliki kecocokan parsial dengan apa yang ditentukan dalam file konfigurasi.

Catatan Atribut "exactMatch" bersifat opsional. Secara default, jika Anda menghilangkan atribut "exactMatch", maka diatur ke True. Contoh berikut ini memperlihatkan cara memodifikasi bagian konfigurasi. Contoh ini juga memperlihatkan penggunaan atribut "exactMatch".

<catalog><catalogSets .../>      <cache enable="true">        <cacheFilter>          <add whereClause="WHERE [ListPrice] between 0 AND 1000'" />          <add whereClause="isActive" exactMatch="False" />          ...         </cacheFilter>       </cache> </catalog>

Aturan dalam menentukan nilai atribut "whereClause" di bagian cacheFiltercatat nilai atribut "whereclause" di bagian "cachefilter" adalah pencocokan string. Misalnya, aturan berikut ini harus diikuti:

  • Hanya satu spasi kosong yang diperbolehkan di antara kata kunci nilai atribut "whereClause". Misalnya:

    • whereClause = "ProductID like ' AW2% '" tidak cocok

    • whereClause = "ProductID like ' AW2% '" dicocokkan

  • Tidak ada spasi kosong yang diperbolehkan di awal atau akhir nilai atribut "whereClause" jika terdapat beberapa nilai kata kunci. Misalnya:

    • whereClause = "ProductID like ' AW2% '" tidak cocok

    • whereClause = "ProductID like ' AW2% '" tidak cocok

  • Sub-nilai yang dikutip dalam atribut "whereClause" harus sepenuhnya cocok dengan string. Misalnya, asumsikan bahwa kueri pencarian adalah "ProductID like ' AW2% '"; dalam kasus ini,

    • whereClause = "ProductID like ' AW2 ' bukan kecocokan

    • whereClause = "ProductID like ' AW2% ' adalah kecocokan

Informasi selengkapnya tentang hotfix ini

Informasi hotfix

Hotfix yang didukung tersedia dari Microsoft. Namun, hotfix ini ditujukan untuk mengoreksi masalah yang diuraikan dalam artikel ini saja. Menerapkan hotfix ini hanya ke sistem yang mengalami masalah yang diuraikan dalam artikel ini. Hotfix ini mungkin menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terlalu terpengaruh oleh masalah ini, kami menyarankan agar Anda menunggu pembaruan perangkat lunak berikutnya yang berisi perbaikan terbaru ini. Jika perbaikan terbaru tersedia untuk diunduh, terdapat bagian "tersedia unduhan hotfix" di bagian atas artikel Pangkalan Pengetahuan ini. Jika bagian ini tidak muncul, hubungi layanan pelanggan Microsoft dan dukungan untuk mendapatkan hotfix. Catatan Jika masalah tambahan terjadi atau jika pemecahan masalah diperlukan, Anda mungkin harus membuat permintaan layanan secara terpisah. Biaya dukungan biasa akan diterapkan pada pertanyaan dan masalah dukungan tambahan yang tidak memenuhi syarat untuk hotfix ini. Untuk daftar lengkap nomor telepon layanan pelanggan Microsoft dan dukungan atau untuk membuat permintaan layanan secara terpisah, kunjungi situs web Microsoft berikut ini:

http://support.microsoft.com/contactus/?ws=supportCatatan Formulir "tersedia unduhan hotfix" menampilkan bahasa di mana hotfix tersedia. Jika Anda tidak melihat bahasa Anda, itu karena hotfix tidak tersedia untuk bahasa tersebut.

Prasyarat

Untuk menerapkan hotfix ini, Anda harus memiliki Commerce Server 2009 atau paket Templat 2009 server Commerce untuk SharePoint 2010 terinstal.

Informasi mulai ulang

Anda tidak harus memulai ulang komputer setelah menerapkan hotfix ini. Namun, Anda harus memulai ulang layanan informasi internet (IIS) setelah Anda menerapkan perbaikan terbaru ini. Untuk memulai ulang IIS, buka jendela prompt perintah, Ketikkan perintah berikut, lalu tekan ENTER:

iisreset/mulai ulangCatatan Opsi ini berhenti semua layanan IIS yang berjalan lalu mulai ulang.

Informasi berkas

Versi bahasa Inggris dari hotfix ini memiliki atribut file (atau atribut file yang lebih baru) yang tercantum dalam tabel berikut ini. Tanggal dan waktu untuk file ini tercantum dalam waktu Universal Terkoordinasi (UTC). Saat melihat informasi berkas, waktu akan diubah ke waktu lokal. Untuk menemukan perbedaan antara waktu UTC dan waktu lokal, gunakan tab zona waktu dalam item tanggal dan waktu dalam panel kontrol.

Untuk semua versi server Commerce 2009 yang didukung

Nama file

Versi file

Ukuran file

Tanggal

Waktu

Platform

Cs2009hotfixhelper.exe

6.0.4171.27

13.080

18-Aug-2010

11:11

x86

Microsoft.catalogserver.dll

6.0.4171.27

756.520

18-Aug-2010

11:11

x86

Microsoft.commerceserver.runtime.dll

6.0.4171.27

850.744

18-Aug-2010

11:11

x86

Microsoft.commerceserver.catalog.dll

6.0.4171.27

961.336

18-Aug-2010

11:35

x86

Untuk semua versi paket Templat server Commerce 2009 yang didukung untuk SharePoint 2010

Nama file

Versi file

Ukuran file

Tanggal

Waktu

Platform

Cspatchhelper.exe

6.0.4171.504

17.168

30-Nov-2010

08:16

x86

Microsoft.catalogserver.dll

6.0.4171.504

756.520

30-Nov-2010

08:16

x86

Microsoft.commerceserver.runtime.dll

6.0.4171.504

850.744

30-Nov-2010

08:16

x86

Microsoft.commerceserver.catalog.dll

6.0.4171.504

961.336

29-Nov-2010

14:13

x86

Status

Microsoft telah melakukan konfirmasi bahwa masalah ini timbul pada produk Microsoft yang tertera pada bagian "Berlaku untuk".

Informasi Selengkapnya

Harap perhatikan dua poin berikut selama dan setelah pembongkaran hotfix:

  1. Jendela dialog mungkin ditampilkan. Jendela dialog memperingatkan Anda bahwa beberapa aplikasi harus ditutup sebelum Anda dapat melanjutkan proses tanpa installion. Dalam situasi ini, terima pilihan default dan klik tombol OK untuk melanjutkan.

  2. Setelah Anda menghapus instalasi hotfix untuk server perdagangan 2009, baik Commerce Server 2009 dan Commerce Server 2007 mungkin muncul di menu mulai. Dalam situasi ini, Anda bisa mengabaikan atau menghapus item menu Commerce Server 2007.

Untuk informasi selengkapnya, kunjungi situs web Microsoft Developer Network (MSDN) berikut:

Metode CatalogCategoryconfiguration ClassgetcategoryUntuk mengunduh paket Templat server perdagangan 2009 untuk SharePoint 2010, kunjungi situs web Microsoft berikut ini:

http://www.microsoft.com/download/en/details.aspx?FamilyID=CFD0C459-5A11-4DE6-9085-52D59E8D38E6&displaylang=en

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×