Friday, February 28, 2014
SDL Tridion 2013 SP1 - How to Setup a 2nd Broker
Saturday, February 8, 2014
Quick Check List for SDL Tridion 2011 SP1 Personalization and Profiling Setups
1. Check the Target Publishing Language in the Publication Target is dynamic (JSP/ASP/REL)
2. Check the cd_deployer_conf.xml file includes TCDLTransformer class, for PageDeploy for example
3. Update the cd_storage_conf.xml (or cd_broker_conf.xml if still using that) to enable Item Types for the elements you want to track (eg. PageTracked, Timeframe etc)
4. Update the cd_wai_conf.xml to represent your website and settings for your personalization and profiling requirements such as host, cookies, tracking info
5. Update the web.config to support the httpModule TridionWAIHttpModule
6. Restart Content Delivery services and web servers for changes to take place
6. Proceed to enable item tracking such as Component and Page Template tracking in the CMS using template building blocks
7. Check if tracking is working after publishing your changes from the CMS by viewing content from a browser
8. Continue to implement personalization and profiling requirements using CMS functionality and API calls and test they function as expected after publishing and viewing pages from a browser
Additional references for Personalization and Profiling can be found below.
http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/reference_CD033408F5CD4A119BDA616851A10B3F
Setting up P&P (WAI) for a .NET application
http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/task_FF19F86A63E246F793D64495849EDEDF
http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/idheading-158522992
Reference API:
http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/pp_concept_B72F4D64713F4682B61C838A013DF8F8
Thursday, January 30, 2014
Tips for Troubleshooting the SDL Tridion Transport Service
* Local file
The following information was included with the event:
Could not load Java runtime libraries at C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll"
2. Does the java version installed match the version required by the specific SDL Tridion version installed?
<KeyStore Path="c:\mydir\myks.keystore" Secret="mypassword" />
</Sender>
Sunday, January 12, 2014
7 Things I bet You Didn't Know about Experience Manager
<Wrappers>
<Wrapper Name="SessionWrapper">e
<Timeout>60000</Timeout>
<Storage Type="persistence" Id="db-session" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
<Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
Tuesday, October 8, 2013
Under the Magnifying Glass - Cache Channel Service Troubleshooting Steps
- First off, be clear on what type of CCS is installed, Windows service or Java process? Then check documentation for configuration and correct installation steps
- Is CCS running? Test it with telnet.
- Telnet 127.0.0.1 1099
- If the service is running, you should get a blank screen
- If the service is not running: you will likely see the following "Could not open connection to the host, on port 1099: Connect failed"
- Always restart the Cache Channel service before restarting the Broker / Deployer
- Is CCS communicating on the same port as the Deployer and Website Cache? Think of it as people trying to call each other on different phone numbers! If it doesn't match, that call is not going to happen..
- In Windows, check that the registry key HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Service->TCDCacheService shows the port, otherwise, the CCS is running on default port 1099
- Is CCS running in a 64-bit JVM (as it is a 64 bit windows service)
- What about that RMIChannel setting? In principle, in RMI, the first party, in our case the Cache Channel Service will open a socket to listen to incoming requests on a specific port. If a request is received (such as from the Deployer/Website), a different port is used to initiate and respond to it. This other port is typically chosen by the underlying operating system from a fairly large range available, which may be problematic in environments with firewalls holding a tight control on what ports are made available*. It is possible however to exert tighter control on this, by using a combination of configuration settings and programming applied when the (web) application starts.
- Set <RMIChannel Port="xyzt"> on all Tridion configuration files where the setting is available
- In Java, set com.tridion.util.TridionRMISocketFactory.setRMIChannelListener(listenerPort);
- In .NET, set Com.Tridion.Util.TridionRMISocketFactory.SetRMIChannelListener(listenerPort)
- Check firewalls, windows and custom software, are any ports blocked by firewalls?
- Restart CCS - simple but may be just as effective in applying recent configuration changes. If running it as a Windows service, stop and start the service. If running it as a process, try the following** (change CCS path if yours is different):
- > cd opt/tridion/cds/common/scripts
- > ls -la
- > ./start_ccs.sh stop
- > ./start_ccs.sh start
- > ./start_ccs.sh status
- Try using 'localhost' if all parties are on the same machine
- Check cd_core logs from Deployer, web application, CCS (if running in its own jvm and therefore creating own logs)
- In logs, check communication from each party to see if the Deployer wrote notifications as well as if the application received notifications, good reference on SDL Tridion World***
- Run netstat -a from the command prompt to get a list of all active connections the computer is listening too (including TCP and UDP ports) then check if the ports you are using are open
- Google the errors seen in the logs, there may be explanations outside of Tridion!
- Check other Content Delivery settings in the documentation to take advantage of some pretty nifty settings the cache is capable of like the "FlushCacheDuringDisconnectInterval" which can be used to control the behavior of the cache even when disconnected (keep items in cache or flush on first disconnect)
*** http://www.sdltridionworld.com/articles/sdltridion2011/analyzing_object_cache.aspx
Sunday, March 31, 2013
SDL Tridion 2011 SP1 - Bypass first workflow activity
In SDL Tridion 2011 (and 2009), all items starting workflow automatically enter a manual activity assigned to everyone with the intent of handling or better yet locking any editing or update henceforth. *
As useful and purposeful as this action was, inevitably, I would always get the following question: "This is great! Now, how can we bypass it?"
Seeing as there are indeed reasons to bypass the first activity, for example if there is a need to introduce a decision activity for logic to direct flow of user actions differently based on some criteria, below is some code that will accomplish this from an Event System.
public class TestFastForward : TcmExtension {
public TestFastForward() {
//EventSystem.Subscribe
Sunday, February 17, 2013
Easy Breezy SDL Tridion 2011 CoreService Setup
1. Create .NET console application
- File - New - Project
2. Add references
C:\Program Files\Tridion\bin\client\
- Tridion.ContentManager.CoreService.Client.dll
- (.NET) System.ServiceModel.dll
- (.NET) System.Runtime.Serialization.dll
3. Add namespaces
- using Tridion.ContentManager.CoreService.Client;
4. Copy CoreService configuration
- Tridion.ContentManager.CoreService.Client.dll.config
to application configuration file
- App.config (Project - Add New Item - Application Configuration File)
5. Connect the client using a specific binding
SessionAwareCoreServiceClient client = new SessionAwareCoreServiceClient("netTcp_2011");
6. Code away..
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tridion.ContentManager.CoreService.Client;
namespace CoreServiceApp
{
class Program
{
static void Main(string[] args)
{
SessionAwareCoreServiceClient coreServiceClient = new SessionAwareCoreServiceClient("netTcp_2011");
Console.Write("Connected to CoreService with user " + coreServiceClient.GetCurrentUser().Title + " in session " + coreServiceClient.GetSessionId());
//code..
coreServiceClient.Close();
}
}
}