Wednesday, 24 July 2013

Tridion Broker Query


In this blog post I am going to show you how you can easily create a broker query with various kinds of criteria specified. I will be using Tridion 2013 and Visual Studio 2010 in this case.

In my example I have a .NET user control, which is placed inside a Frontend project. Its goal is to list all the components from Tridion that are using a certain schema.

First of all, let’s start with the user control. Here is how mine looks like:

ucListItems.ascx

We create an unordered list and inside of it, is where the magic is going to happen. There we make a Repeater which will bind all the results from the query. These are going to be returned as list items, containing all the information, with the help of a Component Template.

Now let’s go to the code behind of this control and start with the main implementation that is the topic of the blog post. I am explaining everything with comments inside the code block bellow:

ucLatestNews.ascx.cs

That’s it! Now we are ready to get all the components with schema, which we specified by its id, and display these as we wish. You can go on and give it a try.

Please, don't forget to:

  • add the user control to a page where you want to display the components
  • make sure that the components are published
  • make sure you have the right Tridion DLLs (netrtsn, Tridion.ContentDelivery.Configuration, Tridion.ContentDelivery, Tridion.ContentDelivery.Interop, xmogrt). It is imporant to have these in 32-bit or 64-bit depending on your project
  • make sure you have all the JARs from Tridion
  • make sure you have configured correctly the config files of Tridion
I hope you like the article and find it useful and interesting. If you have any questions, please do not hesitate to contact me.

Tuesday, 16 April 2013

Experience Manager, I like you

So, last week I was playing around with the Experience Manager (XPM) in Tridion 2013. I've heard that they change the name of the feature with every new release of Tridion. It is like a mystery to me why do they do that...

It seems like a very powerful tool and I actually like it a lot. I can already see how useful it can be on a real project (I just tried it on a test project with learning purposes). XPM is very straightforward and in my opinion easy to use. You just need some practice and in no time you will be able to use it "like a boss".

Apart from the good first impression, I had a little painful experience with the XPM. It was caused by the slow performance it had. This bad performance should be caused by our server and I refuse to accuse XPM for it. So, our team decided to make some improvements on the server and to test how it works. The results will be ready soon and hopefully we will be able to bring faster performance.

There was only one feature that I wasn't able to successfully use. I read that you can easily drag-and-drop an image from your file system inside Tridion CME (the side pannel with images that pops up) and it will upload the image for you. I've tried everything but without any result. It might be that the problem is on my side, I didn't have enough time to investigate it. Anyway, it still is very easy to upload and image with like 2-3 more clicks of your mouse button.

In conclusion, the Experience Manager can be awesome if it works fast enough (which I believe will happen with the improvements of the server). It saves time, it's easy to use, it's very user-friendly and powerful.

Friday, 5 April 2013

Misspelled server name = Internal server error = many hours lost

Today I was working with Experience Manager (XPM). I thought that everything was configured well and the Manager should have worked properly.

When I performed the final test with a Hello World page at the end of the whole installation/configuration procedure, I ended up with a painful "Internal server error". And it wasn't enough, but it was also happening randomly, which made it harder to track it.

After looong hours in headbanging and stress (I am used to receiving run-time or compile errors, which is not the case here), I found out that I misspelled the server name in one of my cd_storage_conf.xml file. After that I copied that file and used it for my Experience Manager Web Service, so I had the wrong server name twice. After the corrections, it started working as expected and there was no "Internal server error" any more.

In conclusion, I will always pay more attention to what I write in the configuration files. Five minutes of rewriting configurations might save like a day of troubles...

Wednesday, 3 April 2013

"Throttled" problem when publishing

Yesterday I succeeded in installing SDL Tridion 2013. So today I wanted to proceed with installing and configuring the Experience Manager and start using it.

At first I went to the 2013 live documentation and saw that there is a great video explaining the whole process of XPM installation. However, the documentation recommended to verify that we have a fully-functioning SDL Tridion Content Manager and Content Delivery system. That's why I got back to the previous video about installing SDL Tridion 2013. I have already installed the Content Manager but proceeded with Content Delivery. I followed the video (which is really descriptive and clear) and finished everything. The final step was to publish a "Hello World" page and when I published I got the "Throttled" state in the Publishing Queue.

We've tried to fix this by making some more configurations on IIS, the server itself, restarting services, etc. Unfortunately, none of these fixed the problem.

After that I started going through the Content Delivery prerequisites and everything was fine there as well. Then I went through the whole step by step guide for Installing the Content Deployer (HTTP or HTTPS) as a .NET Web application. This is also very descriptive and well-written and I made sure that we haven't missed any of the steps. Unfortunately, this did't fix the problem as well.

Then I searched for "Throttled" in the live documentation and ended up reading an article called "If the Publishing Queue shows the item stuck at 'Throttled'". Here I found some advices on how to fix our problem. I went to the file and increased the number of workers, increased the window size and made the Transport Priority Pool Size equal to 0 (this will allow unlimited amount of parallel transports to take place).

 <Workers NormalPriorityPoolSize="50" HighPriorityPoolSize="50" TransportPriorityPoolSize="0"/>

I thought that is going to resolve the issue but I was wrong...

At the end, without knowing how, I ended up looking at meta.xml that was located in my Queue location. And there I saw what the problem was in our case.

We had this information inside meta.xml:

<deployer-meta><windowsize>20</windowsize></deployer-meta>

I thought that this value is coming from my deployer config file but I changed the value there, then restarted the web site, restarted the services, etc., and when I looked again the value in the meta.xml wasn't changed.

So as a next step I changed the value in the meta file to 50, restarted everything again, and gave it a shot. TA-DA! Success! That fixed the problem for us and I was able to publish and unpublish now, without any "Throttled" states.

Tomorrow I continue with the Experience Manager and hopefully I won't have irritating problems this time.

SDL Tridion 2013 Installation video - http://sdllivecontent.sdl.com/LiveContent/web/pub.xql?action=home&pub=SDL_Tridion_2013&lang=en-US#addHistory=true&filename=QG_InstallingSDLTridion.xml&docid=task_87FEA81A00E14C61A8F8E992164F0006&inner_id=&tid=&query=&scope=&resource=&eventType=lcContent.loadDoctask_87FEA81A00E14C61A8F8E992164F0006



Installing the Content Deployer (HTTP or HTTPS) as a .NET Web application - http://sdllivecontent.sdl.com/LiveContent/web/pub.xql?action=home&pub=SDL_Tridion_2013&lang=en-US#addHistory=true&filename=InstallingHTTPUploadSoftware_iis.xml&docid=task_663JDNNNDHDH889595JDJDJD&inner_id=&tid=&query=&scope=&resource=&eventType=lcContent.loadDoctask_663JDNNNDHDH889595JDJDJD



If the Publishing Queue shows the item stuck at 'Throttled' - http://sdllivecontent.sdl.com/LiveContent/web/pub.xql?action=home&pub=SDL_Tridion_2013&lang=en-US#addHistory=true&filename=TS_IfPubThrottled.xml&docid=concept_AB39F6665A544BB8BB19C5738912E663&inner_id=&tid=281afc19-bb67-4bb5-8773-ff8333a6d200&query=throttled&scope=&resource=&eventType=lcContent.loadDocconcept_AB39F6665A544BB8BB19C5738912E663&url=/LiveContent/web/search.xql%3Fc%3Dt%26pub%3DSDL_Tridion_2013%26lang%3Den-US%26action%3Dsearch%26query%3Dthrottled&sid=lcSearch.runSearch1364915601088&currentQuery=throttled&currentScope=

Friday, 29 March 2013

First experience with Tridion

The newest member of the Tridion community says "Hello" to all of you.

My name is Stefan Shumanov, 23, from Sofia, Bulgaria. Young, motivated and sociable.

My Tridion journey started this Monday, as I joined Robert Curlette (http://www.curlette.com/) and his team. So I am still at the very beginning.

At first I felt very confused using Tridion because it was so different from everything that I've done before. My brain was full of new information and it wasn't capable of remembering and understanding everything. It was so crazy the first two days...

Then in Wednesday, I started to clear my vision. I was working mainly on templates and started making difference between page, component and compound templates. I was mainly using Dreamweaver templates but Robert also introduced me briefly to .Net and Razor TBBs.

The fourth day was even better in my opinion and according to what I felt. I've started using the Tridion interface much more freely, same with the Template Builder. I've also succeeded in installing and extension on the server and finally test what I was working on. I even managed to solve an exception and after that a layout problem on my page. This made me feel a bit more confident.

Today will be my last day of my first week using Tridion and I am waiting to see what challenges I will have during the day. One thing is sure, it is going to be an interesting experience once more.

Sincerely,
Stefan Shumanov