3

When we are trying to access the web site from a UNC Path getting the below error, while from same UNC path it is working fine from other Server. Please help to resolve the issue.

2015-05-28 10:25:30,171 ERROR Query - Unable to execute Broker Query, no QueryGenerator was initialized 2015-05-28 10:25:36,702 ERROR Query - Unable to Configure for BrokerQuerying, query DAO could not be retrieved com.tridion.broker.StorageException: No Data Access Object for Query at com.tridion.storage.filesystem.FSDAOFactory.getDAOForTypeMapping(FSDAOFactory.java:181) ~[cd_datalayer.jar:na] at com.tridion.storage.StorageManagerFactory.getOriginalDAO(StorageManagerFactory.java:500) ~[cd_datalayer.jar:na] at com.tridion.storage.StorageManagerFactory.getDAO(StorageManagerFactory.java:269) ~[cd_datalayer.jar:na] at com.tridion.storage.StorageManagerFactory.getDefaultDAO(StorageManagerFactory.java:176) ~[cd_datalayer.jar:na] at com.tridion.broker.querying.Query.(Query.java:45) [cd_broker.jar:na] at com.tridion.broker.querying.Query.(Query.java:59) [cd_broker.jar:na] 2015-05-28 10:25:36,702 ERROR Query - Unable to execute Broker Query, no QueryGenerator was initialized

CD_storage_config.xml

        <!--Optional:-->
        <!-- The Features element specifies classes that add additional functionality to the cache. -->
        <Features>
            <Feature Type="DependencyTracker" Class="com.tridion.cache.DependencyTracker"/>
        </Features>
        <!--Optional:-->            
        <!--
                The optional RemoteSynchronization element specifies a remote Cache Channel Service.
                The remote Cache Channel Service is used to send messages between caches that are running
                on separate virtual machines. (For example, if the Broker and the Deployer run on separate
                virtual machines.)
                The Cache Channel Service must be running and listening on the configured host and port for
                remote synchronization to function.
                If this element is omitted, the cache does not use any inter-virtual machine cache communication.
                You must use the RemoteSynchronization element in conjunction with the Cache Channel service in
                order for objects to be updated or removed from the Broker's object cache when they are published
                or unpublished using the Deployer.
        -->
        <!-- RMI CacheChannel Connector example-->

        <RemoteSynchronization Queuesize="128" ServiceMonitorInterval="10000" FlushCacheDuringDisconnectInterval="20000">
            <Connector Class="com.tridion.cache.RMICacheChannelConnector" Host="server ip" Port="1099" />
        </RemoteSynchronization>


        <!-- JMS CacheChannel Connector example

        <RemoteSynchronization Queuesize="128" ServiceMonitorInterval="10000" FlushCacheDuringDisconnectInterval="20000">
            <Connector Class="com.tridion.cache.JMSCacheChannelConnector" Topic="topicName" TopicConnectionFactory="jndiNameOfConnectionFactory"/>
        </RemoteSynchronization>
        -->
    </ObjectCache>
    <!--Optional:-->
    <!-- The optional MetaQueryConstants section allows setting of some advanced properties.
           FindByURLCaseSensitivity overrides the default behaviour of the findByURL methods
           for retrieving BinaryMeta and PageMeta data.
    <MetaQueryConstants>                
        <FindByURLCaseSensitivity Value="false"/>
        <CategoryQuerySeparator Value="/"/>
    </MetaQueryConstants>
          -->
    <!--
    Specify RMI listening port
    -->
    <!--
    <RMIChannel ListenerPort="1050"/>
    -->
    <Storages>
        <!--
        Optional
        Overriding default Tridion dao bundles.

        <StorageBindings>
            <Bundle src="undo_dao_bundle.xml"/>
            <Bundle src="ugc_dao_bundle.xml"/>
            <Bundle src="myDAO.xml"/>
            <Bundle src="mybindings.xml"/>
    <Bundle src="AudienceManagerDAOBundle.xml"/>
        </StorageBindings>
        -->

        <!-- 
            Optional:
            Wrappers enhances the behaviour of DAOs for specific use cases.

        <Wrappers>
        -->
            <!--
            Optional:
            Wrapper definition for StorageLayer wrapping.
            This element has the following attributes:
                Name               The bean wrapper name.
            -->

            <!--
            <Wrapper Name="WrapperName">
            </Wrapper>
            -->
            <!--
            <Wrapper Name="UndoWrapper">
            -->
              <!-- Cleanup of old undo data can be enabled or disabled; default is enabled. -->
              <!--<CleanupEnabled>true</CleanupEnabled>-->
              <!-- PrunePeriod means Amount of time before data becomes invalid, as in anything older than 7 days. Default value is 7 days
                   PurgeInterval means Amount of time in between checking for old undo data. Default value is 24 hours -->
              <!--
              <PrunePeriod>7</PrunePeriod>
              <PurgeInterval>24h</PurgeInterval>
              -->
              <!--
              <Storage Type="persistence" Id="internalUndoDB" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
                <Pool Type="jdbc" Size="10" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120"/>
                <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
                  <Property Name="serverName" Value="SERVER_NAME"/>
                  <Property Name="portNumber" Value="1433"/>
                  <Property Name="databaseName" Value="DATABASE_NAME"/>
                  <Property Name="user" Value="USER_NAME"/>
                  <Property Name="password" Value="PASSWORD"/>
                </DataSource>
              </Storage>
            </Wrapper>
        </Wrappers>-->


        <!--
            For Database elements of type sql, you can specify the pooling that
            should be used with a Pool element. This pooling is independent of the selected database driver.

            This element has the following attributes:
                Type               The type should be either jdbc or tridion.
                Size               Maximum number of connections to open.
                MonitorInterval    Number of seconds between checks on the pool.
                IdleTimeout        Number of seconds a connection can be idle before it is closed.
                CheckoutTimeout    Number of seconds a connection can be checked out before it is returned to pool.
        -->
        <!--            
            Configuration example for MS SQL Server 2008 R2 SP1 & 2012 SP1, using the MSSQL JDBC driver.

            The DataSource element specifies the class name of the DataSource to use and properties specific to the datasource.
            For the MSSQL JDBC driver the minimum set of properties to set are:
                serverName: name of the server that hosts the database
                portNumber: configuration of the port used for TCP/IP connections to the database. 1433 is the default port.
                databaseName: name of the database to access
                userName: username used to access the database
                password: password used to access the database

        -->
        <Storage Type="persistence" Id="defaultdb" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
            <Pool Type="jdbc" Size="10" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
            <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
                <Property Name="serverName" Value="servername" />
                <Property Name="portNumber" Value="1433" />
                <Property Name="databaseName" Value="database" />
                <Property Name="user" Value="username" />
                <Property Name="password" Value="userpassword" />
            </DataSource>
        </Storage>

        <Storage Class="com.tridion.storage.persistence.JPADAOFactory" Type="persistence" dialect="MSSQL" Id="trackingdb">
            <Pool Type="jdbc" CheckoutTimeout="120" IdleTimeout="120" MonitorInterval="60" Size="10"/>
            <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
                <Property Value="dbname" Name="serverName"/>
                <Property Value="1433" Name="portNumber"/>
                <Property Value="dbname" Name="databaseName"/>
                <Property Value="username" Name="user"/>
                <Property Value="username" Name="password"/>
            </DataSource>
        </Storage>

        <Storage Class="com.tridion.storage.persistence.JPADAOFactory" Type="persistence" dialect="MSSQL" Id="profiledb">
            <Pool Type="jdbc" CheckoutTimeout="120" IdleTimeout="120" MonitorInterval="60" Size="10"/>
            <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
                <Property Value="servername" Name="serverName"/>
                <Property Value="1433" Name="portNumber"/>
                <Property Value="dbname" Name="databaseName"/>
                <Property Value="username" Name="user"/>
                <Property Value="password" Name="password"/>
            </DataSource>
        </Storage>

        <!--            
            Configuration example for DB2 Version 9.7

            The DataSource element specifies the class name of the DataSource to use and properties specific to the datasource.
            For the DB2 Version 9.7 driver the minimum set of properties to set are:
                serverName: name of the server that hosts the database
                portNumber: configuration of the port used for TCP/IP connections to the database. 50000 is the default port.
                databaseName: name of the database to access
                userName: username used to access the database
                password: password used to access the database
                driverType: set to "4" to indicate a pure java driver so no client installations of the driver are required.


        <Storage Type="persistence" Id="defaultdb1" dialect="DB2" Class="com.tridion.storage.persistence.JPADAOFactory">
            <Pool Type="jdbc" Size="10" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
            <DataSource Class="com.ibm.db2.jcc.DB2SimpleDataSource">
                <Property Name="serverName" Value="SERVER_NAME"/>
                <Property Name="portNumber" Value="50000"/>
                <Property Name="databaseName" Value="DATABASE_NAME"/>
                <Property Name="user" Value="USER_NAME"/>
                <Property Name="password" Value="PASSWORD"/>
                <Property Name="driverType" Value="4"/>
            </DataSource>
        </Storage>
        -->

        <!--            
            Configuration example for Oracle 10 and Oracle 11. 

            The DataSource element specifies the class name of the DataSource to use and properties specific to the datasource.
            For the Oracle 10 driver the minimum set of properties to set are:          
                driverType: set to value "thin". Indicates the type of driver to use, by using "thin" no oracle client installation is required.
                networkProtocol: "tcp". Indicates TCP/IP will be used for connectivity.
                serverName: name of the server that hosts the database
                portNumber: configuration of the port used for TCP/IP connections to the database. 1521 is the default port.
                databaseName: name of the database to access
                userName: username used to access the database
                password: password used to access the database              

        <Storage Type="persistence" Id="defaultdb2" dialect="ORACLESQL" Class="com.tridion.storage.persistence.JPADAOFactory">
            <Pool Type="jdbc" Size="10" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
            <DataSource Class="oracle.jdbc.pool.OracleDataSource">
                <Property Name="driverType" Value="thin"/>
                <Property Name="networkProtocol" Value="tcp"/>
                <Property Name="serverName" Value="SERVER_NAME"/>
                <Property Name="portNumber" Value="1521"/>
                <Property Name="databaseName" Value="DATABASE_NAME"/>
                <Property Name="user" Value="USER_NAME"/>
                <Property Name="password" Value="PASSWORD"/>
            </DataSource>
        </Storage>
        -->
        <!--            
            Configuration example for using a old style compatible JDBC Driver datasources. 

        <Storage Type="persistence" Class="com.tridion.storage.persistence.JPADAOFactory" dialect="MSSQL" Id="defaultdb3" Url="JDBC_URL_CONNECTION_STRING" Username="USERNAME" Password="PASSWORD" Driver="DRIVER_CLASS">
            <Pool Type="jdbc2" Size="10" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120"/>
        </Storage>
        -->

        <!--            
            Configuration example for using an Oracle based JNDI datasource.

        <Storage Type="persistence" Class="com.tridion.storage.persistence.JPADAOFactory" dialect="ORACLESQL" Id="defaultdb4" JNDIName="java:comp/env/jdbc/DATA_SOURCE_NAME"/>
        -->

        <!--            
            Configuration example for using a MS SQL based JNDI datasource.

        <Storage Type="persistence" Class="com.tridion.storage.persistence.JPADAOFactory" dialect="MSSQL" Id="defaultdb5" JNDIName="java:comp/env/jdbc/DATA_SOURCE_NAME"/>
        -->

        <!--            
            Configuration example for using a DB2 based JNDI datasource.

        <Storage Type="persistence" Class="com.tridion.storage.persistence.JPADAOFactory" dialect="DB2" Id="defaultdb6" JNDIName="java:comp/env/jdbc/DATA_SOURCE_NAME"/>
        -->

        <!--            
            Configuration example for using filesystem as data storage. 
        -->
        <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="defaultFile" defaultFilesystem="false">
            <Root Path="//Servername/Repository" />
        </Storage>
        <!-- <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="defaultDataFile" defaultFilesystem="true" defaultStorage="true">
            <Root Path="c:\temp\data" />
        </Storage>
        -->
        <!--
        Configuration Example for SearchFilter home used by the SearchFilter Query API

        <SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.meta.OracleSearchFilterHome" defaultStorageId="defaultdb2"/>
        -->
        <!--
        <SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.meta.DB2SearchFilterHome" defaultStorageId="defaultdb1"/>
        -->
        <!--
        <SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.meta.MsSqlSearchFilterHome" defaultStorageId="defaultdb"/>
        -->
    </Storages>
    <!-- This configures the taxonomy reference count for keywords, if CountEnabled is 
    set to False the reference count for keywords will not get updated. The default setting is keyword counts are enabled. --> 
    <!--<Taxonomies CountEnabled="false"/>-->

    <!-- Configures transaction storage settings, how long before a transaction gets rolledback and on which interval to monitor for
    outstanding transactions. Default timeout is 120000 ms. (2 minutes) and Default interval is 5000ms. (5 seconds) -->
    <!-- <Transaction Timeout="120000" MonitorInterval="5000"/> -->
</Global>
<!-- If no item type mappings are defined within ItemTypes or if storages on a lower level do not exist then the storage defined by defaultStorageId attribute will be used.
     If storage defined by defaultStorageId does not exist then exception will be thrown. -->
<ItemTypes defaultStorageId="defaultdb" cached="true">
    <!-- Query type mapping is replacement for Query gnenerator. If there was query generator defined in a Broker configuration then  Query type mapping should be binded to default DB. -->

    <Item typeMapping="Query" storageId="defaultdb"/>

    <!--Optional:-->
    <!-- If the item type mapping is defined and storage defined by storageId is the existing one then that one will be used.
         If storage defined by storageId does not exist then default storage defined by ItemTypes element will be used. -->
    <!--
    <Item typeMapping="Binary" itemExtension=".pdf" storageId="defaultFile" cached="true"/>
    <Item typeMapping="Binary" itemExtension=".iso" storageId="defaultFile" cached="false"/>
    -->
        <Item typeMapping="ComponentLinkClick" cached="false" storageId="defaultdb"/>
    <Item typeMapping="Metadata" cached="false" storageId="defaultdb"/>
        <Item typeMapping="ComponentVisit" cached="false" storageId="defaultdb"/>
        <Item typeMapping="DynamicLinkInfo" cached="false" storageId="defaultdb"/>
            <Item typeMapping="Page" cached="false" storageId="defaultFile"/>
    <Item typeMapping="Binary" cached="false" storageId="defaultFile"/> 

    <Item typeMapping="Personalization" cached="false" storageId="defaultdb"/>
    <Item typeMapping="Taxonomy" cached="false" storageId="defaultdb"/>
    <Item typeMapping="Timeframe" cached="false" storageId="defaultdb"/>
    <Item typeMapping="TrackedPage" cached="false" storageId="defaultdb"/>
    <Item typeMapping="XSLT" cached="false" storageId="defaultdb"/>
    <Item typeMapping="ExtensionData" cached="false" storageId="defaultdb"/>

    <!--OutBound Email-->

    <Item storageId="profiledb" typeMapping="AudienceManagerProfile"/>
    <Item storageId="trackingdb" typeMapping="AudienceManagerTracking"/>

    <!-- UGC -->

        <!--
        <Item typeMapping="Comment" storageId="ugcdb"/>
        <Item typeMapping="Rating" storageId="ugcdb"/>
        <Item typeMapping="UGCUser" storageId="ugcdb"/>
        <Item typeMapping="UGCItemStats" storageId="ugcdb"/>
    -->

    <!--Optional:-->
    <!-- If the publication is defined and storage defined by defaultStorageId is the existing one then that one will be used for that publication unless it is overwriten on a lower level.
         If storage defined by storageId does not exist then default storage defined by ItemTypes element will be used unless lower level type mappings are not matched. -->
    <!--
    <Publication Id="1" defaultStorageId="defaultFile" cached="false">
    -->
        <!--Optional:-->
        <!-- If there is a type mapping match and storage is defined for storageId then that storage will be used.
             Otherwise; first storage defined within publication element will be referenced, and if that one does not exist then the storage from Item elements will be referenced. 
             and at the end storage defined within ItemTypes will be used.-->
        <!--
    <Item typeMapping="ComponentPresentation" itemExtension=".Jsp" storageId="defaultFile"/>
    <Item typeMapping="ComponentPresentation" itemExtension=".Asp" storageId="defaultFile"/>
    <Item typeMapping="ComponentPresentation" itemExtension=".Xml" storageId="defaultFile"/>
    <Item typeMapping="ComponentPresentation" itemExtension=".Txt" storageId="defaultFile"/>
    <Item typeMapping="Metadata" cached="true" storageId="defaultFile"/>
        <Item typeMapping="Binary" itemExtension=".pdf" storageId="defaultFile" cached="true"/>
        <Item typeMapping="Binary" itemExtension=".iso" storageId="defaultFile" cached="false"/>
        <Item typeMapping="ComponentLinkClick" cached="true" storageId="defaultFile"/>
        <Item typeMapping="ComponentVisit" cached="true" storageId="defaultFile"/>
        <Item typeMapping="DynamicLinkInfo" cached="true" storageId="defaultFile"/>
    <Item typeMapping="Page" cached="true" storageId="defaultFile"/>
        <Item typeMapping="Personalization" cached="true" storageId="defaultdb"/>
        <Item typeMapping="Taxonomy" cached="true" storageId="defaultdb"/>
        <Item typeMapping="Timeframe" cached="true" storageId="defaultFile"/>
        <Item typeMapping="TrackedPage" cached="true" storageId="defaultFile"/>
        <Item typeMapping="XSLT" cached="true" storageId="defaultFile"/>
        <Item typeMapping="ExtensionData" cached="true" storageId="defaultdb"/>
        -->
        <!-- UGC -->
        <!--
            <Item typeMapping="Comment" storageId="ugcdb"/>
        <Item typeMapping="Rating" storageId="ugcdb"/>
        <Item typeMapping="UGCUser" storageId="ugcdb"/>
        <Item typeMapping="UGCItemStats" storageId="ugcdb"/>
        -->         
    <!--
    </Publication>
    -->
</ItemTypes>

<!-- Specifies the location of the license file. -->

<License Location="D:\Tridion\License\cd_licenses.xml"/>

3
  • can you share some more details on how you access the website from a UNC path and how your cd_storage_conf.xml and cd_dynamic_conf.xml are setup? May 28, 2015 at 10:25
  • In IIS we have given the path as \\Servername\Foldername. We have Tridion_Home directory set in D drive and there we kept all the config and lib file. Is there any way I can share those config file with you for your reference? May 28, 2015 at 10:48
  • you can EDIT your question and copy the relevant parts of the files in there. don't blindly share everything as that contains passwords and server details which are not for our eyes, nor are they interesting. May 28, 2015 at 11:38

3 Answers 3

2

Your configuration specifies a database source, but the stacktrace (the 'FS' stands for filesystem) indicates it tries to use the filesystem. I've only ever seen this behaviour when there is a license error - it refuses to load the database DAO's and therefor it uses the filesystem instead. It would show this if your logging is sufficiently low during the startup of content delivery in the logs. Could you check your license?

1

hi there Tridion_Learner,

this error seems to be configuration related, you might need to enable the Query item type in the cd_storage_conf.xml, as follows:

Item typeMapping="Query" storageId="defaultdb"

2
  • Hi Roli, thanks for your comment. I have pasted the config file for reference. Please suggest May 28, 2015 at 12:38
  • hi tridion_learner, maybe you need to change the logging level to debug, because if it is license related as Rogier points out, it will certainly be showing that in the cd_core.log.
    – Roli
    May 29, 2015 at 13:47
0

Maybe a longshot but:

In IIS we have given the path as \Servername\Foldername. We have Tridion_Home directory set in D drive and there we kept all the config and lib file

The config files are (for .Net web applications) located in the bin\config subfolder of the website root; in your case on \\Servername\Foldername\bin\config.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.