Why can't a reentrant dynamic dispatch method preallocate clones?

Does anybody know why a reentrant dynamic dispatch method cannot preallocate clones? The VI breaks unless you set shared clones.
=====================
LabVIEW 2012
Solved!
Go to Solution.

nathand wrote:
A bit more information here: http://lavag.org/topic/10539-reentrant-vi-with-dynamic-input-terminal-must-use-share-clones-between-...
I have to admit.  Steve Mercer explained it to me at a LUG (OK to the LUG) I'm still betting that this will eventaully be worked around by LabVIEW R&D.  When the use cases make the investment worthwhile
Jeff

Similar Messages

  • Why can't I use rs.deleteRow() method to delete a record?

    the code as such�F
    <%
    String sql="select id,name from test";
    ResultSet rs = jconst.executeQuery(sql);
    rs.next();
    out.print(rs.getInt("id"));
    try
    rs.deleteRow();
    catch (SQLException e)
    out.print("can't delete record");
    return;
    out.print("success");
    %>
    the result is "can't delete record" ,why? I use mysql database�C"jconst" is the bean of connect to mysql database! In the "jconst" bean , I use such method to return Resultset :
    public ResultSet executeQuery(String sql)
    rs = null;
    try
    conn = DriverManager.getConnection(ConnStr);
    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs = stmt.executeQuery(sql);
    catch(SQLException ex)
    System.err.println("aq.executeQuery: " + ex.getMessage());
    return rs;

    It's again the problem with not commiting the changes to databse. In order to commit changes to the database, you need to call the commit() of Connection explicitly or simply close the Statement and Connection objects in your bean.
    After rs.deleteRow() in your jsp you call another method of your bean jconst.saveChanges(); and add this method in your bean.
    public void saveChanges() {
    try {
    stmt.close();
    conn.close()
    } catch(SQLException sqle) {
    //handle the exception
    I hope this will work.
    Sudha
    PS: It's not a good practice to manipulate the database from your JSP. JSP is meant for presentation. You can do all these operations from bean itself.

  • Why can't inner classes have static methods?

    I just tried to add a static method to an inner class, which would have been useful for extracting constants about said inner class, and it turns out that is not allowed.
    Of course I have other ways to code what I wanted, but I'm curious as to why this restriction was set in place. Anybody know?

    Probably because an inner class is tied to an instance of the enclosing class. I think that, conceptually at least, the inner class' definition itself only exists in the context of an instance of the enclosing class. While I'm sure it would have been technically possible to allow it, it would be confusing and not make a whole lot of sense--what is the static context for the inner class, since the class only exists in a non-static context?

  • Why can't I use Get LV Class Default Value in a dynamic VI?

    I am attempting to override a VI that uses "Get LV Class Default Value" and getting an error that I don't understand.  My parent class, "ANT Message Class", has two children - "ANT Command Class" and "ANT Response Class".  The children share a lot of data and functionality, including the factory pattern that the parent class' "Load Message Class" VI implements (see image).  I would like to override this VI with a Command version and a Response version, which would simply call the Message version with their respective classes overriding the dynamic input and output terminals.  However, I am getting the error "Front Panel Terminal 'ANT Message Class Out': Run-time type not propagated from dynamic input to dynamic output."
    Not sure how to get around this one.  Any ideas?
    Thanks,
    -Jamie 
    Solved!
    Go to Solution.
    Attachments:
    Get LV Class Default Value in dynamic VI.png ‏179 KB

    The To More Specific node is dealing with compile-type inference. In this case, you are loading a default instance from disk and then attempting to cast to the base Message class. However the type you are casting to is going to a dynamic output - this gives the compiler no assurances that the input class at run-time on the dynamic input will be the same as the output type; only that it will be a type at the top of the hierarchy. Dyanmic dispatch inputs/outputs must be the same type to guarantee some form of type safety.
    You need the Preserve node there so that you can guarantee the class at both dynamic dispatch terminals will be the same type.
    However this is probably not the best mechanism for a factory method. Factory methods should ideally be static; their job is to provide an instance of the right type (e.g loaded by path as per your example) and you don't need an instance of a class to do that. The only reason I can think of to over-ride said functionailty in a dynamic dispatch method is to provide some form of custom construction for the creation of the type. If all you are creating is an instance with nothing but the default private data then there is no reason to over-ride in the child classes.
    EDIT: Another post collision. nathand is on the money with this one.

  • Why can't I  share an SQL_HANDLE_DBC handle in tow children thread?

    I try to let one child thread to get an SQL_HANDLE_DBC handle,and use it in the other child thread,
    but failed.the error string told me that the connection have not been opened.Why???
    But I use it in the Father thread,everything is ok.Who can tell me why??

    The To More Specific node is dealing with compile-type inference. In this case, you are loading a default instance from disk and then attempting to cast to the base Message class. However the type you are casting to is going to a dynamic output - this gives the compiler no assurances that the input class at run-time on the dynamic input will be the same as the output type; only that it will be a type at the top of the hierarchy. Dyanmic dispatch inputs/outputs must be the same type to guarantee some form of type safety.
    You need the Preserve node there so that you can guarantee the class at both dynamic dispatch terminals will be the same type.
    However this is probably not the best mechanism for a factory method. Factory methods should ideally be static; their job is to provide an instance of the right type (e.g loaded by path as per your example) and you don't need an instance of a class to do that. The only reason I can think of to over-ride said functionailty in a dynamic dispatch method is to provide some form of custom construction for the creation of the type. If all you are creating is an instance with nothing but the default private data then there is no reason to over-ride in the child classes.
    EDIT: Another post collision. nathand is on the money with this one.

  • Why can't I use Alt+Enter to open addresses in a new tab?

    Why can I no longer use Alt+Enter in 6.0 on Windows Vista.
    I have tried Customizable Shortcuts, the shortcut isn't even listed.

    The To More Specific node is dealing with compile-type inference. In this case, you are loading a default instance from disk and then attempting to cast to the base Message class. However the type you are casting to is going to a dynamic output - this gives the compiler no assurances that the input class at run-time on the dynamic input will be the same as the output type; only that it will be a type at the top of the hierarchy. Dyanmic dispatch inputs/outputs must be the same type to guarantee some form of type safety.
    You need the Preserve node there so that you can guarantee the class at both dynamic dispatch terminals will be the same type.
    However this is probably not the best mechanism for a factory method. Factory methods should ideally be static; their job is to provide an instance of the right type (e.g loaded by path as per your example) and you don't need an instance of a class to do that. The only reason I can think of to over-ride said functionailty in a dynamic dispatch method is to provide some form of custom construction for the creation of the type. If all you are creating is an instance with nothing but the default private data then there is no reason to over-ride in the child classes.
    EDIT: Another post collision. nathand is on the money with this one.

  • Problem with combination of LabVIEW classes (dynamic dispatch), statechart module and FPGA module

    SITUATION:
    - I am developing a plug-in-based software with plug-ins based on LabVIEW classes which are instanced at run-time. The actual plug-in classes are derived from generic plug-in classes that define the interfaces to the instancing VI and may provide basic functionality. This means that many of the classes' methods are dynamic dispatch and methods of child classes may even call the parent method.
    - Top-level plug-ins (those directly accessed by the main VI) each have a run method that drives a plug-in-specific statechart.
    - The statechart of the data acquisition plug-in class (DAQ class) calls a method of the DAQ class that reads in data from a NI FPGA card and passes it on to another component via a queue.
    PROBLEM:
    - At higher sampling rates, an FPGA-to-host FIFO overflow occurs after some time. When I "burden" the system just by moving a Firefox browser window over the screen, the overflow is immediately triggered. I did not have this kind of problem in an older software, where I was also reading from an FPGA FIFO, but did not make use of LabVIEW classes or statecharts.
    TRIED SOLUTIONS (WITHOUT SUCCESS):
    - I put the statechart into a timed loop (instead of a simple while loop) which I assigned specifically to an own core (I have a quad-core processor), while I left all the other loops of my application (there are many of them) in simple while loops. The FIFO overflow still does occur, however. 
    QUESTION:
    - Does anybody have a hint how I could tackle this problem? What could be the cause: the dynamic dispatch methods, the DAQ statechart or just the fact that I have a large number of loops? However, I can hardly change the fact that I have dynamic dispatch methods because that's the very core of my architecture... 
    Any hints are greatly appreciated!
    Message Edited by dlanger on 06-25-2009 04:18 AM
    Message Edited by dlanger on 06-25-2009 04:19 AM
    Solved!
    Go to Solution.

    I now changed the execution priority of all the VIs involved in reading from the FPGA FIFO to "time critical priority (highest)". This seems to improve the situation very much: so far I did not get a FIFO overflow anymore, even when I move around windows on the screen. I hope it stays like this...

  • Why can't we have a real 'finalise'

    Hi :)
    As we know, all advice about the 'finalise' method is to never
    use it, don't override it, pretend it doesn't exist, and if you ever
    actually do write code in it, make sure it doesn't throw an exception,
    and make sure (can't remember if this is just a 'myth') that it
    executes in a very small time period.
    Now, i don't have a problem with the requirement for this implementation,
    but why can't we have a 'finalise' method that we can implement code
    in.
    Personally, I would love to have such a method where I can close my
    resources, even do other things to conceptually 'end' my objects life.
    Consider how ridiculous it would be if an OO language said: "yes,
    there is a constructor, but don't write code in it ..., oh, you wan't to
    'initialise' your object you say? well, create a pattern or interface or
    whatever, implement an 'init' method, and always call that'. Anyone
    who had a programming language tell him that would drop it for
    a more sensible one.
    So come on ... we have a method (even as many as we feel like, assuming
    signatures) to 'establish' our object, why are we disabled and disallowed the
    option of having one to finalise it (even; not sure of the appropriateness: ones
    matching the constructor signatures).
    who's with me? :) !

    Where is your problem ?
    Use a finally clause...Hence the fragileness. Out of the population of
    developers, what percentage do you suppose remember to
    do that? It would be MUCH better for the VM to take
    care of it, destructing/finalizing objects either as
    soon as they are no longer strongly reachable (hard to
    implement), or at least at SOME point before the app
    dies (the GC COULD have been designed to GUARANTEE
    running before app termination)What I mean was that you can do something (clean up used connections, streams etc.) but let the GC do the rest. By the way it isn't guaranteed that the GC will run a full garbage collection before you close.

  • Variable size array output from dynamic dispatch class method on FPGA

    I have a Parent class on the FPGA that will serve as a template/framework for future code that will be developed. I had planned on creating a child class and overriding a couple methods. The child class constant would be dropped on the block diagram so the compiler wouldn't have any trouble figuring out which method (parent's or child's) should be used (i.e. the parent's method will never actually be used and won't be compiled with the main code). The output of one of the methods is an array. This array will have a different size depending on the application. I defined the array size as variable. In the child method, there is no question about the size of the array so the compiler should be able to figure it out. However, when I try to compile, I get an error about the array size. I can't figure out any way around it. Any thought would be greatly appreciated! 
    Thanks, Patrick
    Solved!
    Go to Solution.
    Attachments:
    FPGA Test.zip ‏1194 KB

    Wait what?
    Can we use dynamic dispatch VIs on FPGA?  Really?  I was completely unaware of this.  Obviously the dependencies need to be constant and known at compile time but...... This would have saved me a lot of headaches in the last few months.
    Since which LV version is this supported?
    Say hello to my little friend.
    RFC 2323 FHE-Compliant

  • I used an American Express card to purchase my Ipad from Apple online. I have an Apple ID. why can't I use Amex as my payment method when signing in to Itunes?

    I have an Apple ID, created when I recently purchased an ipad from Apple online. I used my Amex as payment method. Why can I not use my Amex as payment method when signing in to iTunes for the first time?

    Yup, I'm a Kiwi, living in sunny Blenheim. Just seems odd that I can use Amex for purchasing in the Apple store but not in the iTunes store. Perhaps the higher charge set by Amex is not  economic for small purchases? Anyway,
    I know now what to do now - buy an iTunes gift card and enter the activation code to redeem and sign up. Sorted! Thanks Kappy for taking an interest in my query.

  • Why can I no longer, after having downloaded Lion, write accents and other diacriticals when in the Google, Yahoo, FaceBook, or even here in this post? The new method for getting at the "option" symbols works fine in other places like spotlight, but now e

    Why can I no longer, after having downloaded Lion, write accents and other diacriticals when in the Google, Yahoo, FaceBook, or even here in this post? The new method for getting at the "option" symbols works fine in other places like spotlight, but now even the older "option+letter" doesn't work in most places.

    Chrome doesn't support the new accent/diacritics/macron chooser. I'm not sure about other browsers such as Firefox. You can use the old Option+letter combination that Doug suggested. Hopefully updates will solve these little incompatibilities shortly.
    Neill

  • Using iTunes why can you not backup and save your voicemail?  Guide me through this step by step if possible.  If alternate method MUST be used then provide same.  Truly appreciate this.

    Using iTunes why can you not backup and save your voicemail?  Guide me through this step by step if possible.  If alternate method MUST be used then provide same.  Truly appreciate this.

    Create and delete iPhone, iPad, and iPod touch backups in iTunes - Apple Support  - link doesn't state that voicemail is part of the backup
    iCloud: iCloud storage and backup overview  states that VVM is part of the icloud backup.
    You can also contact your cell phone provider - as voicemail is a carrier feature.

  • When is Apple going to fix the problems with IOS8 Safari either won't work or is very slow.why can't you contact Apple themselves rather than this method?

    ssince updating my IPad to IOS8 Safari does not work properly ie Marriott website it tells me no server is available yet Google works and other web search have the same problem when is Apple going to get fixes out soon I hope.Also why can't we contact Apple direct on this matter ?

    Try some basic troubleshooting steps. Clear Safari, force close the app and reset the iPad.
    Go to Settings>Safari>Clear History, Cookies and Data.
    In order to close apps in iOS 8, you have to drag the app up from the multitasking display. Double tap the home button and you will see apps lined up going left to right across the screen. Swipe to get to the app that you want to close and then swipe "up" on the app preview thumbnail to close it.
    Reset the iPad by holding down on the sleep and home buttons at the same time for about 10-15 seconds until the Apple Logo appears - ignore the red slider if it appears on the screen - let go of the buttons. Let the iPad start up.
    There re are ways to contact Apple directly. Look here for help.
    Contact Apple for support and service

  • Combining LVOOP DVR with Asynchronous Dynamic Dispatch and Preserve Run-Time Class

    OK, the title sounds like a cornucopia of LVOOP terms.  But there's a reason.  This is in a way an extension of THIS thread.
    What I'm doing recently is creating a LVOOP approach to loading Completely Asynchronous UI elements into subpanels.  This I have combined with a global repository for the objects (which are essentially singletons with a UI functionality) which are shared via DVR, thus eliminating a lot of synchronisation headaches).
    This means that I can ahve a universal framework for launching the UI elements into a subpanel.  The changes made on the Object there are automatically reflected in the global repository.
    So far so good.
    What I don't like too much is a combination of two seemingly awkward code constructs I need in order to keep things running.
    Weird construct 1:
    I have defined a "Launch UI" function in my parent class which is Dynamic Dispatch (Allowing each object to take care of launching its own UI).  This takes a parent object DVR as a second input which I make sure is of the exact same type as the object type being invoked by using the code shown below.  The ACTUAL Type of both inputs to the launch VI within the IPE are identical.  This is guaranteed because I require each new class to override this function.
    Here I pass the DVR from outside the IPE to the "Launch" VI but the Object obtained within the IPE retains information required for DD thus ensuring that the VI called for launching the UI is identical to the ACTUAL object type in the DVR.  This works OK and by placing this weird construct WITHIN the parent class, abuse is minimised, it works fine and seems to have no major side-effects.
    So now we have a VI running asynchronously in the background which belongs to a specific object but has a DVR which it *thinks* is of a Parent Type but, because of the steps taken earlier, is actually of the same type as the object itself.
    In order to make use of the functionality defined in this actual object type, I need to continuously re-interpret the Object within the IPE as shown below.  Otherwise only the Parent functionality is available.
    If I am accessing only methods of the parent class, then the Preserve functionality is not needed.
    Is there a more elegant way to do this?  I find the net result of this code and type-juggling to be really useful and much easier to manage than the non-DVR route since the synchronisation issues disappear.  By making the IPE usage near-atomic we remove the chances of deadlock.
    All editing done in the UI of the asynchronous VI is reflected automatically in any subsequent usage of the DVR.  Even if the DVRs are not shared between VIs, this makes (for me) the headache of synchronisation easier.  If you start expanding this beyond the limits of a single VI, the benefits in Synchronisation become really huge.  You can even have multiple UI objects operating on the same data in the background without extra synchronisation needs.  The only synchronisation required is a global "Data updated" for the object in question whereby the UI elements simply update their indicators and controls from the DVR again.  This is trivial.
    Thus I am convinced that the net result of this is very beneficial.
    My question is if there's a better, safer or more "official" way to do this?
    I was about to start a new Idea for combining the "Preserve Run time Class" and the DVR Terminal of the IPE so that the casting is done automatically.  We could then have a double input to the IPE, the DVR (of base type) plus the ACTUAL Type of the object but of course returning an error if the types are incompatible.  It would be like an "Imposter" DVR input for the IPE which allows a re-interpretation of the object type.
    Would all of this go away if we allowed Dynamic Dispatch to work with DVRs?  Probably.
    Shane
    Say hello to my little friend.
    RFC 2323 FHE-Compliant
    Solved!
    Go to Solution.

    You guys rock!
    I didn't even think of casting the DVR like that.  Kinds stupid of me but I never would have thought it would work.  Cool.
    Also, Yeah, the limitation of no IPE in the Launch VI was one I spotted quite early on.  this is why my Launch VI also doesn't accept more data than is absolutely neccessara because a DVR access in that VI will of course cause a lockup.  I have the system so far now that I can have a SINGLE Launch VI (Which is NOT overridden, so the limitation refers to only a single VI now which is certainly better.
    So again guys, thanks for helping out an old newbie.  I've been around for quite a while, have made many posts but I love the way I just keep learning from others in the Forum.  This is just why I absolutely LOVE it here. 
    Shane.
    Say hello to my little friend.
    RFC 2323 FHE-Compliant

  • Can I call a dynamically loaded subvi from a subvi inside a library?

    I have an application that uses a .lvlib, this library has many subvi's.  From my executable, I can dynamically load subvi's within the library using the "open reference.vi" and passing in just the name as long as the subvi's being called are listed in the "always included" list of my build specification.  What I want to do now is load an external subvi (external to the library) using the same method.  But when I try to do this, LabVIEW cannot find the external subvi even when it is included as part of the executable.  It seems the Paths are getting messed up.  Here is what is happening:
    Lets say I have Mylibrary.lvlib as my library in the following path C:\MyProject\Mylibrary.lvlib,
    and internal.vi as my subvi within the library in the following path C:\MyProject\MySubVis\internal.vi,
    and external.vi as my subvi outside of my library in the following path C:\MyProject\external.vi
    This is all in the same project.
    I'm using the "Open VI Reference.vi" from internal.vi to call external.vi, and I'm including both internal.vi and external.vi in my executable (MyEXE.exe for illustration purposes).  When I run this part of my code I get an error and LabVIEW reports the path of my external subvi as: C:\MyProject\MyEXE.exe\MySubVis\external.vi which is really the path for my library subvi.  Why?
    Either way, when I hard code what is supposed to be the correct path to my external subvi:  C:\MyProject\MyEXE.exe\external.vi, LabVIEW can't seem to find the file, its' almost like an access scope problem because I'm trying to access something outside of the library.  Is there such thing?  If the file is part of my exe why can't LabVIEW find it???  How can I call my external.vi BY NAME from my internal.vi??
    Any help is appreciated.

    Your hardcoded path is incorrect. How do you have the build configured? Are you using the new executable structure or the pre-8.2 structure.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

Maybe you are looking for

  • Mid 2010 15" i5 Battery Calibration Questions

    Hi, I have a mid 2010 15" MacBook Pro 2.4GHz i5. Question 1: I didn't calibrate my battery when I first got my MacBook Pro (it didn't say in the manual that I had to). I've had it for about a month and am doing a calibration today, is that okay? I ho

  • How to populate View Criteria Item programatically

    Hi, I'm using Jdeveloper 11.1.2.3.0. I created a query panel with operator Between for EmployeeId attribute and used bind variables in the VC fromEmpId, toEmpId, and dropped the VC as a query panel on a jsf page. At run time, when i entered a value i

  • Trouble with adding images from database

    So I have created this nice little table and want to populate it with an test row and I cant seam to get it to work. I have neber delt with BLOB before and maybe its with that. Well here is the sql code that I am using CREATE TABLE Product (name VARC

  • SLD Error - Urgent

    Hi All, Whenever I create a Technical system in SLD, I get the following errors: CIM_ERR_FAILED: Unable to execute createInstance() request, exclusive write mode is enabled Since, I am not able to define a Technical system in SLD, I am not able to cr

  • Where is spell check on my computer

    where is my spell check on my computer? Im new to apple and I cant really get the full effect of it to I learn it please help