Storage Layer Global/MetaQueryConstants section
The MetaQueryConstants section in the Global section of the Storage Layer configuration file, cd_storage_conf.xml, configures constants used in querying. You only need to change this section if you use the findByURL() or findByPageURL() method in your code, and if you're experiencing case sensitivity issues.
FindByUrlCaseSensitivity. This setting needs to be changed only under the following exceptional circumstances:
- You use the
findByURL()orfindByPageURL()method in your code. - The default setting for case sensitivity as listed below is incorrect for your implementation.
findByURL() or findByPageURL(). They are:
com.tridion.storage.dao.BinaryVariantDAOcom.tridion.storage.dao.ItemDAO
Calling the findByURL() or findByPageURL() method on a class that implements one of these interfaces is one way of retrieving a Page or a binary by way of a URL lookup. Depending on the storage medium you use, the URL lookup of a page or binary by the Content Broker may fail because the lookup is case-sensitive.
For example, when a page is stored on the Windows file system as mypage.html and when IIS is used as a web and application server, accessing the URL MyPage.html will retrieve the page, as will a call to findByPageURL(). However, when using Tomcat as a web and application server, Tomcat would not serve the page (because Tomcat is case-sensitive), but findByPageURL() would successfully retrieve the page. This leads to inconsistent behavior.
To solve this problem, you can configure the case sensitivity of the findByURL() or findByPageURL() method in the current element. Only the UNIX file system remains unaffected by this setting.
| Storage system | Effect of setting |
|---|---|
| SQL Server database | Case-sensitive only if case-sensitivity is explicitly set to true |
| Oracle database | Case-sensitive only if case-sensitivity is explicitly set to true |
| Windows file system | Case-sensitive only if case-sensitivity is explicitly set to true |
| UNIX file system | Always case-sensitive, the setting is ignored |
<MetaQueryConstants><FindByURLCaseSensitivity Value="true" /></MetaQueryConstants>