Event Callback from a Reentrant VI Recursion Error

Greetings,
I am using Register Event Callback with an ActiveX object to respond to user mouse events. The problem is that when I run the VI (the main, calling vi) as reentrant, Labview gives an error that the "Callback.vi" is attempting to recursively call "Main.vi".
Is there a way around this problem? I intend to run two copies of "Main.vi", so reentrant execution seems necessary.
- Colin Holbrook

Hi Colin,
Are you placing the Register Event Callback inside of the Main VI and then wiring the same Main VI to the VI Reference terminal?  If so, then that explains why you are getting an error.  You cannot use the Register Event Callback to call a VI within itself.  If this is not the case, then please post a simple VI that demonstrates the problem. 

Similar Messages

  • Recursive ActiveX register event callback VI

    Hi!
    I am trying to control a motor in LV2013 using the ActiveX concept. When I use a "register event callback VI" function, can I call the same VI that calls a VI (with the "stop rule" controlled be the user data terminal, of course, inside)? By default, callback Vis that one can create for this are all reentrant (preallocated clone) and synchronious (according to help). However, both when I use the "server VI reference" ("This VI") and when I create a reference and browse for the same file - "register event callback" shows me a broken wire.

    _Basil_ wrote:
    As far as I understood, putting a  movement method in the loop will not give any result, so I tought in the direction of the recursive callback. However, I found this post. Would you in general agree that the callback VI cannot be recursive? I attach my code in LV13 (if you need me to convert, I will)
    Sorry, I'm still on LabVIEW 2012 here, so can't look at your VIs. I don't understand your comments in these sentences though. What do you mean by putting a movement method in a loop will not give any result? And why would you ever want a recursive callback? The callback is called each time the event occurs. There's no sense in making it recursive, nor would you want to re-register for a callback on an event inside a callback VI. Normally a callback should contain very little logic; it should primarily pass some piece of information (through a queue, user event, etc) back to the main thread and let the main logic handle it.

  • Error implementing dynamic callback from BPEL process

    Hi,
    I am trying to use dynamic callback from a BPEL process..
    Created a variable of type EndpointReference by importing the ws-addressing.xsd. in the partnerlink wsdl..
    I assigned the URL to the variable's address field ...
    <copy>
    <from expression="'http://172.31.171.123:8888/PubSubWLPOC-CallbackSvc2-context-root/EIPWFServiceCallbackPort'"/>
    <to variable="ep_var" query="/ns3:EndpointReference/ns3:Address"/>
    </copy>
    Gives no error till now...
    But when I try to assign the same variable to the partnerlink, I get an error..
    <assign name="Assign_7">
    <copy>
    <from variable="ep_var"/>
    <to partnerLink="MyWebService1"/>
    </copy>
    </assign>
    The error is like this(from the $SOA_HOME\bpel\domains\default\logs) :-
    java.lang.NullPointerException
    at com.collaxa.cube.engine.types.bpel.CXPartnerLink.copy(CXPartnerLink.java:246)
    at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.performCopyTo(BPELAssignWMP.java:1151)
    at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__executeStatements(BPELAssignWMP.java:215)
    at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199)
    at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3698)
    at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1655)
    at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
    at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:217)
    at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:314)
    at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5765)
    at com.collaxa.cube.engine.CubeEngine.callbackPerformer(CubeEngine.java:1885)
    at com.collaxa.cube.engine.delivery.DeliveryHelper.callbackPerformer(DeliveryHelper.java:845)
    at com.collaxa.cube.engine.delivery.DeliveryService.handleCallback(DeliveryService.java:794)
    at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleCallback(CubeDeliveryBean.java:378)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    The confusing part is when I use xml fragment instead of the variable ep_var, it works fine ...
    But I cannot use the same as the callback can be made to any url(which is decided on runtime)
    Can someone pls help me with this ?
    saptarishi

    Hi,
    I have done following for dynamic call back and it works..
    <copy>
    <from>
    <_EndpointReference xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing">
    <Address/>
    </EndpointReference>
    </from>
    <to variable="EndpointUrl"/>
    </copy>
    <copy>
    In the above assignment from part is an xml fragment assigned to Endpoint Url
    <copy>
    <from expression="'http://172.31.171.123:8888/PubSubWLPOC-CallbackSvc2-context-root/EIPWFServiceCallbackPort'"/>
    <to variable="ep_var" query="/ns3:EndpointReference/ns3:Address"/>
    </copy>
    </copy>
    <copy>
    <from variable="EndpointUrl"/>
    <to partnerLink="SFDC_plt"/>
    </copy>

  • The event logging service encountered an error while processing an incoming event published from Microsoft-Windows-Security-Auditing.

    Last night, some of our systems installed updates released on 11/13/2014.  
    KB3021674
    KB2901983
    KB3023266
    KB3014029
    KB3022777
    KB3020388
    KB890830
    Today, all of the servers running Windows Server 2008 R2 started logging the following error in the Security log over and over:
    Log Name:      Security
    Source:        Microsoft-Windows-Eventlog
    Date:          1/15/2015 11:12:39 AM
    Event ID:      1108
    Task Category: Event processing
    Level:         Error
    Keywords:      Audit Success
    User:          N/A
    Description:
    The event logging service encountered an error while processing an incoming event published from Microsoft-Windows-Security-Auditing.
    Servers running Windows Server 2008 that also installed the updates are not experiencing the problem.  It looks like one of the updates may have introduced this problem with Server 2008 R2.

    ...Did you for sure confirm that:
    https://technet.microsoft.com/library/security/MS15-001
    is the cause?
    I did.  I had a VM that was not experiencing the problem.  I took a snapshot and tested the patches one by one.  Installing only KB3023266 immediately caused the issue to occur (after reboot).  A similar process was used to confirm that
    installing KB2675611 resolved the problem.
    Note that I found the installation of KB2675611 is usually quick, but it took several hours hours to install on some of our systems.  We had installed this patch a few months ago on a couple of servers and it was always quick to install.  But,
    it seems like installing it on a symptomatic system can cause it to take a long time.

  • Ore.connect - ORA-28578: protocol error during callback from an external procedure

    Hi,
    I am having an issue while connecting my ORE client (Rgui) to my oracle instance:
    >library(ORE)
    Loading required package: OREbase
    Attaching package: ‘OREbase’
    The following object(s) are masked from ‘package:base’:
        cbind, data.frame, eval, interaction, order, paste, pmax, pmin, rbind, table
    Loading required package: OREstats
    Loading required package: MASS
    Loading required package: OREgraphics
    Loading required package: OREeda
    Loading required package: OREdm
    Loading required package: lattice
    Loading required package: OREpredict
    Loading required package: ORExml
    > ore.connect(user="RQUSER", sid="HERA", host="SI-ORACLE-11.polocesena.dir.unibo.it", password="rquser", port=1521, all=TRUE)
    Loading required package: ROracle
    Loading required package: DBI
    Error in .oci.GetQuery(conn, statement, data = data, prefetch = prefetch,  :
      ORA-28578: protocol error during callback from an external procedure
    ORA-06512: at "RQSYS.RQEVALIMPL", line 17
    ORA-06512: at "RQSYS.RQEVALIMPL", line 14
    ORA-06512: at line 4
    However if I check:
    > ore.is.connected()
    [1] TRUE
    But:
    > ore.ls()
    character(0)
    and:
    > ore.push(TABLE1)
    Error in ore.push(TABLE1) :
      error in evaluating the argument 'x' in selecting a method for function 'ore.push': Error: object 'TABLE1' not found
    I did not receive error messages during installation.
    ORE version: 1.3.1
    Rgui version: 2.15.3
    Oracle version: 11.2.0.3.0
    Installation:
    -SERVER
         Installed Open source R
         Installed ORE Server
         Installed ORE Client Supporting Packages
         Created the RQUSER and provided him with the necessary privileges
         Modified the extproc.ora file setting EXTPROC_DLLS=ONLY
    -CLIENT
         Installed Oracle DB Client
         Installed Open source R
         Installed ORE Client
         Installed ORE Client Supporting Packages
    Did not find any other clue in previous discussions, just one was pretty similar but it came to no resolution.
    Thanks,
    Lorenzo

    Hi Sherry,
    tnsnames.ora:
    HERA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 137.204.78.85)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = hera)
    listener.ora:
    # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = si-oracle-11.polocesena.dir.unibo.it)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    ADR_BASE_LISTENER = C:\app\Administrator
    extproc.ora:
    SET EXTPROC_DLLS=ONLY
    Thanks,
    Lorenzo

  • JNI Callback from remote process

    I have an application that calls back from C to Java in multiple situations. In some, I have been successful using the technique of calling AttachCurrentThread as described, for example, in various places, e.g.,
    http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jniref.html#invoke
    and recently in this forum
    http://forum.java.sun.com/thread.jspa?threadID=763205&tstart=45`
    This is an accessibility application and one of the situations I need to callback from is a global keyboard hook. In this context, I call from Java to a C DLL which sets up the keyboard hook using the standard Windows procedure SetWindowsHookEx.
          SetWindowsHookEx(    
                      WH_KEYBOARD,    // type of hook to install
                     (HOOKPROC) mykeyboardProc,    // address of hook procedure
                    ( HINSTANCE__* )hDll,    // handle of application instance
                    0     // identity of thread to install hook for  (all threds)      );The keyboard hook functions in Windows by being "injected" into running applications so that it runs in their process space and therein, apparently, lies the problem.
    The keyboard hook gets callbacks from Windows whenever a key is pressed. This is the information I want to learn about back in Java. Our current approach is to have the keyboard hook write the key data to shared memory. Then the Java application makes polling calls into the previously mentioned C DLL which checks the shared memory and returns anything it finds. The C DLL is compiled with the current MinGW compiler.
    This procedure works alright-- I can access the information using shared memory in C and polling that from Java. It is, however, a tad slow. I'd like to use a callback from C directly to eliminate the extra layer of polling. I could, of course, do the polling in the C DLL and call back to Java from there. That would eliminate a process switch every time we poll, but would still leave the polling.
    In my attempts to set up a direct callback from the keyboard hook to Java, the C code uses AttachCurrentThread using the env pointer obtained from the JNI_OnLoad method. When my application has the focus and I type, I get print statements from the C DLL and the callbacks work fine. When any other application has focus, the callback does not work and there are no print statements. In fact, the keyboard hook crashes and stops responding to any key events.
    Since I do not get print statements when another application has focus (or they go into the ether), I do not know directly whether the JNI_OnLoad function actually gets called each time the DLL is loaded into another application. However, the JVM pointer I cache in the JNI_OnLoad function is NULL when I get a key event callback (when another application has focus). I tested this by putting an "exit" call if the cached JVM was NULL in the keyboard procedure (mykeyboardProc above). When any application has focus and I type a key, that application exits. From this I assume that JNI_OnLoad is not getting called, but since the cached JVM is NULL, that is irrelevant.
    One option I have attempted is to use JNI_GetCreatedJavaVMs to get a list of the JVMs running on the machine. From this, I hoped to somehow deduce which JVM was running my application and use its pointer. However, despite putting some of the the directories` with the jvm.dll into my library path:
       g++ -I/c/Programs/Java/JDK15~1.0_0/include
           -I/c/Programs/Java/JDK15~1.0_0/include/win32
           -L/c/Programs/Java/JDK15~1.0_0/jre/bin \
           ....I get the error:
    undefined reference to `JNI_GetCreatedJavaVMs@12'
    I would be grateful for any suggestions or solutions.
    Rick

    Thanks for the reply Jim,
    I've been compiling in the Msys environment.
    I created the jvm.def and generated the jvm.a as you
    suggested.
    This apparently required copying the jvm.dll from
    /c/Programs/Java/JDK15~1.0_0/jre/bin/client
    de]
    to my working directory.  Before I did that I got a
    message
    about stripping the path components from the dll
    name.
    Then I tried to make the DLL in the fashion I had
    been:g++ -I/c/Programs/Java/JDK15~1.0_0/include \
    -I/c/Programs/Java/JDK15~1.0_0/include/win32 \
    L/c/Programs/Java/JDK15~1.0_0/jre/bin/client \
    -shared -o JKeyboardInterface.dll \     
    jvm.a \
    JKeyboardInterface_wrapper.cpp \
    JKeyboardDllMain.cpp \
    JKeyboardInterface.cpp \
    -Wl,--out-implib,libJKeyboardInterface.a \
         -Wl,--add-stdcall-alias -mno-cygwin \
    -fno-rtti -fno-exceptions -s
    This resulted in this error:
    Creating library file: libJKeyboardInterface.a
    K:/DOCUME~1/rick/LOCALS~1/Temp/ccU1daaa.o:JKeyboardInt
    erface.cpp:(.text+0xafb):
    undefined reference to
    `_imp__JNI_GetCreatedJavaVMs@12'
    collect2: ld returned 1 exit status
    Hmmmmm. What happens if you remove the '-Wl,--out-implib,libJKeyboardInterface.a'? It seems to be failing in the step creating the static lib, which may prevent the DLL from being properly created.
    Since this was a different undefined reference, I
    re-did the jmv.def step
    using imp_JNI_GetCreatedJavaVMs@12 instead of
    JNI_GetCreatedJavaVMs@12
    This generated the same error.Yeah. I'm sure I never had to do anything like that.
    >
    Then I tried to use dllwrap with both versions of the
    jvm.a generated above::
    dllwrap --driver-name=c++ \
    --add-stdcall-alias \
    -o JKeyboardInterface.dll \
           jvm.a \
           JKeyboardInterface_wrapper.cpp \
           JKeyboardDllMain.cpp \
           JKeyboardInterface.cpp \With both versions of the jvm.a, I got the error:
    K:/DOCUME~1/rick/LOCALS~1/Temp/ccSccaaa.o:JKeyboardInt
    erface.cpp:(.text+0xafb):
    undefined reference to `JNI_GetCreatedJavaVMs@12'
    ollect2: ld returned 1 exit statusI'm not clear why the two approaches (g++ -shared and
    dllwrap) yield different reference problems.
    I've read that dllwrap is "deprecated" Probably.
    (http://www.mingw.org/MinGWiki/index.php/dllwrap).
    Do you have any other suggestions about how to do
    this?Have a look at:
    http://www.inonit.com/cygwin/
    Msys (which is Mingw) follows cygwin pretty closely.
    I'm not near a Windows machine to try this at the moment. All I can say is that I have an application using CreateJavaVM, compiled with MSYS and it works. CreateJavaVM has the same problems as GetCreatedJavaVMs that you are seeing. The root cause is that the jvm.lib shipped with the JDK for Windows is not compatible with GCC. Hence the need to create the jvm.a library.
    I build my code using an ANT script. It build the objects first and then links them. Deciphering the build script, it looks like the two steps would have the following command line syntax:
    Compile to object files:
    gcc -D REENTRANT -I <paths to include> somefiles.cpp somefiles.c
    (I have a mix of C and C++)
    Link object files to create DLL:
    gcc -shared -D REENTRANT --kill-at -lstdc++ somefiles.o jvm.a
    Try it in two steps and see if it makes a difference.
    >
    Is trying to use GetCreatedJavaVMs the correct
    approach here?
    If more than one exists, how do I determine which one
    I want to attach to and get an env pointer for?From you original post, it is difficult to understand exactly what you are trying to achieve.
    It seems like you are starting with a Java app that calls into some native code to create the keyboard hook. This hook will then call a callback method in native code when a key is pressed. You want the Java code to see this and act appropriately.
    In Java callbacks are usually handled with events. Just have your native code fire an event in Java and have a Listener on the Java side. I do this in some of my code. Say I have an event called FooEvent and a listener called FooListener. There is also an object called Bar which can fire FooEvents and have FooListeners attached to it. The Bar class has an addFooListener() method which is actually a native method. The native implementation sets up the callback stuff on the native side. When an event occurs on the native side, the callback function is called and it does something like this:
    jclass cls;
    jmethodID mid;
    cls = env->GetObjectClass(javaSource);
    mid = env->GetMethodID(cls, "fireSomeEvent", "()V");
    env->CallVoidMethod(javaSource, mid);In the code above, the 'cls' variable would be the Bar class object and the 'javaSource' variable is a global reference ot the Bar object to which the event listener was added. The 'env' variable is acquired by calling 'AttachCurrentThread' on a cached JavaVM pointer stored in a global reference.
    The Bar class has a fireSomeEvent() method, which calls the event listeners using the event generator idiom:
    http://www.javaworld.com/javaworld/jw-09-1998/jw-09-techniques.html
    The listener on the Java side gets notification when the event occurs and you can take the appropriate action. No polling, no shared memory.
    Jim S.

  • Active x and event callback in Labview

    I have an active x written by Aanderaa Instruments (makes
    weather and hydrology sensors), it contain various methods and events to get
    the next line of records from a sensory scanning unit. The connection is
    through the COM1, so far i have wired it up only using the methods to get next
    record level, but then I have found that sometimes it does not get the complete
    record from the COM port. So to solve that I have to use an event in the active
    x to check for new record available. So what I want to do is send the event
    (when complete record available) to VI that uses the get next record method to
    pick up the data from the COM1 port and then send the data back to the main VI
    for processing, plotting and writing.
    My problem is that when I connect the output from the GetNextRecord method to a
    indicator that I then wire on the connector pane to be an output from this
    VI  get an error that there is a wire function conflict. I have tried to
    explain a bit better in the attached pdf file with diagrams.
    The reason why I want to export the data back in the main VI is because it runs
    continuously collecting data every 2 min and I plot them on a graph and write
    them to a file so it will no work to have all that done in the event callback
    VI that will only run ever 2 min, then it will reset the graph the whole time
    and I want continuous data plotting for 10 days of historic data records. I
    also have a few other sensors that come in through a connector board that are
    written o the same file.
    hope somebody can give me some hints
    Attachments:
    labview question.pdf ‏721 KB

    Duplicate post, click here for the original: http://forums.ni.com/ni/board/message?board.id=170&message.id=135639#M135639
    LabVIEW Champion . Do more with less code and in less time .

  • Event callback with active x in labview

    I have an active x written by Aanderaa Instruments (makes
    weather and hydrology sensors), it contain various methods and events to get
    the next line of records from a sensory scanning unit. The connection is
    through the COM1, so far i have wired it up only using the methods to get next
    record level, but then I have found that sometimes it does not get the complete
    record from the COM port. So to solve that I have to use an event in the active
    x to check for new record available. So what I want to do is send the event
    (when complete record available) to VI that uses the get next record method to
    pick up the data from the COM1 port and then send the data back to the main VI
    for processing, plotting and writing.
    My problem is that when I connect the output from the GetNextRecord method to a
    indicator that I then wire on the connector pane to be an output from this
    VI  get an error that there is a wire function conflict. I have tried to
    explain a bit better in the attached pdf file with diagrams.
    The reason why I want to export the data back in the main VI is because it runs
    continuously collecting data every 2 min and I plot them on a graph and write
    them to a file so it will no work to have all that done in the event callback
    VI that will only run ever 2 min, then it will reset the graph the whole time
    and I want continuous data plotting for 10 days of historic data records. I
    also have a few other sensors that come in through a connector board that are
    written o the same file.
    hope somebody can give me some hints 
    Attachments:
    labview question.pdf ‏721 KB

    Hello!
    I checked the PDF file with snippets of your code and it looks alright, no issues or comments regarding that from my side. However it is really difficult for us to troubleshoot when we don’t have the ActiveX control available and even though we had access to the control it would still be quite tricky to find the cause of the problems you are experiencing since we don’t have the hardware and so on.
    I found one link only that mentioned wire conflicts when talking about COM objects and ActiveX and you can find it here:
    http://digital.ni.com/public.nsf/websearch/0CED780​C5D5EDCD5862569D9005AE1FA?OpenDocument
    Regards,
    Jimmie A.
    Applications Engineer, National Instruments
    Regards,
    Jimmie Adolph
    Systems Engineer Manager, National Instruments Northern Region
    Bring Me The Horizon - Sempiternal

  • Executable and Register event callbacks

    Hi,
    I have been running into an issue regarding the building of an executable that has register event callbacks (specifically Test Stand Callbacks).  The VI that is responsible for setting up the event registration is an asynchronous VI.  During development everything works but during deployment of an executable the Callback is either not running or capturing the event from the Test Stand engine (I am looking for the end of execution event).  The setup is not reporting an error, and the pathing to the callback VIs is correct.  Any Ideas on this?
    Does the Teststand engine not post a endexecution callback when running from a executable labview environment?
    Thanks,
    Andrew
     

    akonecki wrote:
    Hi,
    I have been running into an issue regarding the building of an executable that has register event callbacks (specifically Test Stand Callbacks).  The VI that is responsible for setting up the event registration is an asynchronous VI.  During development everything works but during deployment of an executable the Callback is either not running or capturing the event from the Test Stand engine (I am looking for the end of execution event).  The setup is not reporting an error, and the pathing to the callback VIs is correct.  Any Ideas on this?
    Does the Teststand engine not post a endexecution callback when running from a executable labview environment?
    Thanks,
    Andrew
    The TestStand engine is singular regardless of what is hosting the components so it will post the appropriate callbacks. Try some tracing and see what flags up in your callback VI.

  • Event callback timing

    When I am using dynamic events and transmit a counter as event data each time I fire the event, I can have multiple consumers that receive the identical count. Thus, only a single event is generated each time and signaled to all consumers. Ok, so far.
    Now, I am using the Register Event Callback function in LV8.2. to fire events from an ActiveX component (pressing buttons on a joystick device) and use a dynamic event to signal this to multiple consumers. Again, I add a counter to the dynamic event data. What happens now is that the consumers receive different counts, even if I only click the joystick button once. As if there are multiple events generated. For 2 consumers, 2 events are being generated, for 3 consumer 3 events and so on. But how would the callback VI know that there are multiple consumers? 
    I tried reentrant and non-reentrant callback VIs and see no difference ("reentrant" is specified in Help, but I do not fully understand why that should be needed).
    Could anyone explain this behaviour to me? Thank you!
    Dirk

    Hi Daniel,
    thank you for your reply. Although I managed to include the ActiveX components supplied with my special input device, I am not in general familiar with ActiveX. Therefore, I have no idea how to find something as general as "keyboard hit". However, triggered by your reply I now tried it with a modified version of LV's example file using Excel worksheets. There, I do not see the described behaviour.
    Well, I will check again on that special device driver now. At the moment, it is not working at all, which looks fishy...
    Dirk

  • References won't close in UserMessage Event Callback example.

    I download the following example:
    http://zone.ni.com/devzone/cda/epd/p/id/2606.
    I was going to use some of the features of this example to pass variables from my OI to TestStand.  Well unfortunately, this example with the modified UserMessageCallback locks up everything with an R6025 error.  Well, it actually will also give me the Property Object warning dialog ONLY if I have the Debug Options set within the Station Options->Preferences tab set to report Object Leaks, otherwise I get the R6025 error.  Only solution is to go to Task Manager and close out LabVIEW.
    I attached a picture of the callback, I believe I am closing ALL possible references.  I don't understand why TestStand still thinks that the SequenceContext reference is open?   Is there something I have to do special to close the SequenceContext reference because of the Variant to Data function?
    I am running TestStand 4.2.1 and LabVIEW 2010.
    Thanks,
    PH
    Attachments:
    UserMessage Event Callback.png ‏53 KB
    Debug Warnings.PNG ‏19 KB
    R6025 Error.JPG ‏12 KB

    The original example failed, hence it did not work  Again, it did not work with TS 4.2 and LV 2010.
    All I was trying to do is use that example, to pass data from my Operator Interface to TestStand using the SequenceContext.  It was mentioned as an example in a previous post here:
    http://forums.ni.com/t5/NI-TestStand/Passing-Variable-from-Operator-Interface-to-Process-Model/td-p/...
    I attempted to add a fix for the Variant to Data function per reference to the KB, proposed by Anand Jain, in the previous posts!
    In the long run, I will have to go with the method proposed by Ray Farmer. 'The simplest way is just store it in the StationGlobals.'   Not exactly the method I prefer to use, but it seems to be working.
    Thanks,
    PH

  • How to write to windows event logs from determinations-server under IIS

    This is just an FYI technical bit of information I wish someone had shared with me before I started trying to write OPA errors to the windows event log... Most problems writing to the windows event log from log4net occur because of permissions. Some problems are because determinations-server does not have permissions to create some registry entries. Some problems cannot be resolved unless specific registry entry permissions are actually changed. We had very little consistency with the needed changes across our servers, but some combination of the following would always get the logging to the windows event log working.
    To see log4net errors as log4net attempts to utilize the windows event log, temporarily add the following to the web.config:
    <appSettings>
    <!-- uncomment the following line to send diagnostic messages about the log configuration file to the debug trace.
    Debug trace can be seen when attached to IIS in a debugger, or it can be redirected to a file, see
    http://logging.apache.org/log4net/release/faq.html in the section "How do I enable log4net internal debugging?" -->
    <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
    <system.diagnostics>
    <trace autoflush="true">
    <listeners>
    <add
    name="textWriterTraceListener"
    type="System.Diagnostics.TextWriterTraceListener"
    initializeData="logs/InfoDSLog.txt" />
    </listeners>
    </trace>
    </system.diagnostics>
    To add an appender for the windows event viewer, try the following in the log4net.xml:
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
    <param name="ApplicationName" value="OPA" />
    <param name="LogName" value="OPA" />
    <param name="Threshold" value="all" />
    <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="WARN" />
    <levelMax value="FATAL" />
    </filter>
    </appender>
    <root>
    <level value="warn"/>
    <appender-ref ref="EventLogAppender"/>
    </root>
    To put the OPA logs under the Application Event Log group, try this:
    Create an event source under the Application event log in Registry Editor. To do this, follow these steps:
    1.     Click Start, and then click Run.
    2.     In the Open text box, type regedit.
    3.     Locate the following registry subkey:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
    4.     Right-click the Application subkey, point to New, and then click Key.
    5.     Type OPA for the key name.
    6.     Close Registry Editor.
    To put the OPA logs under a custom OPA Event Log group (as in the demo appender above), try this:
    Create an event log in Registry Editor. To do this, follow these steps:
    1.     Click Start, and then click Run.
    2.     In the Open text box, type regedit.
    3.     Locate the following registry subkey:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog
    4.     Right-click the eventlog subkey, point to New, and then click Key.
    5.     Type OPA for the key name.
    6.     Right-click the new OPA key and add a new DWORD called "MaxSize" and set it to "1400000" which is about 20 Meg in order to keep the log file from getting too large.
    7.     The next steps either help or sometimes cause an error, but you can try these next few steps... If you get an error about a source already existing, then you can delete the key.
    8.     Right-click the OPA subkey, point to New, and then click Key.
    9.     Type OPA for the key name.
    10.     Close Registry Editor.
    You might need to change permissions so OPA can write to the event log in Registry Editor.  If you get permission errors, try following these steps:
    1.     Click Start, and then click Run.
    2.     In the Open text box, type regedit.
    3.     Locate the following registry subkey:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog
    4.     Right-click the EventLog key, select Permissions.
    5.     In the dialog that pops up, click Add...
    6.     Click Advanced...
    7.     Click Locations... and select the current machine by name.
    8.     Click Find Now
    9.     Select both the Network user and IIS_IUSERS user and click OK and OK again. (We never did figure out which of those two users was the one that fixed our permission problem.)
    10.     Change the Network user to have Full Control
    11.     Click Apply and OK
    To verify OPA Logging to the windows event logs from Determinations-Server:
    Go to the IIS determinations-server application within Server Manager.
    Under Manage Application -> Browse Application click the http link to pull up the local "Available Services" web page that show the wsdl endpoints.
    Select the /determinations-server/server/soap.asmx?wsdl link
    Go to the URL and remove the "?wsdl" from the end of the url and refresh. This will throw the following error into the logs:
    ERROR Oracle.Determinations.Server.DSServlet [(null)] - Invalid get request: /determinations-server/server/soap.asmx
    That error should show up in the windows event log, OR you can get a message explaining why security stopped you in "logs/InfoDSLog.txt" if you used the web.config settings from above.
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa363648(v=vs.85).aspx
    Edited by: Paul Fowler on Feb 21, 2013 9:45 AM

    Thanks for sharing this information Paul.

  • How can I export an iMove Project if the Event file was deleted?  (Missing Media error message)

    Deep iMovie question:
    I accidentally deleted various EVENT files from my iMove EVENTS folder.  Yes, they are really gone ... this is NOT a matter of restoring them from the trash.
    The projects are still there ... I can still watch the projects as long as I am in iMovie ... but if I try to export the Project I get the MISSING MEDIA error message.
    Logic tells me that if I can view the project ... the  file has to be SOMEWHERE inside my computer ... else I couldn't be watching it ... right?  I mean what am I watching if not some file somewhere which has moving pictures stored in it?
    So HOW do I get to something I can export?  What am I watching when I watch the project?
    I have iMove 08 on iMac with OS 10.6.8
    Normally works great for my simple needs ... except if you move or delete an event file ...
    Can anyone out there help? 
    thank you,
    Natasya

    If you don't have the original files then I'm afriad you don't have anything to work with.
    Regards
    TD

  • Remove event listener from loaded external swf

    I have a main movie timeline that loads an external swf. When I unload the swf from the main timeline I get an error from this:  my_FLVPlybk.addEventListener(VideoEvent.COMPLETE, vidEnd);
    is there any way to remove the event listener from the loaded swf from the main timeline?
    THANKS!

    if you're publishing for fp 10+, use unloadAndStop() applied to your swf's loader.  that has a fair chance of solving the problem.
    if that fails, you should explicitly stop my_FLVPlybk.

  • How to place event callback components and "main-VI" components in the same Front Panel?

    What I'm trying to accomplish:
    Place a .NET component, which generates events, and other standard LabVIEW components in the same Front Panel. The standard LabVIEW components should be updated when events are being generated in the .NET component.
    How I tried to solve it:
    Problem:
    The event callback code must reside in a separate event callback VI. In order to "pass the event up" to the main VI I tried to use a global variable. The interrupt does occur:
    but I was hoping that the string indicator would be updated when the event occurred, but it wasn't.
    Questions:
    What's the best way to solve what I try to accomplish? If I want to solve the problem on the picture above, how would I do it (it may not be the best solution, but I'm still curious what's wrong)? Please feel free to be over-explicit when replying as I am novice LabVIEW programmer. Thanks in advance for any help.

    There are two bundle functions for creating clusters. The function simply called Bundle operates almost exactly like the Build Array function I showed. The type of the output cluster depends on whatever you wire in as inputs. You don't have to supply a specific type parameter.
    The function called Bundle by Name takes in a specific type of cluster in the top input and allows you to fill in the values of that specific type of cluster. To create the specific type of cluster you want, you need to create a cluster of string references. Here's how to do that:
    Go to the Front panel and drop down an empty cluster shell.
    Go to the Refnum palette and drop down a Generic Control Refnum. Now here's a cool trick to turn that generic refnum into a string-specific refnum (a so-called strictly-typed refnum). Grab a string from the controls palette and drag it into the Generic Control Refnum. Once you drop it, you'll see the refnum change its icon to display a string picture.
    Make copies of this string refnum (as many as you need) and add it to the cluster shell.
    Now, if you're making specific types of clusters to work with, now is the absolute best time to learn about typedefs if you haven't already. It will save you hours and hours (if not days) of development time in the future. Trust me!
    Jarrod S.
    National Instruments

Maybe you are looking for

  • Value of stock at storage location level

    i want to know the table in which I can found the value of quantity issued from storage location

  • USB Thumb Drive Size for Windows 7 Profession​al Image

    I have a ThinkPad X100e running Windows 7 Professional 32-bit.  Can someone please tell me what the smallest size USB thumb drive I can use to create the installation/recovery image from the hidden partition using Rescue and Recovery?  I cannot seem

  • Problem in mapping of conditional tag.

    Hi Experts, I have the following problem: Source tag: <A> <FIELD1>DATUM1</FIELD1> <STATUS> X</STATUS> </A> <A> <FIELD1>DATUM2</FIELD1> <STATUS> </STATUS> </A> <A> <FIELD1>DATUM3</FIELD1> <STATUS> </STATUS> </A> Target Tag: <C> <FIELD1>DATUM1</FIELD1>

  • "Organization Unit" in Oracle HRMS

    What is siginificance of "Organization Unit" in Oracle HRMS in Any context. Does it have impact any HR Modules? Thanks

  • Applet fails to run after JRE upgrade

    Hi, I had JRE 1.6 which was updated to 1.8.0_31. After this update my applet has stopped working and am getting below error java.lang.ExceptionInInitializerError   at com.sun.deploy.net.protocol.https.Handler.openConnection(Unknown Source)   at java.