Queue error handling

From 2012 LabVIEW help for most Queue functions:
 "This node runs normally even if an error occurred before this node runs."
Tested True for Release Queue, but False for others: Enqueue, Dequeue, Status, Preview, etc..
They only produced the Enum U16 default "0" with no waiting.
So, this means my state machine needs 2 Error Cluster branches so I can cleanly power down and exit my test app.
Still would be easier if it worked like Help suggested. It would be better if Help was right too.
Solved!
Go to Solution.
Attachments:
Ustates.ctl ‏8 KB
Usm.vi ‏23 KB

RavensFan wrote:
The functionalities are correct for each of the functions.  The help file is wrong for each of the functions.
Most of the queue functions should have standard error functionality which means they run normally if there is no error coming in, but don't run and just pass the error through if there is an error.  So those functions should NOT have the 2nd sentence of "This node runs normally even if an error occurred before this node runs."
The  Release Queue function does not and should not have standard error functionality.  It should release the queue even if an error comes into.  The help says:  (I added the bold and italics for emphasis)
"With the following exception, this input provides standard error in functionality.
This node runs normally even if an error occurred before this node runs."
It looks like those same two sentences were just copied and pasted among all the help files to all of the other queue functions incorrectly.  The other queue functions should not have the "with the following exception," nor the second sentence.
I don't have access to LV 2013 at the moment to confirm it is still wrong.  Looking in the help file for LV 2009, the help files are correct.
After thinking on this awhile then reading that I agree with RavensFan.  The help file is wrong but the functionality is correct..  It reads the same in 2013 so it seems the incorrect help was simply carried forward.
Kelly Bersch
Certified LabVIEW Developer
Kudos are always welcome

Similar Messages

  • Report and Alert don't executed in the error handler with a JMS proxy service

    Hi,
    I'm working with OSB 11.1.1.4.0 and I'm facing a problem with the error handler of my JMS proxy service.
    My error handler contains two main elements :
    - a Report action
    - an Alert with a JMS destination defined
    When the business service failed the message remain in the queue. It's the expected behavior.
    The problem is :
    - the report is missing
    - the alert is raised but missing in the JMS destination defined in the Alert setting.
    I've noticed if I add a Reply with Failure or Success, Report and Alert are successfully executed.
    Unfortunately the message don't remain in the JMS queue.
    What can I do in order to have my report/alert done and the JMS transaction rollback in order to keep the message in the queue ?
    I've already met this problem in the past with alsb v3 and my solution was to add Service Callout in the error handler in order to externalize these actions.
    This solution is not convenient and I hope another solution is possible.

    Inventorying workgroups can be difficult, especially when it comes to remote access and network security. Because workgroups are not centrally managed, some of the items discussed in this
    wiki article on preparing your workgroup environment may require you to visit each machine individually.
    For non-domain credentials, you do not use the <systemname>\<user> format, you simply enter the user name. Regarding how to enter the credentials, if you have an account that uses the same username and password on all machines and is an administrator
    on all of those machines, then you can enter that in the All computers credentials page of the wizard. You can also do this if they are different user names. However, if some machines have an account with the same user name, such as Administrator,
    but different passwords on each machine, you will need to use the Manually enter computer names discovery method, and then enter the information for each group or each machine.
    As you can tell, workgroup environments can quickly negate any benefit that the agentless inventory nature of MAP provides.
    Please remember to click "Mark as Answer" on the post that helps you, and to click
    "Unmark as Answer" if a marked post does not actually answer your question. Please
    VOTE as HELPFUL if the post helps you. This can be beneficial to other community members reading the thread.

  • Error Handling on RFC - XI - File Scenario

    I have an R/3 RFC -> XI -> FILE scenario that works, but does not adequately handle the error of my R/3 to XI connection being down.
    The RFC call is async since I was under the impression that I had to do a "to file" scenario that way.
        CALL FUNCTION 'ZXO_SAP2RFC'
          IN BACKGROUND TASK
          DESTINATION  wa-rfc_dest_1
          EXPORTING
            request          = request
            rfc_header       = rfc_header.
        COMMIT WORK AND WAIT.
        IF sy-subrc <> 0.
          [error handling]
    If my rfc destination is down (for example when XI is down), this RFC call is still getting a sy-subrc of '0' (so my error handling does not kick in).
    Any suggestions?

    Hi Keith,
    your scenario is working correctly. If XI is down you will find your message queued in transaction SM58, where you can restart it manually. Usually there should be standard job for report RSARFCEX, which is periodicly trieing to restard the message.
    Asynchr Call (tRFC) means that your program continues completly undependent from that call.
    Make a test: Change temporary the called machine in SM59 destination to senseless value and execute your programm. Your message should be in SM58. Then correct the destination and wait a few minutes...
    Regards,
    Udo

  • 'Structured' error handling and reentrancy

    The parentheses in the subject are due to the fact that I'm not using the Structured Error Handler reference library, but have rolled my own to do something similar but in the manner I want it to. I don't actually use the SEH (haven't even got it installed at the moment on this PC) so am not sure exactly how it works under the hood.
    I have a reasonably large application with a number of distinct parallel modules (GUI, state module, communication, motion control). The final parallel module is an error handling module. This consists of two queues - one for incoming errors, and one for outgoing actions. Errors are dequeued and their codes checked for their category (critical, warning, ignore or unclassified, for instance) and the appropriate category is returned to a local error handler via the action queue. When an error is passed to a local error handler VI, it enqueues the error to the main handler and waits for a response to that particular error.
    This all works nicely, in much the same way the SEH would do. However, with either the SEH or my local error handler method, I find myself wondering how often to place these down and the consequences of doing so. If they're non-reentrant, I imagine I may end up with lots of parallel processes sitting patiently to access the VI as it's blocked by another, causing jitter. If I go pre-allocated clone, I could potentially have many many callers using this function, which strikes me as a bit of a waste of resources. My gut feel is to go with shared-allocation clones, as the vast majority of the time it'll be no error passed through an empty case, and not to place them in absolutely every subVI - just perhaps after a state executes in the state handler, in all the parallel loops of the submodules etc.
    Just wondering what anyone else does with their error handling solution, and whether my thoughts make sense.
    CLD

    Having chatted to my friendly neighbourhood Spiderman Architect, he suggested I should probably just stop being a wimp and just use pre-allocated clones to avoid the jitter and to stop worrying about the resource hit, as you suggest
    I'll use the same code on both PC host and RT host, hence the jitter concerns on the RT.
    Thanks for the thoughts!
    CLD

  • Error handling in B1if

    Dear All,
    I searched the forum but could not find a full answer to my question.
    How can you handle errors in B1if?
    When something goes wrong the errormessage is displayed in the failure section of the message log.
    I found out that on the package design in the defintions section you can choose document "error handling".
    There you should be able to choose your error handling step.
    For now I only see the default error handling step.
    How can you create such a error handling step?
    Does somebody has some full documentation on this subject?
    I guess we must create a new step design with inbound type Predecessor or am I wrong?
    Thanks in advance for any help.
    Kind regards,
    Steven

    Hi Vijay,
    Create a package with your development in a step.
    Create a second step called for instance: errorhandling
    This errorhandling step must be of inbound type internal queue
    In the errorhandling step you can handle the error as you like... for example email it or save it in a user table in B1.
    The trick is:
    Go to package design - select your package - press definitions buttons and select error handling
    Here you select your errorhandling step instead of default error handling.
    Save everything.
    When you scenario goes into error during the processing the errorhandling step will be carried out.
    That is it.
    Kind regards,
    Steven

  • Error handling in simulatenous loops

    I am trying to design a good error handling system for a project I am working on, but I have run into a "design" problem. I thought it would be good to ask for some guidance here before I sit down and start create the error handling system.
    I have more than one subVI started from one mainVI, each subVI with an individual while loop running (they all stop when I press the same stop button from the mainVI). Each while loop continously retrievews information from various serial devices. Each VISA call etc. can thus of course generate errors. I only want one error dialog box in my mainVI front panel displaying any error that happens.
    How would I design this in a good way? As I see it, I would have to use the error dialog box in the mainVI as a global/functional global. Each subVI would then write to this global error dialog box. This could however cause race conditions where only the latest error gets displayed even if earlier errors happened. Appreciate some good advice here.
    Solved!
    Go to Solution.

    First and foremost I would avoid using the sequence structure. LabVIEW is a data flow language and you should take advantage of that rather than forcing it to be a sequenctial language. Take a look various examples that ship with LabVIEW. You will want to definitely check out the examples for state machines and the producer consumer architectures. Your current code will not meet your needs of continually monitoring for errors since your "Error" queue is not in a parallel loop task.
    I have attached a very quik example of a producer consumer architecture with an error processing loop. There are no real code details but this is a simple example of an approach to take for an application. This along with the above examples should give you a decent starting point.
    Message Edited by Mark Yedinak on 10-05-2009 04:05 PM
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot
    Attachments:
    Simple Application Architecture (8-6).vi ‏13 KB

  • Client ABAP proxy error handling. Please help!

    Hi Experts,
       I have following scenario:
       SAP ECC (ABAP Client Proxy) -> PI(XI)-->(SOAP) Third party web service System
       This is Asynchronous.
       What will happen when ABAP client Proxy in ECC sends data to PI but PI is down?
       Will the message be queued in ECC? Can the queued message be processed automatically when PI is UP later?
       Please help.
    Thanks & Regards
    Gopal

    Hello Gopal,
    Correct, it should be an automatic entry into the queue!
    refer below for a detailed understanding!
    /people/arulraja.ma/blog/2006/08/18/xi-reliable-messaging-150-eoio-in-abap-proxies     XI: Reliable Messaging u2013 EOIO in ABAP Proxies
    /people/krishna.moorthyp/blog/2005/12/23/monitoring-for-processed-xml-messages-in-abap-proxy     Monitoring for Processed XML messages in ABAP Proxy
    Weblog to send Response from RFC to File in Asyn Mode Using Proxy [original link is broken]     Weblog to send Response from RFC to File in Asyn Mode Using Proxy
    /people/michal.krawczyk2/blog/2009/06/20/pixi-abap-proxies-say-goodbye-to-executeasynchronous-method     PI/XI: ABAP Proxies say goodbye to Execute_Asynchronous method
    /people/krishnakumar.ramamoorthy3/blog/2008/11/02/error-handling-framework-for-abap-proxies--part-1     Error handling framework for ABAP proxies - Part 1
    /people/krishnakumar.ramamoorthy3/blog/2008/12/19/error-handling-framework-for-abap-proxies--part-2     Error handling framework for ABAP proxies - Part 2
    Regards,
    Jilan

  • Best error handling for visa calls?

    We are using some handlers we've devloped for power supply handling (over GPIB). The power supplies are SCPI and use SCPI/GPIB commands. The handlers use the NI visa api's Read() and Write() functions to send the commands.  They work fine, for the most part, and we've been using them for a number of years.
    However, we're hearing reports that there may have been a few times that commands were not executed on the power supply and our handler did not report back any error.
    So, I'm trying to update these handlers to add a little error checking to make them more robust and hopefully we'll catch this error if it happens again.
    For error handling, I've come up with 3 solutions and tried all 3. I find some benefits and drawbacks with each and hoped I could get your opinions about error handling as I'm not overly familiar with some of the methods.
    Method 1:
    Set the Event Status Enable register to catch all events (or all that I care about).
    Read status byte (STB?) after each command and check the event bit and then event status bit if event bit set.
    Drawback1: I have one power supply that does not implement this correctly and a second type that appears to not be working correctly either.
    Drawback2: Errors are generic. I'll know if I got, for example, a DDE (Device Dependant Error), but I won't know more detail than that.
    Method 2:
     After each command sent, read the error queue with the System:Error? query.
    Drawback: It seems I get a lot of messages back in this method that aren't real errors. It's very "noisy" and I have no way to distinguish real errors from "noise" messages like "query interrupted" and such.
    Method 3:
    Check the return code of the Visa Read() and Write() commands. At first I didn't think this was very robust, but after seeing the list of errors here, I'm beginning to think that these might be more robust and detailed than Method 1. However, I'm not sure.
    So is method 3 as robust as it looks, or is there a combination/comprimise I can make, or another method I did not mention which is best to trap errors from Visa Reads/Writes to these GPIB power supplies? Keep in mind that the handlers work for a number of different power supplies and its likely that some things may be implemented differently between supplies....so its best to stick with somethind standard that will work on all power supplies.

    Hi KingTermite,
    I hope you will got answer of the question and may be implemeted something .It was really a nice discussion .I am also facing the same issue where I am communicating with different instrument using  GPIB communication and RS 232 too.
    Can you share and discuss about the implementation of your initiative.
    Best Regards
    Regards:
    Vaibhav Kanchan
    Sr. Engineer
    NI Certified LabVIEW Developer(CLD)
    NI Certified TestStand Developer(CTD}

  • Query related to error handling

    hi All,
    In my proxy flow i have stage level error handler which is configured to an alert pointing to an JMS error queue. When i added service level error handler with same alert.
    I am getting duplication of the same error message by stage and service error handler.
    For every error i am receiving 2 error messages at the error queue.
    Is there any option in ALSB which allows me stop the duplication.

    Pls check the following script --
    SQL>
    SQL> create or replace package uu_test
      2  is
      3  begin
      4    test
      5  end;
      6  /
    Warning: Package created with compilation errors.
    SQL>
    SQL> select * from user_errors
      2  where type = 'PACKAGE';
    NAME                           TYPE           SEQUENCE       LINE   POSITION
    TEXT
    UU_TEST                        PACKAGE               1          3          1
    PLS-00103: Encountered the symbol "BEGIN" when expecting one of the following:
       end function package pragma private procedure subtype type
       use <an identifier> <a double-quoted delimited-identifier>
       form current cursorHope this will fullfill your requirement.
    Regards.
    Satyaki De.

  • JMS adapters and error handling

    Dear all,
    1. I have a scenario in which XI will be getting messages from Two JMS servers located in different locations. The messages from the two servers have no relation but XI has to check if messages are present in any of the servers and poll them. So can anyone suggest me a better approach. I can use two sender adapters and use a BPM. Is there any other way to do it avoiding BPM?
    2. How do I delete the message from the JMS Queue once it is processed?
    3. In the Reciever side I have to send messages to two different target systems based on a condition. From the sender side a field (value) is passed which will check these conditions. If the value contains one of the target system names, the message has to go to that particular system and if the value contains both the target system names, the message has to go to both the target systems. I think this can be done in BPM but please recommend an approach for this.
    4. I need to do error handling both in the adapter side and in mapping level. Kindly give suggestions for the same.
    Expecting your replies soon,
    Harikumar. S

    Hi ,
    Refer to following blogs ,
    JMS Adapter
    http://help.sap.com/saphelp_nw2004s/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/content.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f02d12a7-0201-0010-5780-8bfc7d12f891
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/3.0/how%20to%20use%20the%20content%20conversion%20module%20with%20the%20xi%203%20j2ee%20jms%20adapter
    /thread/217893 [original link is broken]
    JMS adapter -Message format pre-requisites
    /people/alessandro.guarneri/blog/2006/01/04/jms-sender-adapter-handling-too-short-lines
    /people/william.li/blog/2006/11/13/how-to-use-saps-webas-j2ees-jms-queue-in-exchange-infrastructure
    Thanks ,
    Suvarna
    Award pts if ans helps .

  • Delete or acrhive messages in AIF error handling transaction

    Dear all,
    Is there a transaction or report to delete the messages in error handling and monitoring ? Where are these messages stored, its in a queue , could I get to view the queue and delete the messages which are not required.
    And also where do we schedule the limit - about how many messages to be processed per run or per package. where is this maintained.
    - Messages often get in to manual restart mode... why does this happen?  Do we get to set the messages for automatic restart , if yes, how do we do that?
    Thanks and Regards,
    Archana

    Hi Archana,
    for automatic reprocessing in AIF please have a look into the thread  SAP AIF - Automatic Reprocessing. Nicole provided a solution there.
    Best wishes
    Christoph

  • CIF - error handling and maintance

    Hi sap gures
    please let me know  how to handle CIF errors and how to maintain and support the CIF in the production
    supporting project
    please help me
    Regards
    R.suresh Kumar

    Hi Suresh,
    It is very vital and sensitive to maintain and control cif error
    handling.  You need to monitor very frequently system for
    queue accumulation which leads to lot of errors in system and
    affects performance.  Controlled monitoring and taking quick
    actions will make your life ease.
    Also periodically carry out consistency checks to avoid
    difference of transactional data between systems as per
    recommendations.
    Check the CIF job logs in case of any failures and take
    necessary actions to avoid recurrence
    Regards
    R. Senthil Mareeswaran.

  • How to catch/read mal-formed xml at Error Handler.

    I have added Error Handler at starting node of Message Flow in a Proxy Service and its(Proxy Service) listenning to a JMS queue.
    So when i am putting a mal-formed XML into the JMS queue, getting "Failure while unmarshalling message: Failed to parse XML text" error at ALSB server log.
    But i am not able to capture the mal-formed xml inside Error Handler node.
    Can any one help me how to capture input mal-formed xml in Message Folw.
    Thanks in Advance.
    Regards.
    Deba

    Re: How to catch malformed xml using error handling mechanism in from a proxy? Had a solution for similar issue. It appears that in-case of malformed XML, $body will not be populated with faulty xml snippet. One way out of this solution is, design your service as Text service and create another service isXML as explained in my above reply.
    Thanks
    Manoj

  • Custom error handler examples and/or instruction

    I'm finishing up an application and would like to customize some of the error reporting.
    I've started playing around with the custom error handler VI's with some success. I would, however, like to see some examples from people who know what they are doing (unlike me).
    As always, your feedback is appreciated.
    Todd

    Look at this message.
    http://forums.ni.com/ni/board/message?board.id=170&message.id=45649
    Do a search for "General Error Handler" and you'll find some others.
    I'm also trying to find a simple way to define custom error codes and descriptions in an error cluster. I can produce my codes easily enough using the vi posted by Aristos Queue in the message noted above. I can also display my user-defined descriptions using a dialog, but I haven't found an easy way to make the user-defined descriptions in the array appear in the error cluster.
    Any help on this would be appreciated.
    Attachments:
    Error_Demo.vi ‏37 KB

  • Log format of SAF error handler

    Is there any link/document available that gives an idea of the format to provide in the "log format" while creating SAF error handler?

    Here's a little more detail that should help:
    Using the same JMS module that contains the configuration for the original imported destination, create another imported destination with the exact same targets as the imported destination. Let’s call this destination the “SAF error dest”. Configure the remote destination for this SAF error destination so that it references some JMS Server queue (call it the “error queue”).
    Ideally for performance and simplicity, this error queue should run local to the "SAF error dest" -- so, for example, if there are 3 SAF Agents on three JVMs that host the imported destinations, there should also be three JMS servers on these same JVMs that use the same persistent store as the SAF agents, and the error Q should be a "uniform distributed queue" that's targeted to the three JMS servers (using advanced "subdeployment" targeting).
    Configure the original imported destination to use the “SAF error dest” as its error destination.

Maybe you are looking for