Presentation is loading. Please wait.

Presentation is loading. Please wait.

Queue management techniques

Similar presentations


Presentation on theme: "Queue management techniques"— Presentation transcript:

1 Queue management techniques
Ken Hicks – Lockheed Martin Matt McGuire - Raytheon 6/11/2016

2 Agenda Know your queues Predict or identify problematic queues
How to distribute queues Can I make a custom queue? Helpful links 6/11/2016

3 Know your queues Queues run background processes
Windchill has many that perform background, not immediate to the user operations A few common system impactful ones: PublisherQueue – used to manage jobs to visualize data WfPropagationQueue – used to run workflow/process expressions/robots WfUserWorkQueue – used to run workflow/process for direct user actions WfScheduleQueue – used to run workflow/process time/date based actions Many configure ‘background’ nodes or method servers to dedicate to this Done via configuration settings 6/11/2016

4 Know your queues (cont)
Cluster diagram 6/11/2016

5 Know your queues Queues run background processes
Windchill has many that perform background, not immediate to the user operations A few common system impactful ones: PublisherQueue – used to manage jobs to visualize data WfPropagationQueue – used to run workflow/process expressions/robots WfUserWorkQueue – used to run workflow/process for direct user actions WfScheduleQueue – used to run workflow/process time/date based actions Many configure ‘background’ nodes or method servers to dedicate to this Done via configuration settings 6/11/2016

6 Predict or identify problematic queues
Understand your deployment/design Datasets cause drastic differences Propagating effectivity recursively on a 5 or 5000 part structure? Have 1000s of users processing many workflow tasks at once? Queues are specific to features Workflows, CAD Publishing, Work Package exporting, etc Monitoring the system Queue Management Watch for Severe entries or long running entries PSM/JConsole MS logs 6/11/2016

7 How to distribute queues (in a cluster)
Understand which MSs will be running queues Each MS should have its own ‘queue group’ Name them similar to how MSs are identified Group1 = BGMS1, etc Associate each queue to a group Attempt to balance based on expected workloads Having multiple ‘heavy’ queues on one MS can lead to memory or CPU issues Add xconf entry for each queue associating to the group <Property name="wt.queue.WfUserWorkQueue" overridable="true" targetFile="codebase/wt.properties" value="group1"/> Associate each MS to each queue group Add xconf entries to disable queues across all nodes as default <Property name="wt.queue.executeQueues" overridable="true“ targetFile="codebase/wt.properties“ value="false"/> Add option to BGMS startup property for each intending to run queues “wt.queue.executeQueues=true wt.queue.queueGroup=group1” 6/11/2016

8 Can I make a custom queue?
Yes! But need code to add entries, and know what code to execute Some Raytheon examples of why use custom queues Long running custom reports CAD relatability custom validations Queues are just another type, so you can query for them, view entries, add entries, etc Queue entries just say to call a static method with X parameters Can have Process, Pool, or Schedule Process – runs each queue entry as it comes in serially Pool – like Process, except uses configurable # of threads (new in 10.1?) Schedule – runs queue entries at given times 6/11/2016

9 Can I make a custom queue? (cont)
Example code Note ACLs can apply to queues, so may need to be running as Site Admin user wt.queue.ProcessingQueue queue = wt.queue.QueueHelper.manager.getQueue(“QueueName”); If (queue == null) { queue = wt.queue.QueueHelper.manager.create(“QueueName”); QueueHelper.manager.startQueue(queue); } queue.addEntry(user, // user to run entry as “methodName”, // name of static method to run “ext.test.TestClass”, // name of class with named method to run argTypes, // Class[] parallel to args saying what types they are args); // Object[] parallel to argTypes of parameters to named method Enumeration<wt.queue.WtQueueEntry> entries = QueueHelper.manager.queueEntries(queue); 6/11/2016

10 PTC Support site is your friend
Helpful links PTC Documentation Windchill Specialized Admin Guide Best Practices Activities for Monitoring/Maintainence - Windchill Help TS Documents List of Queues with explanations - CS158339 Managing Visualization queues – CS37569 PTC Support site is your friend 6/11/2016


Download ppt "Queue management techniques"

Similar presentations


Ads by Google