1

In our scenario, We have Publisher servers separate from CM servers. I want to capture publishing state for each transaction. For this purpose, I am subscribing to the event

EventSystem.Subscribe<PublishTransaction, SetPublishStateEventArgs>(OnPublishStatus, EventPhases.TransactionCommitted);

However, event is not getting triggered.

I have tried following:

  1. Deployed the event system dll on CM server, then event was initialized however never invoked. However, while going through Tridion documentation, understood that I might have to deploy it on publisher.
  2. Deployed the event system dll on publisher, the event is not even getting initialized.

Please suggest.

  • Did you enable/configure the dll in the TridionContentManagerConfig XML on the Publisher? – Nickoli Roussakov Apr 30 '15 at 3:59
  • Yes, I updated tridioncontentmanger config XML for the event system. – Hiren Kaku Apr 30 '15 at 5:00
  • 1
    I have edited your question to use a code block, please read up on the FAQ how you can format your question correctly so everything is readable, when you try to use < and > be sure to place that in a code block and not in a quote block, since then those characters will be hidden – Bart Koopman Apr 30 '15 at 8:39
2

Event Handlers have to be deployed on all your CM servers and Publisher servers (since they are basically just a copy of a CM server), plus they have to be registered in all the Tridion.ContentManager.config files on each of the servers.

If you can't see the event being initialized, you will probabaly want to try to debug it. You can connect the debugger to the following processes:

  • TcmServiceHost.exe
  • TcmPublisher.exe
  • dllhst3g.exe (the one running under the MTSUser identity)
  • w3wp.exe

The last process is to connect to the UI basically. If you connect the debugger to all of these processes at the same time, you are sure to catch all possible triggered events.

I think the combination <PublishTransaction, SetPublishStateEventArgs> might indeed never be triggered though, since a PublishTransaction is only the container of the item(s) that need to be published. While SetPublishStateEventArgs belongs to either a Page or a dynamic Component Presentation.

If you would for instance trigger on <RepositoryLocalObject, SetPublishStateEventArgs> you will definitely see a result for every published (and unpublished) item (note that this is quite a large set of items you are triggering on, so for performance reasons you might want to narrow the scope by choosing the exact item you are interested in).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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