Producer/Consumer(Events)

I am trying to practice using Producer/Consumer(Events) design pattern.  In the attached VI I'm trying to control 3 LED's using front panel controls.  I'm not sure how to extend the time that the LEDs remain lit.  My first guess would be to continue queing a given state until a timer expires.  But, from what I understand, it's not good practice to add to the que in both the producer and consumer loops.  Any advice will be appreciated.  Also, is there a possibility for a race condition in the way I terminate the program on STOP?
Thanks in advance.
Attachments:
Prod_Cons Lites.vi ‏16 KB

VI Joe wrote:
I'm not sure how to extend the time that the LEDs remain lit.
You could use the timeout of "dequeue element" and reset to false after the timeout or after another button is pressed. You don't need the wait state.
Also make sure to make the enum into a typedef, else this will be difficult to maintain once you want to modify the possible states.
VI Joe wrote:
Also, is there a possibility for a race condition in the way I terminate the program on STOP?
No, that looks OK.
Here's a quick draft. In order to eliminate case bloat, I would combine the color events and simply check which one got pressed.
LabVIEW Champion . Do more with less code and in less time .
Attachments:
Prod_Cons LitesMOD.vi ‏13 KB

Similar Messages

  • I want to add one Continuous function in Producer consumer event??

    Hello,
    producer consumer event vi is base example for me ,I have design my system according to it.
    Now I am dealing with photo sensor in that its measure continuous data according to intensity of light,for continuous function I have make while structure for photo sensor but the problem is that I don't know how to add this while loop in producer consumer event ,if I add then its run continuously and then my operation is stuck there.
    Will you please guide me that how can I add this continuous function in this structure so simultaneously I can do other function like pause reset..Etc...
    Here in attachment I have attaché one example regarding to this in that I have add simply increment function in case structure and when I execute my vi then execution is stuck at while loop until it manually stop.
    Thank you very much...
    Attachments:
    ProducerConsumerEvents 1.vi ‏15 KB

    Hi AnkitRamani,
    I made a simple example with a UI queue and a second producer which is pushing data into its own consumer, displaying the signal and its spectrum.
    Maybe this is what u need.
    Marco Brauner NIG
    Attachments:
    ProducerConsumerEventsData.vi ‏70 KB

  • Producer/consumer inside producer/consumer

    Hello all,  I am using a producer/consumer event structure within a producer/consumer....not sure if this is the best approach.  The main vi is setup to perform several different tests based on the user input.  It does an initialize, setup, and read a pressure controller.  The main vi continues to read the pressure controller until the user presses a button to perform a particular test. When the test is complete, it goes back to the main vi and monitors the pressure controller.  The user can perform another test or stop the program operation.  My question is......In the individual tests I use an enqueue element which sends it back to the monitor pressure controller in the main vi.  Is this the best approach?  THANKS in advance!
    Alma

    So the subVI is a popup window?  And nobody will be able to manipulate the main VI while the popup is there?  If so, I don't see much wrong with this.  But if you need to change things in the main VI while this subVI is running, it won't really work well since your main's consumer loop will not be iterating until the subVI is complete.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Can't terminate while loop in producer/consumer

    I have attached a simple vi that was constructed from the producer/consumer (events) template.  In the vi I have set up a counter.  I want to be able to terminate the counter when the stop button is pressed.  This doesn't work as planned.  The counter goes to its full count before the program stops.  The vi does work as planned when run in highlight execution mode.  Can't  figure it out.
    Thanks in advance.
    Solved!
    Go to Solution.
    Attachments:
    ProducerConsumerEvents 3.vi ‏14 KB

    You can set the stop button to latch action and place it in the lower loop. No local variables needed.
    The event will fire right away and the lower loop will reset the button once it's read. No race condition possible.
    (Personally, I would probably redesign from scratch....)
    Message Edited by altenbach on 08-10-2009 11:33 PM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    ProducerConsumerEvents 3MOD.vi ‏13 KB
    ProducerConsumer.png ‏23 KB

  • How do I build a producer/consumer VI with multiple consumers?

    I’m studying for the CLD using this document as a base:
    Certified LabVIEW Developer (CLD) Certification and Exam Overview
    One of the requirements in that document has me stumped:
    6. Select a producer/consumer (events) design pattern to respond to user interface events in the producer loop and defer the processing of the event to one or more consumer loops
    I start with LabVIEW's producer/consumer (events) template and give it two consumer loops. However, each event only gets to one of the two loops, not both, as you can see in my attached example VI 1_producer_2_consumers.vi.
    I would try LabVIEW notifiers, but I read that a notifer is not guaranteed to reach the consumer loops because they are not queued. I would try user-defined user events which might work, but they are not part of the CLD.
    What’s the way to complete requirement 6 above?
    Solved!
    Go to Solution.
    Attachments:
    1_producer_2_consumers.vi ‏19 KB

    bmihura wrote:
     However, each event only gets to one of the two loops, not both, as you can see in my attached example VI 1_producer_2_consumers.vi.
    you must have a 'queue' for each consumer and you were not properly stopping the loops with user interface (using error handling inefficiently, you will get dinged for it on the CLD)...
    Spoiler (Highlight to read)
    Attachments:
    1_producer_2_consumersMOD.vi ‏23 KB

  • Producer/Consumer Design Pattern + DAQmx + Event Structure

    Dear community users,
    at the moment I try to implement the Producer/Consumer Design Pattern into my current project. For this purpose I am trying to make a "minimal-example" in which I use the Producer/Consumer Design Pattern for the data acquisition and analysis (display in GraphXY, calculation etc..) process. In the Producer Loop I perform the data readings via DAQmxRead.VI and in the Consumer Loop, in this example only, I display the data in a GraphXY. At the same time I want to control the data acquisition via an Event Structure, for example Start Measurement/Stop Measurement Buttons. To configure the measurement time, for example if the user only wants to measure 150 sec, I use the Time Out Event of the Event Structure. This is a technique which is often used, when data acquisition and Event Structures are used at the same time (Excuse me if this is wrong!). Due to understand the Producer/Consumer Design Pattern I looked up in the Template\Framework of LabVIEW.
    In the attachment you will find my "minimal-example", which -sadly-, not working. What should I do ? 
    Thank you.
    Best regards,
    tugrul öztürk
    Attachments:
    daqEngine_PCP.vi ‏35 KB

    Your VI will never stop due to the Ok Button that stops the producer loop is read OUTSIDE of the loop.  Add an event case for it.
    Move the Start and the Ok Button inside of their respective event cases.  This will allow the latch to reset when they are read.
    Change the Ok Button to a stop button.
    Use a Greater Or Equal instead of Equal for the measurement time comparison.  What if somebody randomly changes it to 0 on you?  Again, you will never stop.
    Is the DAQ only supposed to read for "Measurement Time".  Right now, it constantly reads.  So if you don't use the DAQmx Read, you will get a buffer overflow error.  You need to put the DAQmx Start Task inside of the Start event case and then the Stop DAQmx Task inside of the Timeout event case when the measurement time is exceeded.  You should also perform the read regardless inside of the Timeout event case.
    I HATE telling the consumer loop to stop by destroying the queue.  You can look data that way.  Instead, send something an empty array.  In the consumer, check for an empty array.  If it is empty, stop.  Destroy the queue only AFTER BOTH LOOPS HAVE COMPLETED.
    You should also report your errors in some way.  Simple Error Handler at the minimum.
    Since you are using Continous Samples, don't limit the buffer.  Leave the Samples per Channel unwired on the DAQmx Timing VI.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Producer Consumer Subpanels, User events and DAQ

    Hello All,
    I am working on a Producer Consumer application and have beed looking at subpanels for user navigation. The application needs to be capable of responding to user generated events but also manage data received from attached data acquisition and control hardware. This is a 2 part question.
    I need to implement about 15 screens in this application and have started integrating subpanels. I need to be able to navigate from one subpanel vi to another using subvi buttons but dont understand how to build this functionality. Can I build functionlaity so that when I click on a subpanel loaded vi's button it will load the vi referenced by that button and the original dissappears.
    I have a 3 loop producer event template consisting of (1)data acquisition producer, (2) user event producer and (3) consumer loop but theres not much detail, are there any reasonable templates out there? I have seen the data- consumer and user-consumer but no mix of all 3.
    Advice appreciated
    Chris

    I use subpanels to host my display vi's and control them dynamically.  I would have a loop or vi process that manages your subpanel.  You could use user events, queues or notifiers to send messages to this subpanel manager to perform the basic functions such as loading a vi into a subpanel, removing a vi from subpanel (you can remove and stop the vi or keep the vi running in the background or even make it a floating vi.)  A subpanel button can create a local event which in turn could trigger a user event or message to the subpanel manager.  I have attached my subpanel manager to give you some ideas...
    Attachments:
    Subpanel Manager.vi ‏39 KB

  • Register event in producer consumer design pattern

    Hello wire workers,
    I am fairly green when it comes to dynamic event registration, so my understanding of it is probably quite flawed, but what I have implemented seems to work fine.
    Assuming a fairly typical queued producer/consumer state machine architecture.
    Up till now, I have done the dynamic event registration outside (i.e. to the left of) the UI loop, so all events get registered before the UI loop starts to run.
    My question is:
    How can I register events from inside one of the consumer loops? I cannot wire it...
    Maybe an example will make my scenario more clear.
    I have a DAQ loop (queued state machine). In the init state of this loop I want to register a digital input such that changes on a line are handled by my main event structure (in the totally separate UI loop). Is this possible?
    I look forward to hearing positive answers
    nrp
    CLA

    The best way to send data from the Consumer Loop to the Producer Loop is through User Events. What you will want to do is create a User Event whose data type is the registered DAQmx event refnum. Then when you register the DAQmx event in the Consumer Loop, fire the User Event with that new refnum and update the registration in the Producer Loop. That's probably hard to wrap your head around in words, so I'll attach a dummy example and pic below. Hope this helps!
    VI Saved in LV85.
    Message Edited by Jarrod S. on 04-21-2008 12:54 PM
    Jarrod S.
    National Instruments
    Attachments:
    DAQmx Event.vi ‏30 KB
    DAQmx Event Pic.PNG ‏38 KB

  • Event producer/consumer

    hello,
    i'm trying to study the differents existing structures (event, state, semaphore ...)
    the first is event producer/consumer and i don't succeed to display queue infos it's ok for size queue but not max and
    array of elements, what can i do to make it visible ?
    another question, where can i find basics examples ( but realistic) using event P/C, event p/c state machine, semaphore, rendezvous, occurence, dynamic regitration .....
    if you can reply even just one of  requests it would be nice
    Best regards
    Tinnitus
    CLAD / Labview 2011, Win Xp
    Mission d'une semaine- à plusieurs mois laissez moi un MP...
    RP et Midi-pyrénées .Km+++ si possibilité de télétravail
    Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
    Don't forget to valid a good answer / pensez à valider une réponse correcte

    hello bis,
    I just come to find the return element option , but for others questions it's still on air
    tinnitus
    CLAD / Labview 2011, Win Xp
    Mission d'une semaine- à plusieurs mois laissez moi un MP...
    RP et Midi-pyrénées .Km+++ si possibilité de télétravail
    Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
    Don't forget to valid a good answer / pensez à valider une réponse correcte

  • Producer Consumer & User Events with user input windows

    Hello All,
    I am planning to build Labview code using the Producer Consumer & User events pattern, the application needs multiple user input windows for things like personal data, feature selection etc, there could be around 15 or 20 distincts screen/panels required.
    The main question from me is... Is there a best practive approach to navigating/loading from one window to another etc, and also providing a way to to retrun to the previous window.
    Also I may need need to be running some slow logging and control hardware in the background while navigating some of the screens, this seems like the producer consumer vi will be running in the background while the user input causes a load/display window event.
    A simple Producer Consumer multiple winjdoow example would be very welcome. Thanks.
    Regards Chris

    I will second Mike's suggestion to use a central VI with subpanel(s).  It is usually less confusing than multiple windows.  Typically, the selection/navigation mechanism is on the left of the main panel, global info (like help) on the right, and the subpanel(s) in the center.
    The advantage of subpanels/subVIs is that you can launch your subVIs and keep them active in the background, even though they are not being used.  This means they will keep their state information and load into the subpanel almost instantaneously the next time you need them.  For a short tutorial on subpanels, check out this link.  Scroll down to the fourth reply for working code.  The original code posted is broken.
    Communication between your VIs or loops is typically done with either queues or event structures.  State information in each should be shift registers in the respective VIs.  If you have the time, I would highly recommend you learn how to use LabVIEW classes.  The command pattern is tailor made for this kind of application.
    Finally, avoid global data if you can.  Global data is anything that you can get to from anywhere (globals, functional globals, etc.).  Use of these can speed your development, but can also lead to sloppy design which will cause you major problems later.  If you really need globally available data, use a data value reference.  It is unnamed and requires a reference, which tends to enforce better programming practice.  Yes, there are instances where you truly need globally available, named data, but they are fairly rare.  You should only use them if you are experienced and really know what you are doing.
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • What is the Fastest producer consumer method. Queue, RT-FIFO, Event

    Hi all,
    Another curly question for the pro's:
    I have recently inherited some labview code that uses RT-FIFO for the transfer mechanism in the producer consumer architecture.
    The code was first written 3-4 years ago and is presently in LV8.6. It is possible that the reasons for the architectural decision no longer exists.
    I am skilled using a queued producer consumer architecure,
    I understand the RT-FIFO Architecture.
    I have begun using a user Event Based architecture.
    (I have attached samples of each)
    I also see the existance of a priority Queue
    Each method has it's own capabilities and deficiencies, That aside, does anyone know the relative performance of each method.
    (Assuming single process)
    I would expect RT-FIFO to be fastest, it appears to be a low feature version of a standard queue.
    What is the perfornace hit for using a more coding freindly Queue
    The RT-FIFO description speaks of commications between time critical and lower priority threads.
    Until today, I believed that Queues had the same capability.
    I have included an event method I commonly use for peer review and to help to fellow users..
    It allows:
    1. Multiple producers with different data types
    2. Processes repecting order of production.
    3. Allows for asynchronus checking of functional notifiers such as stop, start and abort.
    4. In a non real time system it can include front panel interactions.
    What I don't understand about it is what overheads, or thread priority changes that may be experienced by using this architecture (it solves a lot of problems for me).
    Thanks in advance,
    iTm - Senior Systems Engineer
    uses: LABVIEW 2012 SP1 x86 on Windows 7 x64. cFP, cRIO, PXI-RT
    Solved!
    Go to Solution.

    Are you running into a situation where the difference in time between producing an event, and consuming it, is actually causing your problems?  If not, this is not a question worth worrying about.  Use whatever is most appropriate for your application.
    There's no need to make wild guesses - build a VI, benchmark and test!  The attached is a reasonable starting point, although I think the event structure may be slow due to setup time but may respond quickly once running.  If you experiment with this, you'll probably find that there's no definite answer to which is fastest.  Changing the size of the RT-FIFO, or of the queue, makes a big difference in speed.  At least in my testing, a single-element RT-FIFO is fastest, but an infinitely large queue is faster than a small queue, and a longer RT-FIFO is much slower than the single-element version.
    It's important to realize that RT is not another word for Fast or Efficient, it's another word for Consistent.  For the purposes of real-time (deterministic) execution, it doesn't matter how fast the RT-FIFO functions are so long as they execute in exactly the same amount of time, every time (with the exception of a "forever" timeout value, of course).  You can use either a standard queue or an RT-FIFO to communicate between loops.  One use for an RT-FIFO is when a time-critical loop is enqueuing the data.  It guarantees that the amount of time needed to put data into the FIFO will not vary.  Enqueueing data in a standard queue will sometimes be faster than other times, depending on whether there is already space available in the queue or space needs to be allocated for the new element.  If this variation is unacceptable, then use an RT-FIFO; otherwise, the standard queue works just as well.
    If the architecture shown in your image is working for you, I don't see any reason to change it.
    EDIT: oops, almost forgot to attach the code I used for testing!
    Attachments:
    Event vs Queue.vi ‏21 KB

  • Progmatically stop vi with producer/consumer architecture

    I can't seem to get my VI to fully stop, so that I can go on to do some more things in the program.  I am trying to progmatically stop the vi (pictured below), so that I can return to my main gui (not pictured).  The main gui just consists of a login, exit test system, and run test.  Once the user presses run test, the vi pictured below opens.
    I am using a producer/consumer architecture with a state machine.  The problem I run into is that when I press the "Main Menu" button, it should close the pictured vi and return to the main gui.  I tried using the vi server, and when the user presses the Main Menu button, it fires an event and then it goes to the Stop state in the consumer loop, which opens a reference to the vi's (one for the strip chart vi and another for the gage vi), closes the front panel using an invoke node and then closing the reference.  I also tried adding in the abort vi method after the close front panel and it still gave me the same result.
    Here is the catch, it does close the vi's, but it does not stop the while loops (producer and consumer), or it stops only one of the loops.  I thought of putting in a constant in the event structure for when the Main Menu event is fired, but that will stop the producer loop before the consumer loop reveices the info to go to the stop state, so the consumer loop does not end.
    I also tried a "dummy" control that was connected to the comsumer loop Stop terminal (for the while loop), and then progmatically changed the value in the stop case to true and then read that value in the producer loop to, hopefully, stop both loops, but it did not work either.
    I am sure that it is something so stuipidly simple that I cant see it right now
    Kenny
    Kenny
    Attachments:
    test system.gif ‏252 KB

    Hi Kenny,
    I think of two solutions to your problem. First, use the message queue to pass the message "stop" or something from producer to consumer or second (and I think, better), use occurrences. I made a little draft how it could work.
       You have to pass the occurence- Refnum to both VIs, the producer and the consumer, when the producer finishes execution, then use "Set Occurence".
       In the consumer blockdiagram you react on the generated occurrence.
    If you set in the VI- properties "Open Frontpanel when called" and "Close if originally..." the VI Frontpanel should disappear itself when execution is stopped.
    Hope this helps,
    Dave
    Message Edited by daveTW on 08-14-2006 04:53 PM
    Greets, Dave
    Attachments:
    occurrence 1.png ‏1 KB
    occurrence 2.png ‏5 KB

  • First attempt at Producer Consumer Architectu​re: continuous read and dynamicall​y update parameters​.

    Hello,
    I am currently working with two instruments; an Agilent E3646A and an NI 6212 BNC. My objective is to have the 6212 to be continuously taking measurements according to predefined parameters while the E3646A's parameters can be continuously updated. This simple instrument combination is intended to help me learn the necessarry achitecture; continuous measurement, dynamic output control, and more instruments will be added in the future.
    I've previously posted on a similar, but more complicated, setup (http://forums.ni.com/t5/Instrument-Control-GPIB-Se​rial/Split-second-lag-when-controlling-two-instrum​... and was advised to try the Producer Consumer Architecture. I've found relevant literature on the site (http://www.ni.com/white-paper/3023/en/, https://decibel.ni.com/content/docs/DOC-2431), searched the forums and constructed my own VI. While my first attempt at a Producer Consumer Architecture has resolved some of the issues I was having when I first posted on the subject, however, new issues have arisen with regard to reading and stopping the VI.
    I am currently able to run the VI and update the device parameters. Previously, I would get a freeze while the instrument was being updated and could not toggle parameters until it was done. This has been resolved although the read only updates when a parameter has been updated although it is outside of the event structure. Furthermore the Stop button does not work in any context. I've also gotten occasional errors regarding the Deqeue Element but the bulk of the trouble is Error -200279 "Attempted to read samples that are no longer available" at DAQmx Read. I realize that there is a problem in my Producer Loop but haven't been able to figure out how to resolve it.
    This is my first attempt at a Producer Consumer Architecture and already I can see that it is a powerful tool. I read as much as I could and looked at the relevant examples but expected to have some issues in the beginning. Would really appreciate any advice so I can take full advantage of the architecture.
    Hope to hear from you,
    Yusif Nurizade
    Solved!
    Go to Solution.
    Attachments:
    DCe3646A_DAQ6212_Prod_Con_4_13a_2014.vi ‏89 KB

    Jon,
    Thank you for the response and the suggestions.
    I created the Local Variable for the Stop Button and moved the original into its own Event Case. It is now able to stop VI execution although I get Warning -1073676294 which I understand to be the buffer issue. The warning says that this was incurred on VISA Open for the E3646A's Initialize VI which is outside both loops, however, which I don't understand.
    I tried increasing buffer size by decreasing the Number of Samples as per suggestions I found on NI forum threads. I've brought it down as low as 1 but the graph still only updates when an Event occurs and I keep getting the same buffer error. You suggested that the problem could be that they are in the same loop; does this mean that the DAQmx read should be outside both Producer and Consumer Loops or moved into the Consumer Loop? I found a couple of links ( http://forums.ni.com/t5/LabVIEW/Producer-Consumer-​Design-Pattern-DAQmx-Event-Structure/td-p/2744450 ,  http://forums.ni.com/t5/LabVIEW/Producer-Consumer-​Architecture/td-p/494883 -first response) on dealing with an Event Structure that my own VI is based. Alternatively, I found another link ( http://forums.ni.com/t5/LabVIEW/Producer-Consumer-​Design-Pattern-DAQmx-Event-Structure/td-p/2744450 - first response) on a DAQmx Read with an Event Structure that places the graph in the Consumer Loop.
    The core of my purpose in setting up this Producer Consumer Architecture is so that I could read continuously while the instrument parameters are updated dynamically so it's very important that I understand how this works. I am particularly struggling with how the Event Structure is controlling the While Loop's Execution.
    Hope to hear form you,
    Yusif Nurizade
    Attachments:
    DCe3646A_DAQ6212_Prod_Con_4_14a_2014_Edit_I.vi ‏90 KB

  • Input and output on same device, producer/consumer structure

    Hello interested people,
    I have a question about using the same device for both digital inputs
    and outputs.  I have written a simple program of one while loop
    that continuously polls the device, processes, and requests.  I
    have addressed the device using two DAQmx Asst. and I have attached
    them with their error in/out cluster terminals to provide data flow and
    eliminate the chance of addressing the devices at the same time (which
    produces an error).  Now I want to change this program structure
    to a producer/consumer loop foundation with state machine.  
    In this design, I will have the DI in the producer loop and the DO in
    the consumer loop, under one of the states.  I can't simply
    connect the error in/out ports in this configuration, so my question is
    how to avoid the error caused by addressing the same device
    simultaneously with two different tasks (input and output)?  I
    have attached two VI's, the "One Loop" vi is the original configuration
    (simplified), and the Producer-Consumer vi is a NONSENSICAL program
    that simply represents the desired configuration.  (I don't need
    any comments on the programming of this vi, it is only an example for
    illustration of the problem). 
    I am thinking about bundling the input data and the error cluster, both
    from the PXI 6528 DI, into one cluster, queueing that up, and
    unbundling the de-queued elements for some kind of data flow between
    the producer loop and the "Request" state of the consumer loop. 
    Is this the right approach, or am I barking up the wrong tree?
    Thanks
    Attachments:
    One Loop DO DI.vi ‏102 KB
    Producer-Consumer DI-DO.vi ‏106 KB

    Hello,
    It sounds to me like you really have two modes:
    1. user interface actions determine execution
    2. user interface is locked, and execution is automated.
    I think it would make sense to use the producer consumer for an architecture.  Basically you would do the following:
    1. program the producer to handle the user interface as you normally would.
    2. provide one additional event case in the producer which would be your "automated handling" case.  In that case, you could put a state machine which could run until whatever conditions were met to put your program back in "user interface mode".
    Keep in mind that you can use custom USER EVENTS to programmatically generate events ie. you can trigger the start of your "automated handling" form anywhere in your code at virtually any time.
    I think this would allow you to take advantage of the producer consumer architecture in its intended spirit, while integrating an automated routine.
    I hope this helps!
    Best Regards,
    JLS
    Best,
    JLS
    Sixclear

  • How to handle session-timeout in producer-consumer(wsrp) environment.

    Hi
    We are using weblogic portal 9.2 in federated environment (wsrp) .
    We have one consumer Ear and some producer Ear .
    we want if session is time out ,then user should direct to some default page .
    For that we are firing event in Base Exception handler where we caught all exceptions.
    that event is listen by consumer side ,(when session time out producer raise event).
    event is fired , every thing looks fine but we are not able to redirect page from producer to consumer (which should not be happen )
    I think we are doing something wrong .
    Any suggestion/ guidance will help us lot
    thanks in advance

    Hello,
    Probably the easiest way for you to get the behaviour you want would be to put a event handler on a .portlet file (on the consumer) that lives on the page you want to activate if the producer session has timed out. For example:
    <netuix:handleCustomEvent event="eventNameComingFromProducer" eventLabel="sessionTimeoutPageActivation">
    <netuix:activatePage/>
    </netuix:handleCustomEvent>
    When your producer portlet sends an event "eventNameComingFromProducer" the portlet on the page you want to activate will pick it up and automatically activate the page.
    Kevin

Maybe you are looking for

  • Can't get videos onto new iPod Nano 3G

    Ok i can not put any movie type on to my iPod nano not even: mp4 mov avi or other things...I NEED halp here people. Give me any method you can even converters but they can only be for mac. please i will take any response

  • HP with beatsaudio problem and QHD resolution [semi-solved]

    After a lot of trouble i manage to install archlinux in my hp envy 14 touch with uefi. i just get some of the speakers running with this option: options snd-hda-intel model=ref ive searched a lot but all the solutions havent work for me and the progr

  • How to improve my pls/sql performance tunning skills

    Hi All , I would like to learn more about pl/sql performance tunning , where or how can i get more knowledge in this area ? Is there any tutorials which can help me to understand the Explain plan, Dbms_Profiler, Dbms_Advisor more etc ........Thanks .

  • NSAD user directory for shared services not working

    Hi! Im trying to configure a MSAD user directory for shared services in Essbase 11.1.2.1. I have done it correctly in Essbase 9.3.1. Back then i had to import certificates to the cacerts java file. Is it still necesary? I dont see it mentioned anywhe

  • Adobe Encore CS4 File is not valid MPEG?

    Hi! Today, I opened up my Encore project to make a small change.  I imported new assets and changed the menu to something different and then linked my buttons to a new timeline that then linked to another timeline. I planned to create a DVD, but whil