Configure and Understand Dedicated Worker and Publisher Queues James Kerkstra Sr. Application Engineer/Windchill System Administrator Jamie Lynn Momber Application Engineer/Windchill System Administrator Tuesday, June 11, 2013 Configure and Understand Dedicated Worker and Publisher Queues Steelcase Inc. • Global leader in the office furniture industry with insight-based solutions that improve work performance. • Based in Grand Rapids, MI • 12,000 employees around the world, 6,000 in the US • http://www.steelcase.com 2 Configure and Understand Dedicated Worker and Publisher Queues Agenda • Steelcase Windchill environment and configuration • Out of the box publishing woes • Steelcase configuration of dedicated Publisher Queues • Step by step walkthrough • Video demo • Question and Answers 3 Configure and Understand Dedicated Worker and Publisher Queues Steelcase Windchill Environment • Master ( Grand Rapids, MI) – 3 servers in a cluster ( HPUX ) – 3 CADWorkers ( Windows 2008 server) • Replica Servers – – – – – – – 2 US 1 Mexico 2 Kuala Lumpur 1 China 3 France 2 Germany 1 Spain • About 450 Windchill users world wide 4 Configure and Understand Dedicated Worker and Publisher Queues Out of the Box Publishing PublisherQueueL 5 4 3 2 1 PublisherQueue1 PROE Worker 2 3 PublisherQueueM 6 PublisherQueue2 PublisherQueueH PROE Worker 6 1 5 Configure and Understand Dedicated Worker and Publisher Queues Problem1: Not so Instant Gratification PublisherQueueL 5 4 3 2 1 PublisherQueue1 PROE Worker 2 PublisherQueueM 6 PublisherQueue2 PublisherQueueH PROE Worker 1 6 Configure and Understand Dedicated Worker and Publisher Queues Problem 2: CADWorker Wipeout! • Issues with CADWorkers hanging indefinitely… • ______ • P–X–Y–R -T ….keeps a worker from processing requests… …causes a traffic jam of requests… …and forced us to implement a timeout of 15 minutes. 7 Configure and Understand Dedicated Worker and Publisher Queues Setting Timeout in CADWorker Recipe File 8 Configure and Understand Dedicated Worker and Publisher Queues Problem 3: Large Assembly Mess! 15 minute timeout + Large Assembly SAD, DISTRUSTING USERS 9 Configure and Understand Dedicated Worker and Publisher Queues Problem 4: Large Family Tables • Viewable created for each family table instance • Assembly instances can take a long time to generate 163 instances 12 minutes 3 gerbils CADWorkers ~11 hours 10 Configure and Understand Dedicated Worker and Publisher Queues Our Solution • Create dedicated queue set for large assemblies • Benefits – Set a higher timeout for larger jobs – Retain a lower timeout for smaller jobs – Manual jobs don’t wait so long for larger jobs 11 Configure and Understand Dedicated Worker and Publisher Queues Solution in Motion PublisherQueueL PublisherQueue1 PROE Worker 1 PublisherQueueM PublisherQueue2 PROE Worker 5 4 3 2 1 6 FILTER PublisherQueueH 6 3 2 PublisherQueueSUPERL PublisherQueueSUPERM PublisherQueueSUPER1 PROE Worker 4 PublisherQueueSUPERH 12 Configure and Understand Dedicated Worker and Publisher Queues DIY Publisher Configuration 1. Create a dedicated Publisher Queue set 2. Create Worker set 3. Map worker sets to Publisher Queue sets 4. Create filter to route jobs to dedicated Publisher Queue set 5. Configure Windchill to use filter method 6. Add a site level preference (optional) 13 Configure and Understand Dedicated Worker and Publisher Queues Create a dedicated Publisher Queue set • Add properties to wvs.properties and wt.properties – publish.publishqueue.setnames=SUPER – wt.queue.max.processQueues=<number large enough for MS to start> – wt.queue.removeCompleted.PublisherQueueSUPER1=false PublisherQueueSUPERL PublisherQueueSUPERM PublisherQueueSUPER1 PublisherQueueSUPERH 14 Configure and Understand Dedicated Worker and Publisher Queues Create Worker Set worker set: DEFAULT • Worker Set – Logical grouping of workers PROE Worker • Add queueset property in agent.ini file PROE Worker PublisherQueueSUPERL PublisherQueueSUPERM PublisherQueueSUPER1 PROE Worker PublisherQueueSUPERH worker set: SUPER 15 Configure and Understand Dedicated Worker and Publisher Queues Map worker sets to Publisher Queue sets worker set: DEFAULT • Can be accomplished with a wvs property OR a custom method PublisherQueueSUPERL PublisherQueueSUPERM PROE Worker PROE Worker FILTER – publish.publishqueue.usesetworkers.forqueueset.SUPER=PROE – public static String methodname(Persistable d, String workerType, String fileName, String queuePriority, String queueSet) { return workerset_to_use; } PublisherQueueSUPER1 PROE Worker PublisherQueueSUPERH worker set: SUPER 16 Configure and Understand Dedicated Worker and Publisher Queues Create filter to route jobs to dedicated Publisher Queue set worker set: DEFAULT • Create custom method PROE Worker – public static String[ ] methodname(Persistable p, int requestType, int requestSource,String requestPriority, String requestSet, String repName, String repDescription) FILTER PROE Worker PublisherQueueSUPERL PublisherQueueSUPERM PublisherQueueSUPER1 PROE Worker PublisherQueueSUPERH worker set: SUPER 17 Configure and Understand Dedicated Worker and Publisher Queues Create filter to route jobs to dedicated Publisher Queue set (cont.) • Create custom method – public static String[ ] methodname(Persistable p, int requestType, int requestSource,String requestPriority, String requestSet, String repName, String repDescription) Persistable p is the object being published int requestType is the publish job request type int requestSource is the publish job request source String requestPriority is the priority specified on the request String requestSet is the Publish Queue Set for the request String repName is the passed Representation name String repDescription is the current Representation description – Return String array with the following values Return Array [0]: Publisher Queue Priority "H", "M" or "L" Return Array [1]: Publisher Queue Set Return Array [2]: Representation name to create Return Array [3]: Representation description to created 18 Configure and Understand Dedicated Worker and Publisher Queues Configure Windchill to use filter method worker set: DEFAULT • Create custom method PROE Worker – public static String[ ] methodname(Persistable p, int requestType, int requestSource,String requestPriority, String requestSet, String repName, String repDescription) – Set wvs property to call method FILTER • publish.publishqueue.priorities.filtermethod=<Class>/<Method> • com.steelcase.wvs.server.filter.WindchillQueueSetFilter/SteelcaseQueueSetFilter PROE Worker PublisherQueueSUPERL PublisherQueueSUPERM PublisherQueueSUPER1 PROE Worker PublisherQueueSUPERH worker set: SUPER 19 Configure and Understand Dedicated Worker and Publisher Queues Final State PublisherQueueL PublisherQueue1 PROE Worker 1 PublisherQueueM PublisherQueue2 PROE Worker 5 4 3 2 1 6 FILTER PublisherQueueH 6 3 2 PublisherQueueSUPERL PublisherQueueSUPERM PublisherQueueSUPER1 PROE Worker 4 PublisherQueueSUPERH 20 Configure and Understand Dedicated Worker and Publisher Queues SUPER Queue Preference • Threshold for assembly size – Available in our Java calls – No restart required 21 Configure and Understand Dedicated Worker and Publisher Queues Adding A Preference • Step 1 – Create rbinfo file to add strings for the preference names. 22 Configure and Understand Dedicated Worker and Publisher Queues Adding A Preference - continued • Step 2 – Create xml file to fully describe the preference definition. 23 Configure and Understand Dedicated Worker and Publisher Queues Adding A Preference - continued • Step 3 – from <Windchill Home>/bin – ./ResourceBuild.sh <resource bundle class path> – ( for example com.steelcase.pref.steelcasePreferenceResource ) • Step 4 – RESTART WINDCHILL • Step 5 – windchill wt.load.LoadFromFile –d <xml file path> – ( for example /opt/ptc/WC01/Windchill_10.1/Windchill/src/com/steelcase/pref/createSUPERQueueThreshold.x ml ) 24 Configure and Understand Dedicated Worker and Publisher Queues References • Windchill Visualization Services Guide • Windchill Customization Guide • Q1 FY13 Platinum Webcast - Dedicated WVS Publisher Queues & Workers 25 liveglobal.ptc.com