1

Our Tridion 2011 Content Manager is working correctly. The Pages and components are being published by the deployer to the IIS folder without any problems. This Tridion is running on a Windows server 2008. But, there is a small issue, the content is not being stored in the Tridion_Broker database.

I went through every step in the Tridion 2011 Manuals, I double checked every configuration on my cd_storage_conf.xml file, and can't see something incorrect. I also verified that the user assigned to the Database has enough write permissions in the SQL Server. Publish and republish and nothing. Attached is a copy of my cd_storage_conf.xml.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration Version="6.1"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="schemas/cd_storage_conf.xsd">
  <Global>
    <ObjectCache Enabled="false">
     <Policy Type="LRU" Class="com.tridion.cache.LRUPolicy">
        <Param Name="MemSize" Value="16mb"/>
      </Policy>
     <Features>
        <Feature Type="DependencyTracker" Class="com.tridion.cache.DependencyTracker"/>
      </Features> 
    </ObjectCache>       
    <Storages>  
      <SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.meta.MsSqlSearchFilterHome" defaultStorageId="BrokerDB"/>
      <Storage Type="persistence" Id="BrokerDB" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
        <Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
        <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
          <Property Name="serverName" Value="myserver" />
          <Property Name="portNumber" Value="1433" />
          <Property Name="databaseName" Value="Tridion_Broker" />
          <Property Name="user" Value="TridionBrokerUser" />
          <Property Name="password" Value="*******" />
        </DataSource>
      </Storage>

      <!-- Default -->
      <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="FS" defaultFilesystem="true">
        <Root Path="D:\IIS\wwwroot\" />
      </Storage>    

      <!-- Pub 32 -->
      <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="newNLFS" defaultFilesystem="false">
        <Root Path="D:\IIS\pub32\" />
      </Storage>
      <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="newNLFSBroker" defaultFilesystem="false">
        <Root Path="D:\IIS\pub32\dcp\" />
      </Storage>    
    </Storages>
  </Global>
  <ItemTypes defaultStorageId="BrokerDB" cached="false">
    <Item typeMapping="Query" storageId="BrokerDB" cached="false"/>
    <Item typeMapping="ComponentPresentation" itemExtension=".Xml" storageId="BrokerDB" />
    <Item typeMapping="ComponentPresentation" itemExtension=".Txt" storageId="BrokerDB" />
    <Item typeMapping="BinaryMeta" cached="true" storageId="BrokerDB" />
    <Item typeMapping="ComponentLinkClick" cached="true" storageId="BrokerDB" />
    <Item typeMapping="ComponentMeta" cached="true" storageId="BrokerDB" />
    <Item typeMapping="ComponentPresentationMeta" cached="true" storageId="BrokerDB" />
    <Item typeMapping="ComponentVisit" cached="true" storageId="BrokerDB" />
    <Item typeMapping="DynamicLinkInfo" cached="true" storageId="BrokerDB" />
    <Item typeMapping="ItemMeta" cached="true" storageId="BrokerDB" />
    <Item typeMapping="LinkInfo" cached="true" storageId="BrokerDB" />
    <Item typeMapping="PageMeta" cached="true" storageId="BrokerDB" />
    <Item typeMapping="Personalization" cached="true" storageId="BrokerDB" />
    <Item typeMapping="Reference" storageId="BrokerDB" />
    <Item typeMapping="Schema" storageId="BrokerDB" />
    <Item typeMapping="SearchFilter" cached="true" storageId="BrokerDB" />
    <Item typeMapping="Taxonomy" cached="true" storageId="BrokerDB" />
    <Item typeMapping="Timeframe" cached="true" storageId="BrokerDB" />
    <Item typeMapping="TrackedPage" cached="true" storageId="BrokerDB" />
    <Item typeMapping="XSLT" cached="true" storageId="BrokerDB" />
    <Item typeMapping="Publication" cached="true" storageId="BrokerDB" />

    <Publication Id="32" defaultStorageId="BrokerDB" cached="false">
      <Item typeMapping="Binary" storageId="newNLFS" cached="false" />
      <Item typeMapping="Page" storageId="newNLFS" cached="false" />
      <Item typeMapping="ComponentPresentation" itemExtension=".Ascx" storageId="newNLFSBroker" />
      <Item typeMapping="BinaryVariant" cached="true" storageId="newNLFS" />
      <Item typeMapping="Binary" itemExtension=".pdf" storageId="newNLFS" cached="true" />
    </Publication>
  </ItemTypes>    
</Configuration>

UPDATE

Ok. So now, the Deployer is Publishing into the SQL Database after a missing licenses.xml file was placed in the Deployer config folder. Now, I would like to have the content in the Broker but at the same time in the IIS folder. The reason is because I need to use oData services.

6
  • You seem to have an orphan end comment in the middle (-->). Is that in the actual file or was that a mistake when posting it here on Stack Exchange? Also, the storageIds for Publication 32 do not exist ("newNLFS", "newNLFSBroker"). Have you already checked the log files? I'd expect to see some errors in there... Aug 29, 2016 at 13:44
  • Thanks, yes indeed the orphan end comment was a left over when cleaning the code to post it here. I also added the missing storageIds for Pub32. I currently don't have an error from cd_core in the logs. I did have an error from cd_core in the logs saying: No Data Access Object Factory for BrokerDB. But when I used the login credentials I have in my cd_storage_conf.xml I was able to open the Broker database in Visual Studio without any problem. I granted all rights to the user accessing the Broker. This error seemed to be old now.
    – user1931
    Aug 29, 2016 at 14:06
  • 1
    So are you publishing to Publication 32? Or something else? Because it seems that everything goes to the database for the other Publications, but you are describing the opposite problem (exists on file system, not in database) Aug 29, 2016 at 14:28
  • Everything is going to the database for the other Publications? In this configuration file am publishing Publication 32 only in the File System. If I want Pub 32 to go to the database do I have to remove the Publication tag settings?
    – user1931
    Aug 29, 2016 at 14:35
  • You cannot publish to DB AND FileSystem in the same deployer, you need a separate deployer for that.
    – Nuno Linhares
    Aug 30, 2016 at 13:32

2 Answers 2

0

Your question is not entirely complete I think, in that case, please edit your question and supply the missing detail, so you can get better answers. But I'll base my answer on what you have supplied:

You mention: "Pages and Components are being published by the Deployer to the IIS folder without any problems.", and you also mention: "the content is not being stored in the Tridion_Broker database.".

Looking at your cd_storage_conf.xml we can say the following:

  1. there is a database configured (Storage Type="persistence" Id="BrokerDB")
  2. the defaultStorageId is pointing to the Broker database
  3. there are additional type mappings specified, which also all point to the Broker database (note this is unnecessary duplication)
  4. there is an exception made for Publication with the ID 32, with default storare to the Broker database, and additional type mappings pointing to filesystem storage

The information I'm missing is if you really want everthing to be deployed to the Broker database, or if there are exceptions and you also need something deployed to the filesystem. But since you mention "the content" is not being stored in the Tridion_Broker database, I'll assume you want everything to be stored in the Broker database. So I would suggest you modify your cd_storage_conf.xml and remove all the exceptions:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration Version="6.1"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="schemas/cd_storage_conf.xsd">
  <Global>
    <ObjectCache Enabled="false">
      <Policy Type="LRU" Class="com.tridion.cache.LRUPolicy">
        <Param Name="MemSize" Value="16mb"/>
      </Policy>
      <Features>
        <Feature Type="DependencyTracker" Class="com.tridion.cache.DependencyTracker"/>
      </Features> 
    </ObjectCache>       
    <Storages>  
      <SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.meta.MsSqlSearchFilterHome" defaultStorageId="BrokerDB"/>
      <Storage Type="persistence" Id="BrokerDB" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
        <Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
        <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
          <Property Name="serverName" Value="myserver" />
          <Property Name="portNumber" Value="1433" />
          <Property Name="databaseName" Value="Tridion_Broker" />
          <Property Name="user" Value="TridionBrokerUser" />
          <Property Name="password" Value="*******" />
        </DataSource>
      </Storage>
    </Storages>
  </Global>
  <ItemTypes defaultStorageId="BrokerDB" cached="false">
  </ItemTypes>    
</Configuration>

Remember to restart your deployer after this change and also to update the cd_storage_conf.xml on the web application side, to contain a similar setup. Last you will want to republish all your content, to make sure everything is ending up in the right location (the Broker database in this case).

5
  • Thanks. Your assumptions were spot on. I removed all the exceptions and now the error I get is "Phase: Deployment Processing Phase failed, Could not deploy page [Page id=tcm:32-9392-64 Title=My Page], No Data Access Object Factory for BrokerDB. This exception is thrown if the license is not valid, not present or expired and the default filesystem storage is not defined" which makes it look like the user credentials are incorrect or the license file is invalid. I double checked DB credentials in Visual Studio and I get 'Test connection Succeded' and license is valid. What am I missing?
    – user1931
    Aug 30, 2016 at 8:02
  • @mistervela Looks like a license issue indeed, either the license file cannot be found or there is something incorrect in there. You can try specifying the location of the license file <License Location="c:/your/path/to/cd_licenses.xml"/> in cd_storage_conf.xml, if that doesn't help, it's probably best to contact Customer Support and have them check the license file for you. Aug 30, 2016 at 9:05
  • This is embarrassing. The license is valid but it was not placed in the bib/config folder of the deployer, it was placed only in the /bin/config folder of the website. Now it works. Now it is storing the content in the Database but not in the IIS folder like before. What do I change?
    – user1931
    Aug 30, 2016 at 9:42
  • @mistervela now it is time that you edit your question and make your exact requirements clear. Please edit the question with an update on what you really need where. Explain what data you need in the database (and why) and what data you need in "the IIS folder" (and why) and what that folder exactly is to you/your application. Aug 30, 2016 at 9:49
  • I updated the question. I want to publish to the Broker to be able to use oData webservice and to the IIS folder to run the website. Is it the standard to publish just to one of these?
    – user1931
    Aug 30, 2016 at 10:41
0

You have mentioned publication specific bindings which would be applicable to only 32 publication. You have also configured pages to go on file-system for this publication. so all pages of 32 are getting successfully publish to FS.

  • Update the storageId to brokerdb for page mapping<Item typeMapping="Page" storageId="brokerdb" cached="false" />
  • Check if other items mention under 32 also needs to be publish to DB then update storageId of those as well.
  • if your all publication will have same publish setting you can just remove the outer publication tag and keep inner nodes after updating with above mentioned steps
4
  • Thanks, this didn't work though. Something is wrong connecting to the SQL DB. I replied to Bart above. ;-)
    – user1931
    Aug 30, 2016 at 8:03
  • do you have sqljdbc4.jar in your bin\lib folder?
    – Raj Kumar
    Aug 30, 2016 at 8:07
  • Yes, it's there, both in the deployer folder and in the website folder.
    – user1931
    Aug 30, 2016 at 8:17
  • also double check your libs and dlls are 32 or 64 bit depending upon your system, if there is mix or incorrect. it may not work. Check machine name and no of CPU mentioned in license match with your machine name and cpu in system. also expiry of license
    – Raj Kumar
    Aug 30, 2016 at 8:23

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.