Reentrant VIs and number of handles

Hello,
I have a sequence running tests on 16 UUTs in parallel.  Each UUT is run in a separate execution.  The sequence communicates with each UUT using serial communication (1 serial port per UUT).  Therefore my communications VIs are set as reentrant to speed up tests.  The complete test sequence is executed in a loop (temperature cycling)
It works well with a few UUTs.  However, if I have 8 of more UUT, the system sometimes returns an out of memory exception.  I can't see any serious memory leak using Windows task manager.  However the numbers of handles related to Seqedit in increasing very fast and the system starts returning errors when the numbers of handles reaches 125k.
I started monitoring the number of handles for many different cases:
  1.  Comm VIs not reentrant.  The number of handles increases by 2000 for each UUT in test.  The total number is stable once each UUT has completed once its test sequence.
  2. Comm VIs reentrant:  The number of handles increases by 10000 for each UUT in test.  The total number is stable once each UUT has completed once its test sequence.  The 10k value is valid for both types of reentrant VIs.
 3. Set the Inlining option for the Comm VIs.  Same effect as setting them as reentrant.
Therefore running my 16 UUTs at the same time needs 160k handles and the application crashes arround 125k.
Is there anymway to set a VI reetrant between execution but not within an execution?  I was thinking of putting my Comm VIs (set as reentrant) inside a sequence and calling this as a subsequence rather than calling the VIs directly.  Will this reduces the number of instances of the comm VIs in memory?
In Windows, is there a way of increasing the number of handles for an application?
Regards,
Patrick

Howdy plessnick,
You can use VI server to change the Reentrancy of a VI dynamically. Here's an example.
http://digital.ni.com/public.nsf/allkb/BCE8D9E4CB4​A6EC686257617006C209B
It's important to note that when you want to change the reentrancy the VI it has to be done when that VI is not loaded into memory.
In regards to your placing them in subsequences, I think it would have the same effect. Whether they are being in the main sequence, or a subsequence, we are still spawning the same number of instances of that VI into memory. I'm not sure how this would effect the process handles though.
As Doug mentioned, it does seem like a very large number of handles. I'm going to try and investigate if there are any other changes we can make, but checking to make sure we don't have any memory leaks due to unclosed references is always a good idea.
Tim A.
National Instruments

Similar Messages

  • Reentrant VIs and SubPanel

    If the VI loaded in subpanel control contains reentrant SubVI, then multiple
    instances of that SubVI shows in hierarchy (remain in memory).
    For example:
    1. Modify the "plugin3.vi" found in "\LabVIEW
    7.0\examples\general\controls\subpanel.llb" to call Time Delay (Express VI).
    2. Then run the "viewer.vi".
    3. Select different VIs to show in subpanel control. After few calls to
    "plugin3.vi" there will be multiple instances of Time Delay in hierarchy
    window.
    How to prevent this?
    Thank you
    Bojan
    [Attachment clip_image001.gif, see below]
    [Attachment clip_image002.gif, see below]
    Attachments:
    clip_image001.gif ‏19 KB
    clip_image002.gif ‏16 KB

    Hello Bojan,
    Thank you for contacting National Instruments.
    You seem to be having a problem with multiple instances of the Time Delay Express VI appearing in the VI hierarchy.
    I was not able to reproduce the same behavior here on my system using the instructions you provided. After looking at your image002.gif, it seems that you have multiple copies of the Time Delay Express VI (located in /LabVIEW 7.0/vi.lib/express/express execution control) opened, since each one appears as a top level VI in the hierarchy.
    If you open a blank VI and place a Time Delay Express VI in a For loop, you will notice that it does not place multiple instances of the express VI in the hierarchy.
    I hope this solves your problem. If you have any further questions, let me
    know.
    Matthew C
    Applications Engineer
    National Instruments

  • TS1646 hello  I have problem with regist my visa and I cannot buy from store the message came in the end of form is says the phone number must be a 7-digit number and I have writed but not accepted iam from saudi arabia my mobile is 966504850992 pls answe

    hello 
    I have problem with regist my visa and I cannot buy from store
    the message came in the end of form is says
    the phone number must be a 7-digit number
    and I have writed but not accepted
    iam from saudi arabia
    my mobile is 966504850992
    pls answer
    thanks
    dfr aldossary

    Wow, Karan Taneja, you've just embarrassed yourself on a worldwide support forum.  Not only is your post ridiculous and completely inappropriate for a technical support forum, but it also shows your ignorance as to whom you think the audience is.  Apple is not here.  It's users, like you. 
    If you would have spent half the time actually reading the Terms of Use of this forum that YOU agreed to by signing up to post, as you did composing that usesless, inappropriate post, you (and the rest of us on this forum) would have been much better off.

  • How to get Storage unit and Warehouse number from Handling Unit.

    hello all,
    I have Handling unit and Material in my program as an input, using these two fields i have to get corresponding storage unit and ware house number, to pick up transfer order.
    Can anybody explain me who can we get Storage Unit and Warehouse Number from Handling Unit.
    I know we can pull transfer order from table LTAK & LTAP using warehouse number.
    But i dont understand how to get warehouse number from handling unit.
    There is table LSUTO which has warehouse and Handling unit relation, but in our system there is not data maintained in that table. So, i was just wondering how can i get warehouse number from the given handling unit number.
    please guide me
    thanks
    Edited by: Mr A on May 12, 2008 1:23 AM

    Hi ,
        Check out the handling unit item table VEPO. You got storage location(LGORT) in it.
    Reward points if it was useful.
    Regards,
    Abhishek

  • What is the best way to open close and pass instrument handles from labview in teststand parallel model?

    I have a number of test systems that use a parallel model with labview. We have a good number of instruments(PXI).
    What is the prefered method for open,closing and passing instrument handles in teststand using labview? 
    Solved!
    Go to Solution.

    Hi,
    No, Below is a bit from the Session Manager Help
    Currently, Session Manager supports the following instrument session types:
    IVI Sessions—Use an IVI session to obtain the C-based instance handle for an IVI logical or virtual instrument name. NI Session Manager does not support IVI-COM drivers at this time. When IVI-COM drivers are available, you can use an IVI session to obtain an ActiveX interface reference to an IVI-COM driver.
    VXIplug&play Sessions—Use a VXIplug&play session to obtain a C-based instance handle for a VXIplug&play logical or virtual instrument name. Configure VXIplug&play names in the <VXIplug&play directory>\<Platform directory>\NISessionMgr.ini file.
    VISA Sessions—Use a VISA instrument session to obtain a C-based viSession handle to a VISA resource or logical name. Configure VISA logical names in the <VXIplug&play directory>\<Platform directory>\NISessionMgr.ini file.
    Custom Sessions—Use a custom session to create a data container object that shares ActiveX objects you create or other data between software components you write. Use the Attach and Get methods to attach data to and retrieve data from a session. A custom session does not initialize, close, or own an instrument handle. The data you share with a custom session does not have to be instrumentation related. You can create a custom session with any name you request.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Bug discovered in LabVIEW 8.5.1 with reentrant VIs

    Hi NI,
    I discovered a bug with the way LabVIEW handles the state of front panel controls for reentrant VIs that have the front panel open during execution.  Essentially, what is happening is that the Boolean text on the FP button is not getting updated properly.  Sometimes it will update correclty, other times it won't.  This makes the bug intermittent.
    Please see the attached example code for a demo.
    Doing the following does NOT make the bug go away:
    reentrant_gui.vi --> VI Properties --> Execution --> Check "Clear indicators when called"
    Doing the following does make the bug go away:
    reentrant_gui.vi --> VI Properties --> Execution --> Select "Preallocate clone for each instance"
    However, in theory it should not be necessary to preallocate a clone since the FP values are wired into the vi before it is called (see the simple demo code).  Plus, for my application, I need to minimize the amount of RAM occupied by my program, so I don't want to preallocate clones for each instance.
    Cheers,
    Richard
    Attachments:
    lv_reentrant_bug_illustrated.llb ‏35 KB

    I'm running 8.6.1, and I see what I would expect, when I run your code
    Your instance:
    copies NUMERIC IN to NUMERIC OUT
    Copies its BOOLEAN's property BOOLTEXT.TEXT to STRING OUT
    Sets its BOOLEAN's property BOOLTEXT.TEXT from STRING IN
    Reads the BOOLEAN  (no effect)
    Waits 100 mSec
    You call two of these in a loop, one fed with the loop counter "i", and a string of "i", the other called with 0.0, and "blah"
    The first time up, I don't know what I'll get from the STRING OUT, it depends on what the BOOLTEXT.TEXT property is set to.
    The NARRAY 1 is labeled "should contain 0 to N", and it indeed should contain 0 to N-1, and it does.
    The NARRAY 2 is labeled "should contain all 0s, and it indeed should, and it does.
    The SARRAY 1 is labeled "should contain all OKs". but it really should  contain the strings "X","0',"1","2","3",... where X is indeterminate the first time up.
    The SARRAY 2 is labeled "should contain all OKs, but it really should contain all "blah"s, and it does.
    I don't know why you are expecting "OK".
    I see no bug at all. 
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • Money was deducted from my account after i added my visa card number to my account

    I was planning on buying an app from iTunes, but before doing so, I decided to add my Visa card number to my account so buying applications from iTunes would be easier in the future. Right after I added my card number to my account, I receive a message saying that money was deducted from my account, and there was no explanation why. I highly suspect that the company has taken the money out of my card for some reason, since I haven't used this card for a few months and the application I was trying to buy is really important for my upcoming project!
    I initially had $2.02 to buy the application, which was more than enough, but suddenly $1.09 was deducted from my card and now I only have $0.93, which isn't even enough to buy the application!
    Please help me!!!!!!

    Each time that you add or change your card details a small temporary store holding charge may be applied to check that the card details are correct and valid and that it's registered to exactly the same name and address as on your iTunes account - your card issuer should remove within a few days or so.
    Store holding charge : http://support.apple.com/en-us/HT3702
    How much was theappthat you trying tobuy ? The store holding charge is usually $1, or the amount f the item (plus tax) of what you are trying to buy

  • How do I get a tech to visit and test my lines?

    I live in Warrandyte (VIC) and it is widely known that our internet service in the suburb is sub-standard.  This is due to a combination of exchange congestion and ageing infrastructure in the street.
    What I need is a technician to visit and test my lines;  (a) at the pole(b) at the 1st point in my house (c) at another point in the house so that I can determine exactly where the issue is with my phone/adsl service What telstra number do I call to get this organised?  

    In some cases they will check the wiring to the first socket, however a lot of houses now have the NBP as the Madison box (or similar). So it's unreasonable to give an expectation of work inside the property. Also because even if you have a first socket as the NBP, they will check the cabling to that but otherwise will check nothing else within the house.
    As soon as you say they will test in the house it sets an expectation and no amount of qualification will be remembered when an ICOF is charged because it's in the dodgy extension cabled patched from the first socket running under the house (or situations like that).

  • Error when determining a number from object BI_TSDTEL and number 01

    Hi BW Experts,
    After Transporting Infosources (Master & Transaction) to BW QA, the transfer rules were not getting activated in QA. The following error message was diaplyed.
    "Error when determining a number from object BI_TSDTEL and number 01
    Object name can only contain characters from syntactical character set
    Object name can only contain characters from syntactical character set
    Data element for InfoObject KOKRS 0CO_AREA could not be created
    Data element for InfoObject KOKRS 0CO_AREA could not be created
    Transfer structure 0IM_FA_IQ_2_SB activated under the name 0IM_FA_IQ_2_SA
    It is not necessary to copy dependent objects for transfer structure 0IM_FA_IQ_2_SA
    Transfer structure 0IM_FA_IQ_2_SA does not exist
    Error RSAR 440 when handling objects with type R3TR ISTS."
    I have gone through the Note: 674818.
    Could someone clear me about BI_TSDTEl, By using this do we need to maintain object intervals manually in all the systems like BW ( Dev & QA ), R/3 (Dev & QA).
    Because  I have not seen the Intervals in R/3 ( Dev & QA) systems.
    please could someone provide Inputs for this.
    Thanks in Advance
    Regards
    SK

    Hi,
    Try to see that transfer structure is existing in the sytem which is connecting in
    the BW quality.
    You need the same to be transported from the development server of R/3 to quality server of R/3.
    Just check if this helps.
    Regards
    Rahul Bindroo

  • Do I need to use a semaphore when reading/writing a functional global from reentrant VIs?

    I have a program that spawns multiple reentrant VIs running simultaneously.  These VIs write their status to a functional global.  The VI that monitors them periodically polls this global to check out how they're doing and takes action based on their collective status.  (BTW, I'll mention that this monitoring VI is NOT the parent that spawned the reentrants, just in case this might affect memory management as it pertains to my question.)
    Anyway, 90% of the time, stuff goes off without a hitch.  However, once in a while the whole thing hangs.  I'm wondering if there's any chance that I've overlooked something and that some kind of collision is occurring at the global.  If that's the case, then should I be setting a semaphore for the global read/writes?
    And, if this is a problem, then there is something deep about functional globals that I don't yet understand.  My notion of them is that they should negate the need for a semaphore, since there is only one global instance, which cannot be simultaneously called by the various reentrants.  Indeed, this is arguably THE WHOLE POINT about functional globals, is it not?  Or am I missing something?
    Thanks,
    Nick 
    "You keep using that word. I do not think it means what you think it means." - Inigo Montoya

    Thanks Uwe,
    This is a good hunch.  However, functional globals typically run at "subroutine" priority.  With this priority, it is not possible to select a specific execution system; it is always "same as caller."
    I will try your suggestion by switching to "time-critical" priority.  However, I do not know if this could lead to a different set of issues (non-determinism?).  It will probably take a little while to hear back from my guys on whether this makes a difference or not, because the error is sporadic, and sometimes doesn't come along for quite a while.
    While probing all of this, I looked at the execution settings for my reentrant VI.  It has standard settings: "normal" priority, running in the "same as caller" execution system.  My impression has always been that LV creates the clones with unique names.  This allows the clones to be in the same execution system with no problem, and the fact that the execution dialog allows me to choose "same as caller" for a reentrant VI supports this assertion.  This is logical, since there could potentially be many more clones than available execution systems.  "Preallocate clone for each instance" is selected, which is what I want, I think, though I don't know if it matters in my application.
    In summary, I am trying out your suggestion, but with skepticism.  Any other suggestions from anyone out there?  Any misunderstandings on my part that need clarification?
    Thanks,
    Nick 
    "You keep using that word. I do not think it means what you think it means." - Inigo Montoya

  • My OSX 10.5.8 won't type letters f,r and number 4

    my OSX 10.5.8 won't type letters f,r and number 4, also the caps lock will not work, How can I fix this?
    It happened after I held the D tyring to get the computer to do a self diagnostic. 
    I was also trying to change the language on the computer to English,
    I think the problem is related to this,
    Should I reset the PRAM?   Anyone MacBook Pro Experts Out There?

    Apple offers some basic advice on troubleshooting this:
    http://support.apple.com/kb/TS1381
    I realize your situation may seem different, but see if these tips are helpful.
    A PRAM reset would be in order if the former doesn't work.
    http://support.apple.com/kb/HT1379
    If none of this works, it may be that there's an issue with the keyboard or software. In that case, you'd best visit your local Apple Store/Genius Bar for help.

  • How can i fake a visa card number? so that i can use my apple id perfecto, how can i fake a visa card number? so that i can use my apple id perfecto

    how can i fake a visa card number? so that i can use my apple id perfecto, how can i fake a visa card number? so that i can use my apple id perfecto

    You aren't going to get any answers for this question for legal reasons...I would recommend you get a real visa card number under your name and do it the legal way.

  • Can VISA and DAQ driver work simultaneously?

        I can program digital I/O with VISA driver(generated
    by VISA driver development wizard ),using ibus. But in Max , it can’t
    find Daq device. I update driver ,using daq7.3, my program can’t work.
    I trace the error, the VISA function “viFindRsrc” doesn’t return the
    correct PXI device number. I want use VISA driver to operate serial
    DIO, at the same time , use Daq driver to acquire data. Is it feasible?
    Can the E series pci devices work under two drivers ( using VISA and
    Using DAQ )simultaneously?

    You can use the MHDDK and NI-DAQ on the same device, but you should only have one inf pointing to them.  If you have NI-DAQmx installed, NI-VISA will be able to find any of the NI devices in your system.  Just go to MAX  Tools Menu >> NI-VISA >> VISA Option ...  Check the box for "Show all devices accessible to VISA."  You can then remove the inf you created with the Wizard.

  • Dynamically run multiple VIs and return values

    Dear Experts:
    I would like to dynamically run 8 VIs from a main VI that esentially do the exact same thing.  The only thing that is different is the data passed to the VIs and the data returned.  The VI has a loop that can possible run for ever and each of the 8 loops can be started at different points in time.  I figure I would use a functional global to pass controls to the VI (loop).  I am not sure how I will get data from each loop.  I can't use a functional global for this because there is no sequencial timing. The number 8 might change so I can't just make 8 loops in main.
    I would like to be a little more clear.  How do you return individual data from a VI that has been dynamically launched 8 times at different points in time?

    The data type of the queue needs to be a cluster.  One element being an ID of some sort (this ID should be passed into the subVI) and another element being the actual data.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • What security code i should give while giving my visa card number

    hello, i just adding my new user id to apple itunes.but while processing the visa card number and security code ,it saying that my security code is invalid.

    For Visa cards, the security code is a three digit number on the back of the card:

Maybe you are looking for

  • Error in ABAP Proxy generation?

    hai pals, my intention is to push the data from XI to SAPBWSEM system throgh an ABAP PROXY.        but , here i got an error which i already mentioned in the forum, that is " no connection to integration builder(only local data visible) ".         i

  • Order confirmation after Subcon gr made

    Dear guru I am using external operation (subcon) as 0030th operation in order previous operation 0020  i confirmed 1000 nos and PO is made for 1000 nos Gr is done only for 500 nos form vendor side (balance 500 nos remaining in vendor processing) now

  • Optimization and flattening

    I am a fairly new user to Adobe and was wondering how to optimize and flatten a pdf using Acrobat Standard XI?

  • Graphic Symbol First Frame Issues with Tweening

    I'm working on some fairly detailed character animations, and accordingly have made most of the characters parts into graphic symbols. For instance, his hand is a graphic symbol which has multiple frames for each perspective or pose of the fingers, a

  • Journe air 1000 - video playback lags after converting to mjpeg

    Hello, i have bought 2 journe air 1000 photo frames, and i'm trying to play video on them. To convert the video files i'm using the provided software that was in CD that came with the frame - ArcSoft video converter 2.5, which converts the video to a