Parallel instances using ONE Action Engine

Hi Everyone.
I just wanted to see what type of ideas this would bring to this issue.
I have an AE that holds all the pointers (or referances) that 20 instances of a reentrantVI use in parallel. Obviously the issue is the execution speed as all the instances are waiting to read the AE (and probably a heap of other issues I haven't ecountered yet). 
I have placed an example of the AE that I am using where I also show HOW I'm using it on a bigger picture.
Please DO NOT RUN the example, just open it and see the BD, it is where I tried to put all the information on and it was the best way that I can think of to explain the issue.
Kas
Solved!
Go to Solution.
Attachments:
Example.zip ‏63 KB

johnsold wrote:
1. Are items 1 and 2 in Example.vi or the image guaranteed to run before 3 and 4 start? Or, can segments be added while the proceesing is occurring?
2. How do the changes made by item 4 affect the data not yet processed by item 3?  How do they affect segments already processed?
3. The only value on FGV.vi Segment: Out which is meaningful is the last one. The compiler is probably smart enough to not update it on earlier iterations but there might be a small speed improvement to moving the terminal outside the for loop.
4. When are the Get Segments and Get Items commands used?
5. Could a parallelized for loop do what you want rather than multiple reentrant VIs?
Ok, sorry for not properly explaining things. My explanation of My problem made sence in my head so I thought every one else will get it .
1. Items 1 and 2 are sequential, so guaranteed to run before 3 and 4. However, when 3 (the reentrant) is executed and sudenly gets an error (i.e. TCP TimeOut 56) then the segment function that was initialy changed to "in process" when taken out (before the timeout happened) is set again to "waiting" so that untill the error gets sorted, another reentrant can get the segment and does something with it. Also, if the reentrant in step 3 is executed and there are no errors then the output data is sent to item 4, which sets the function of the segment in AE to either "Damaged" or "Missing". This is happening while all the other reentrant VIs (in item 3) are still running.
2. Item 4 will ONLY make changes to the function of the segment AFTER item 3 has done something to it, and not before. And NO, after step 2 on my description, no Segments can be ADDED or DELETED. Only the segment Function changes. Based on this function, the segment is read. So, if the function says "waiting" then the data is sent out, otherwise, the reentrant VI thinks that all the segments are processed and so it exits (I do this through a "5003" error inside the AE). 
3. Ummm.. Maybe the compiler does what you say it does (no idea here) but I doubt it will give me any improvement that would make a difference to me.
4. They are used in my step 3 "Get segment" used ONCE (If no error) and TWICE (if error), "Get Items" used ONCE (if no error).
5. Won't make a difference, since the "Choke Point" is the AE. How you launch the VI won't make a difference. 
Kas

Similar Messages

  • How can I establish an enum typedef for use with state machines and action engines?

    Hey all--
    I have an action engine with several instances.  Any time that I add a method to the engine, I have to modify all of the calling code to update the constant that determines the method being called.  There must be a smarter way to address this problem but my LV experience is insufficient to identify it.  Can any of you wiz-bangs tell me if it is possible to make a type def (I can do this) and use it with each instance of the action engine call so that changing any instance also updates the typedef?
    Thanks.

    Take your enumerator.  If it is not a control (ie constant), change it to a control.
    Under File Menu, select New > Custom Control.
    Move (or copy) your Enum Control to the Custom Control.  Change the Control to Strict Type Def (the selection to the right of the wrench).  Save it.
    (EDIT: ** OOps, the picture shows the wrong one.. sorry**)
    Copy that new Strict Type Def control to your code.
    See images below.
    OR.. If you're using LV8.x, and using a project, I would recomment that you do it from within your project explorer.  Simply insert a new "Control".  The rest of the steps are similar, except that you can insert it from your project. 
    R
    Message Edited by JoeLabView on 07-08-2008 06:47 PM
    Attachments:
    TypeDef.PNG ‏33 KB

  • Change value of a typedef in parallels to another running action

    Hello,
    Well, I have a problem with my VI.
    To summarize I use a Vi « IdsVg.vi » to achieve some measurements process.
    This one uses an action engine as a sub-vi to store data of the front panel and to precede complementary actions. The front panel is a strict typedef…
    I programmed the Vi avoiding to use sequence structures in order to be able to do other actions on the front panel in parallels. Nevertheless I’m running out of ideas for solving my problem.
    The problem:
    I would like to change values (time constant, Boolean of graph) of the front panel at any instant when the main vi is running. The actual problem is: when I start the program, using register event I can change values of the front panel, but when the program is running the while loop in which it gets the measurement, it isn’t possible to change parameter of the front panel…  
    Is there a solution or a trick??
    Thank you for help
    Attachments:
    MyProblem.lvproj ‏10 KB

    Putting in the project file does not help much, good try though. The actual files are missing though, so nothing shows up.
    I suggest you create a separate producer consumer loop in your main vi. The vi retrieving the data could pass the relevant data (producer) and the consumer loop will then process the data and update the fron tpannel. Note, only the producer consumer loop will update the front pannel.
    You would not need a sequence structure to control the update. The producer consumer loop will only execute when you provide the necessary data.

  • 2 SCM 4.0 Optimizer instances for one SCM system as high availability?

    Hi
    Can we install more (i.e. 2) seperate SCM 4.0 Optimizers and connect them both to one SCM Server system?
    If yes:
    1) Can/will the SCM Server system used both optimizers?
    2) If one failes, can/will the SCM server then just use the one still running
    Best regards
    Tom

    Hi Larsen
    Since optimizer is just exe.file, you can install several optimizers<engine> (put exe.file into
    different location <folder>) and it should not be in same HW. And in the IMG customize you can priolatize Optimizer engine. So system can use several engine depending on the priority (or for some component like CTM, you can specify engine and run CTM in parallel with using different CTM engine for different objects.
    And I know 1 company who install 2 CTM engine into 2 servers for high availbility solution (This means active server A has 2 CTM engine/ stand by server B has 2 CTM engine).
    To use fail over scenario with several server, I think you need to define following customize in SCM system.
    T-CD /SAPAPO/COPT01 (Define directly and engine name)
    T-CD /SAPAPO/COPT00 (Check availbility of Server)
    <Also RFC definition should be correctly customized in SM59).
    best regards
    Keiji

  • Can I have multiple TFS instances use a single SSRS installation

    Can I have multiple TFS instances use a single SSRS installation?
    Thanks

    Hi Kim,
    According to your description, you have multiple TFS instances using one Reporting Services instance. Right?
    For installing TFS, to use a named instance with Team Foundation Server, you must install SQL Server by using a named instance, or move or restore Team Foundation Server data to a named instance, or create a team project collection on a named instance. Please
    refer to the link below:
    Work with SQL Server Named Instances
    Reference:
    Understanding SQL Server and SQL Server Reporting Services
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • How to use one Assign action to create multiple context variables

    Hello, everyone.
    I read some tips from Oracle documentation that said:
    Avoid creating many OSB context variables that are used just once within another XQuery
    Context variables created using an Assign action are converted to XmlBeans and then reverted to the native XQuery format for the next XQuery. Multiple "Assign" actions can be collapsed into a single Assign action using a FLWOR expression. Intermediate values can be created using "let" statements. Avoiding redundant context variable creation eliminates overheads associated with internal data format conversions. This benefit has to be balanced against visibility of the code and reuse of the variables.
    Oracle® Fusion Middleware Performance and Tuning Guide
    +11g Release 1 (11.1.1)+
    Part Number E10108-03
    But I don't know how to do that. Can you show me ?
    Thank in advance
    Edited by: Doubt_Man on Aug 17, 2011 3:30 PM

    if you return sequences, you can declare the return type of your xquery as xs:double*
    (notice the asterix at the end)
    but I have the impression that in the assign action only the first element will be assigned to the context variable
    (correct me if I am wrong)
    So in fact you might indeed have to transform the sequence into a element()*, or concatenate it into a CVS string - for instance using string-join
    http://www.xqueryfunctions.com/xq/fn_string-join.html

  • How to use one dynamic connection managers for multiple parallel data flow tasks

    hi there:
       I have 6 databases residing on the same server. What I want to do is  call a store procedure with identical name on each database dbo schema and transport results to a centralized place. The key is to have those SPs run in parallel instead
    of in sequence as each SP may take around 10 mins to finish. 
    The simplest way is to create 6 OLE DB connection managers and create 6 DFT tasks. However, I do not want to maintain 6 OLE DB connection managers as there is a chance to have more connection  managers.
     What I did so far is to create a OLD DB connection manager and use expression to set up connectionString properties so that it will get populated by variables at run time. It is fine when running all SPs in a Foreach Loop Container. However, it takes
    around 60 mins to finish.
      When I try to run it in parallel ( basically created 6 DFTs but use only one Dynamic Connection Manager), the connection string gets confused therefore all DFT tasks failed.
       Does anyone here have some experience on this topic?
    Thanks
     hui
    --Currently using Reporting Service 2000; Visual Studio .NET 2003; Visual Source Safe SSIS 2008 SSAS 2008, SVN --

    Yes, basically, on the connectionString property of ONE OLEDB, you are using an expression to supply value and this expression is pointing to a variable. 
    In this case , you can update this variable from a table which contains many connection strings. It's good if you want to execute Store procedures in a sequential order. When in parallel mode, this will cause issues as connectionString gets overwritten. 
     I am thinking about using script task to exec sp.
     The whole idea is that I do not want to maintain a large number of Connection Managers. 
    Hope it helps
    --Currently using Reporting Service 2000; Visual Studio .NET 2003; Visual Source Safe SSIS 2008 SSAS 2008, SVN --
    So you are not able to run parallel executions using same conn mgmr, even with dynamic connectionstring, is that correct? Yes, script task will be a way to go if you wish to execute it in parallel, you may connect to SS and query the proper conn string with
    SELECT/WHERE clause in each script > pass it to a script variable > use that script variable and execute the proc. This will require only two things to change in each script, the WHERE condition to get the conn string and the proc name (you may even
    get the proc names the same way you get conn string) and everything else will be same. Let us know how that goes. 
    Hope no two or more procs doing insert/update/delete on the same tables.

  • Use two actions in one form

    I want to use two actions in one form in struts,and without using javascript,is it possible?

    I want to use two submit:
    one is for adding message;
    another is for editing message.
    they must be in one form,but i dont know how to use
    two actions in one formHi,
    Hope this helps.
    cheers,
    jeric
    <html>
    <head>
    <title>decision</title>
    </head>
    <body>
    <br><br><br>
    <center><h3><u>Two submits, one form</u></h3></center>
    <%
    String userChoice = request.getParameter("decision");
    if( userChoice != null && userChoice.equals("add") == true)
        // forward to addMessage.jsp, for example, or whatever
    else
    if( userChoice != null && userChoice.equals("edit") == true)
         // forward to EditMessage.jsp, for example, or whatever
    out.println( "<br><center> the value of userChoice after selection is ... " + userChoice + "</center><br>");
    %>
    <center>
    <form method="post" action ="decision.jsp"> <!-- name of this page -->
        <table width = "50%" align="center">
             <tr><td width = "100%"><hr color ="red" ></td></tr>
              <tr><td height = "10"></td></tr>
             <tr><td align = "center">Do you want to <b>add</b> a message or <b>edit</b> a message?</td></tr>
             <tr><td height = "10"></td></tr>
             <tr><td align = "center">
                  <input name = "decision" type = "radio"  value = add checked>?add a message??
                  <input name = "decision" type = "radio" value = edit>?edit a message?
             </td></tr>
        </table>
        <br>
        <input type="submit"  value = " make your selection " >
    </form>
    <hr color ="red" width = "50%">
    </center>
    </body>
    </html>

  • Service Master Key could not be decrypted using one of its encryptions. See sys.key_encryptions for details.

    html,body{padding:0;margin:0;font-family:Verdana,Geneva,sans-serif;background:#fff;}html{font-size:100%}body{font-size:.75em;line-height:1.5;padding-top:1px;margin-top:-1px;}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em}h3{font-size:1.16em}h4{font-size:1em}h5{font-size:.83em}h6{font-size:.7em}p{margin:0
    0 1em;padding:0 .2em}.t-marker{display:none;}.t-paste-container{;left:-10000px;width:1px;height:1px;overflow:hidden}ul,ol{padding-left:2.5em}a{color:#00a}code, pre{font-size:1.23em}
    I get this message on two different machines installing SQL2014 developer edition, a Windows 7 and a Windows 8 machine. Both machines have SQL2005 through SQL2012 developer machines installed and working great. I have tried uninstalling all SQL2014 stuff and
    installing again making sure I was running as an Administrator to no avail. 
    How do I look at sys.key_encryptionswhen the server will not start to finish installation?
    The links in the log only provide the  "We're Sorry" message.
    This is the first error dialog info
    TITLE: Microsoft SQL Server 2014 Setup
    The following error has occurred:
    Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
    For help, click: http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.2000.8&EvtType=0xD15B4EB2%25400x4BDAF9BA%25401306%254026
    The SQL Server error log has the message in the title.
    2014-04-04 17:02:17.49 Server      Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 
     Feb 20 2014 20:04:26 
     Copyright (c) Microsoft Corporation
     Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
    2014-04-04 17:02:17.49 Server      UTC adjustment: -4:00
    2014-04-04 17:02:17.49 Server      (c) Microsoft Corporation.
    2014-04-04 17:02:17.49 Server      All rights reserved.
    2014-04-04 17:02:17.49 Server      Serverprocess ID is 9236.
    2014-04-04 17:02:17.49 Server      System Manufacturer: 'Hewlett-Packard', System Model: 'HP EliteBook8760w'.
    2014-04-04 17:02:17.49 Server      Authentication mode is MIXED.
    2014-04-04 17:02:17.49 Server      Logging SQL Server messages in file 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\Log\ERRORLOG'.
    2014-04-04 17:02:17.49 Server      The service account is 'NT Service\MSSQL$SQL2014'. This is an informational message; no user action is required.
    2014-04-04 17:02:17.49 Server      Registry startup parameters: 
      -d C:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\DATA\master.mdf
      -e C:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\Log\ERRORLOG
      -l C:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\DATA\mastlog.ldf
    2014-04-04 17:02:17.49 Server      Command Line Startup Parameters:
      -s "SQL2014"
      -m "SqlSetup"
      -Q
      -q "SQL_Latin1_General_CP1_CI_AS"
      -T 4022
      -T 4010
      -T 3659
      -T 3610
      -T 8015
    2014-04-04 17:02:17.79 Server      SQL Server detected 1 sockets with 4 cores per socket and 8 logical processors per socket, 8 total logical processors; using 8 logical processors based on SQL Server licensing. This is an informational message;
    no user action is required.
    2014-04-04 17:02:17.79 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
    2014-04-04 17:02:17.79 Server      Detected 8142 MB of RAM. This is an informational message; no user action is required.
    2014-04-04 17:02:17.80 Server      Using conventional memory in the memory manager.
    2014-04-04 17:02:17.92 Server      Default collation: SQL_Latin1_General_CP1_CI_AS (us_english1033)
    2014-04-04 17:02:17.95 Server      Perfmoncounters for resource governor pools and groups failed to initialize and are disabled.
    2014-04-04 17:02:17.96 Server      Query Store settings initialized with enabled = 1, 
    2014-04-04 17:02:17.97 Server      The maximum number of dedicated administrator connections for this instance is '1'
    2014-04-04 17:02:17.97 Server      This instance of SQL Server last reported using a process ID of 8760 at 4/4/2014 5:02:08 PM (local) 4/4/2014 9:02:08 PM (UTC). This is an informational message only; no user action is required.
    2014-04-04 17:02:17.97 Server      Node configuration: node 0: CPU mask: 0x00000000000000ff:0 Active CPU mask: 0x00000000000000ff:0. This message provides a description of the NUMA configuration for this computer. This is an informational message
    only. No user action is required.
    2014-04-04 17:02:17.97 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.
    2014-04-04 17:02:18.00 Server      Database Mirroring Transport is disabled in the endpoint configuration.
    2014-04-04 17:02:18.00 spid7s      Warning ******************
    2014-04-04 17:02:18.00 spid7s      SQL Server started in single-user mode. This an informational message only. No user action is required.
    2014-04-04 17:02:18.01 spid7s      Starting up database 'master'.
    2014-04-04 17:02:18.02 Server      Software Usage Metrics is disabled.
    2014-04-04 17:02:18.07 Server      CLR version v4.0.30319 loaded.
    2014-04-04 17:02:18.11 spid7s      8 transactions rolled forward in database 'master' (1:0). This is an informational message only. No user action is required.
    2014-04-04 17:02:18.24 spid7s      0 transactions rolled back in database 'master' (1:0). This is an informational message only. No user action is required.
    2014-04-04 17:02:18.25 spid7s      Recovery is writing a checkpoint in database 'master' (1). This is an informational message only. No user action is required.
    2014-04-04 17:02:18.26 Server      Common language runtime (CLR) functionality initialized using CLR version v4.0.30319 from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\.
    2014-04-04 17:02:18.34 spid7s      Service Master Key could not be decrypted using one of its encryptions. See sys.key_encryptions for details.
    2014-04-04 17:02:18.40 spid7s      SQL Server Audit is starting the audits. This is an informational message. No user action is required.
    2014-04-04 17:02:18.40 spid7s      SQL Server Audit has started the audits. This is an informational message. No user action is required.
    2014-04-04 17:02:18.44 spid7s      SQL Trace ID 1 was started by login "sa".
    2014-04-04 17:02:18.44 spid7s      Server name is 'TOMGROSZKO-HP\SQL2014'. This is an informational message only. No user action is required.
    2014-04-04 17:02:18.46 spid16s     Error: 17190, Severity: 16, State: 1.
    2014-04-04 17:02:18.46 spid16s     Initializing the FallBackcertificate failed with error code: 1, state: 20, error number: 0.
    2014-04-04 17:02:18.46 spid16s     Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
    2014-04-04 17:02:18.46 spid16s     Error: 17182, Severity: 16, State: 1.
    2014-04-04 17:02:18.46 spid16s     TDSSNIClientinitialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property. 
    2014-04-04 17:02:18.46 spid16s     Error: 17182, Severity: 16, State: 1.
    2014-04-04 17:02:18.46 spid16s     TDSSNIClientinitialization failed with error 0x80092004, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. Cannot find object or property. 
    2014-04-04 17:02:18.46 spid16s     Error: 17826, Severity: 18, State: 3.
    2014-04-04 17:02:18.46 spid16s     Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
    2014-04-04 17:02:18.46 spid16s     Error: 17120, Severity: 16, State: 1.
    2014-04-04 17:02:18.46 spid16s     SQL Server could not spawn FRunCommunicationsManagerthread. Check the SQL Server error log and the Windows event logs for information about possible related problems.
    And a copy of the install log.
    Overall summary:
      Final result:                  Failed: see details below
      Exit code (Decimal):           -2061893606
      Start time:                    2014-04-04 16:23:39
      End time:                      2014-04-04 17:06:25
      Requested action:              Install
    Setup completed with required actions for features.
    Troubleshooting information for those features:
      Next step for RS:              Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Next step for SQLEngine:       Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Next step for DQ:              Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Next step for FullText:        Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Next step for Replication:     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
    Machine Properties:
      Machine name:                  TOMGROSZKO-HP
      Machine processor count:       8
      OS version:                    Windows 7
      OS service pack:               Service Pack 1
      OS region:                     United States
      OS language:                   English (United States)
      OS architecture:               x64
      Process architecture:          64 Bit
      OS clustered:                  No
    Product features discovered:
      Product              Instance             Instance ID                    Feature                
                     Language             Edition              Version         Clustered  Configured
      SQL Server 2005      SQL2005              MSSQL.1                        Database Engine Services            
        1033                 Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005      SQL2005              MSSQL.1                        SQL Server Replication              
        1033                 Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005      SQL2005              MSSQL.1                        Full-Text and Semantic Extractions for Search 1033      
              Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005      SQL2005              MSSQL.1                        SharedTools                
                 1033                 Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005      SQL2005              MSSQL.2                        Analysis Services              
             1033                 Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005      SQL2005              MSSQL.3                        Reporting Services - Native            
     1033                 Developer Edition (64-bit) 9.00.1399.06    No         Yes       
      SQL Server 2005                                                          DTS        
                                 1033                 Developer Edition (64-bit) 9.4.5069        No        
    Yes       
      SQL Server 2005                                                          Tools        
                               1033                 Developer Edition (64-bit) 9.4.5069        No         Yes
      SQL Server 2005                                                          ToolsClient      
                           1033                 Developer Edition (64-bit) 9.4.5069        No         Yes    
      SQL Server 2005                                                          ToolsClient\Connectivity  
                  1033                 Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005                                                          ToolsDocument      
                         1033                 Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005                                                          ToolsDocument\BOL    
                       1033                 Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005                                                          ToolsDocument\Samples    
                   1033                 Developer Edition (64-bit) 9.4.5069        No         Yes       
      SQL Server 2005                                                          NS          
                                1033                 Developer Edition (64-bit) 9.4.5069        No         Yes
      SQL Server 2008 R2   SQL2008R2            MSSQL10_50.SQL2008R2           Database Engine Services                 1033          
          Developer Edition    10.51.2550.0    No         Yes       
      SQL Server 2008 R2   SQL2008R2            MSSQL10_50.SQL2008R2           SQL Server Replication                   1033        
            Developer Edition    10.51.2550.0    No         Yes       
      SQL Server 2008 R2   SQL2008R2            MSSQL10_50.SQL2008R2           Full-Text and Semantic Extractions for Search 1033                 Developer
    Edition    10.51.2500.0    No         Yes       
      SQL Server 2008 R2   SQL2008R2            MSAS10_50.SQL2008R2            Analysis Services                        1033  
                  Developer Edition    10.51.2500.0    No         Yes       
      SQL Server 2008 R2   SQL2008R2            MSRS10_50.SQL2008R2            Reporting Services - Native              1033          
          Developer Edition    10.51.2550.0    No         Yes       
      SQL Server 2008 R2                                                       Management Tools - Basic      
              1033                 Developer Edition    10.51.2550.0    No         Yes       
      SQL Server 2008 R2                                                       Management Tools - Complete    
             1033                 Developer Edition    10.51.2500.0    No         Yes       
      SQL Server 2008 R2                                                       Client Tools Connectivity      
             1033                 Developer Edition    10.51.2500.0    No         Yes       
      SQL Server 2008 R2                                                       Client Tools Backwards Compatibility  
      1033                 Developer Edition    10.51.2500.0    No         Yes       
      SQL Server 2008 R2                                                       Client Tools SDK        
                    1033                 Developer Edition    10.51.2500.0    No         Yes       
      SQL Server 2008 R2                                                       Integration Services      
                  1033                 Developer Edition    10.51.2550.0    No         Yes       
      SQL Server 2012      SQL2012              MSSQL11.SQL2012                Database Engine Services                 1033  
                  Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012      SQL2012              MSSQL11.SQL2012                SQL Server Replication                   1033
                    Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012      SQL2012              MSSQL11.SQL2012                Full-Text and Semantic Extractions for Search 1033            
        Developer Edition    11.1.3000.0     No         Yes       
      SQL Server 2012      SQL2012              MSSQL11.SQL2012                Data Quality Services                    1033
                    Developer Edition    11.1.3000.0     No         Yes       
      SQL Server 2012      SQL2012              MSAS11.SQL2012                 Analysis Services                    
       1033                 Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012      SQL2012              MSRS11.SQL2012                 Reporting Services - Native              1033  
                  Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012                                                          Management Tools - Basic  
                  1033                 Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012                                                          Management Tools - Complete  
               1033                 Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012                                                          Client Tools Connectivity  
                 1033                 Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012                                                          Client Tools Backwards Compatibility
        1033                 Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012                                                          Client Tools SDK      
                      1033                 Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012                                                          BIDS        
                                1033                 Developer Edition    11.1.3128.0     No         Yes  
      SQL Server 2012                                                          SQL Server Data Tools - Business
    Intelligence for Visual Studio 2012 1033                                      11.1.3402.0     No         Yes       
      SQL Server 2012                                                          Integration Services    
                    1033                 Developer Edition    11.1.3128.0     No         Yes       
      SQL Server 2012                                                          LocalDB        
                             1033                 Express Edition      11.1.3128.0     No         Yes    
      SQL Server 2012                                                          Master Data Services    
                    1033                 Developer Edition    11.1.3000.0     No         Yes       
    Package properties:
      Description:                   Microsoft SQL Server 2014 
      ProductName:                   SQL Server 2014
      Type:                          RTM
      Version:                       12
      SPLevel:                       0
      Installation location:         C:\Downloads\SQL2014\SQL\x64\setup\
      Installation edition:          Developer
    Product Update Status:
      None discovered.
    User Input Settings:
      ACTION:                        Install
      ADDCURRENTUSERASSQLADMIN:      false
      AGTSVCACCOUNT:                 NT Service\SQLAgent$SQL2014
      AGTSVCPASSWORD:                *****
      AGTSVCSTARTUPTYPE:             Manual
      ASBACKUPDIR:                   C:\SQLData\MSSQL\SQL2014\Backup
      ASCOLLATION:                   Latin1_General_CI_AS
      ASCONFIGDIR:                   C:\Program Files\Microsoft SQL Server\MSAS12.SQL2014\OLAP\Config
      ASDATADIR:                     C:\SQLData\MSSQL\SQL2014\OLAP
      ASLOGDIR:                      C:\SQLData\MSSQL\SQL2014\OLAP
      ASPROVIDERMSOLAP:              1
      ASSERVERMODE:                  MULTIDIMENSIONAL
      ASSVCACCOUNT:                  NT Service\MSOLAP$SQL2014
      ASSVCPASSWORD:                 <empty>
      ASSVCSTARTUPTYPE:              Automatic
      ASSYSADMINACCOUNTS:            TomGroszko-HP\Tom Groszko
      ASTEMPDIR:                     C:\SQLData\MSSQL\SQL2014\OLAP
      BROWSERSVCSTARTUPTYPE:         Automatic
      CLTCTLRNAME:                   <empty>
      CLTRESULTDIR:                  <empty>
      CLTSTARTUPTYPE:                0
      CLTSVCACCOUNT:                 <empty>
      CLTSVCPASSWORD:                <empty>
      CLTWORKINGDIR:                 <empty>
      COMMFABRICENCRYPTION:          0
      COMMFABRICNETWORKLEVEL:        0
      COMMFABRICPORT:                0
      CONFIGURATIONFILE:             C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\Log\20140404_162339\ConfigurationFile.ini
      CTLRSTARTUPTYPE:               0
      CTLRSVCACCOUNT:                <empty>
      CTLRSVCPASSWORD:               <empty>
      CTLRUSERS:                     <empty>
      ENABLERANU:                    false
      ENU:                           true
      ERRORREPORTING:                true
      FEATURES:                      SQLENGINE, REPLICATION, FULLTEXT, DQ, AS, RS, RS_SHP, RS_SHPWFE, DQC, CONN, IS, BC, SDK, BOL, SSMS, ADV_SSMS, MDS
      FILESTREAMLEVEL:               3
      FILESTREAMSHARENAME:           SQL2014
      FTSVCACCOUNT:                  NT Service\MSSQLFDLauncher$SQL2014
      FTSVCPASSWORD:                 <empty>
      HELP:                          false
      IACCEPTSQLSERVERLICENSETERMS:  true
      INDICATEPROGRESS:              false
      INSTALLSHAREDDIR:              c:\Program Files\Microsoft SQL Server\
      INSTALLSHAREDWOWDIR:           c:\Program Files (x86)\Microsoft SQL Server\
      INSTALLSQLDATADIR:             <empty>
      INSTANCEDIR:                   C:\Program Files\Microsoft SQL Server\
      INSTANCEID:                    SQL2014
      INSTANCENAME:                  SQL2014
      ISSVCACCOUNT:                  NT Service\MsDtsServer120
      ISSVCPASSWORD:                 <empty>
      ISSVCSTARTUPTYPE:              Automatic
      MATRIXCMBRICKCOMMPORT:         0
      MATRIXCMSERVERNAME:            <empty>
      MATRIXNAME:                    <empty>
      NPENABLED:                     0
      PID:                           *****
      QUIET:                         false
      QUIETSIMPLE:                   false
      ROLE:                          <empty>
      RSINSTALLMODE:                 DefaultNativeMode
      RSSHPINSTALLMODE:              SharePointFilesOnlyMode
      RSSVCACCOUNT:                  NT Service\ReportServer$SQL2014
      RSSVCPASSWORD:                 <empty>
      RSSVCSTARTUPTYPE:              Automatic
      SAPWD:                         *****
      SECURITYMODE:                  SQL
      SQLBACKUPDIR:                  C:\SQLData\MSSQL\SQL2014\Backup
      SQLCOLLATION:                  SQL_Latin1_General_CP1_CI_AS
      SQLSVCACCOUNT:                 NT Service\MSSQL$SQL2014
      SQLSVCPASSWORD:                <empty>
      SQLSVCSTARTUPTYPE:             Automatic
      SQLSYSADMINACCOUNTS:           TomGroszko-HP\Tom Groszko
      SQLTEMPDBDIR:                  C:\SQLData\MSSQL\SQL2014\Engine
      SQLTEMPDBLOGDIR:               <empty>
      SQLUSERDBDIR:                  C:\SQLData\MSSQL\SQL2014\Engine
      SQLUSERDBLOGDIR:               <empty>
      SQMREPORTING:                  true
      TCPENABLED:                    0
      UIMODE:                        Normal
      UpdateEnabled:                 true
      UpdateSource:                  MU
      USEMICROSOFTUPDATE:            false
      X86:                           false
      Configuration file:            C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\Log\20140404_162339\ConfigurationFile.ini
    Detailed results:
      Feature:                       Management Tools - Complete
      Status:                        Passed
      Feature:                       Client Tools Connectivity
      Status:                        Passed
      Feature:                       Client Tools SDK
      Status:                        Passed
      Feature:                       Client Tools Backwards Compatibility
      Status:                        Passed
      Feature:                       Management Tools - Basic
      Status:                        Passed
      Feature:                       Reporting Services - Native
      Status:                        Failed: see logs for details
      Reason for failure:            An error occurred for a dependency of the feature causing the setup process for the feature to fail.
      Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Component name:                SQL Server Database Engine Services Instance Features
      Component error code:          0x851A001A
      Error description:             Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
      Error help link:               http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.2000.8&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026
      Feature:                       Database Engine Services
      Status:                        Failed: see logs for details
      Reason for failure:            An error occurred during the setup process of the feature.
      Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Component name:                SQL Server Database Engine Services Instance Features
      Component error code:          0x851A001A
      Error description:             Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
      Error help link:               http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.2000.8&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026
      Feature:                       Data Quality Services
      Status:                        Failed: see logs for details
      Reason for failure:            An error occurred for a dependency of the feature causing the setup process for the feature to fail.
      Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Component name:                SQL Server Database Engine Services Instance Features
      Component error code:          0x851A001A
      Error description:             Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
      Error help link:               http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.2000.8&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026
      Feature:                       Full-Text and Semantic Extractions for Search
      Status:                        Failed: see logs for details
      Reason for failure:            An error occurred for a dependency of the feature causing the setup process for the feature to fail.
      Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Component name:                SQL Server Database Engine Services Instance Features
      Component error code:          0x851A001A
      Error description:             Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
      Error help link:               http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.2000.8&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026
      Feature:                       SQL Server Replication
      Status:                        Failed: see logs for details
      Reason for failure:            An error occurred for a dependency of the feature causing the setup process for the feature to fail.
      Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
      Component name:                SQL Server Database Engine Services Instance Features
      Component error code:          0x851A001A
      Error description:             Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
      Error help link:               http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.2000.8&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026
      Feature:                       Master Data Services
      Status:                        Passed
      Feature:                       Integration Services
      Status:                        Passed
      Feature:                       Data Quality Client
      Status:                        Passed
      Feature:                       Analysis Services
      Status:                        Passed
      Feature:                       Reporting Services - SharePoint
      Status:                        Passed
      Feature:                       Reporting Services Add-in for SharePoint Products
      Status:                        Passed
      Feature:                       Documentation Components
      Status:                        Passed
    Rules with failures:
    Global rules:
    Scenario specific rules:
    Rules report file:               C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\Log\20140404_162339\SystemConfigurationCheck_Report.htm
    Any suggestions for what step to take next will be appreciated.
    Thanks
    Tom G.

    Hi Tom,
    Sorry for the delay. We can exclude the media factor since you were able to install it on VM with this media.
    If I understand correctly, Shanky said “Abve message can also appear due to corrupt profile so deleteting old profile and creating new one and using this to install would also help.Make sure you always RK on setup.exe and select run as administrator” which
    means your user account may be corrupted rather than the Virtual account. You can create a new Windows user account and use it to log into the system. Then, re-try the installation.
    Additional information:
    http://windows.microsoft.com/en-us/windows/create-user-account#create-user-account=windows-8
    Thanks.
    Tracy Cai
    TechNet Community Support

  • Community Nugget 4/08/2007 Action Engines

    Action Engines, What are They?
    “An action engine is Ben's term for a functional global which includes extra actions other than just holding the data.”
     (tst , 03-13-2007 01:18 PM)
    In a nut shell tst has nailed it except for the “Ben’s term” part. I was originally exposed to the term "Action Engine"
    by reading the book ""LabVIEW Applications Development A Course on Advanced LabVIEW Programming Techniques*”.  But
    before I get into details of the Action Engine (AE), I will attempt to clarify some terminology.
    Functional Globals
    Functional Globals (FG) are VIs that are functionally equivalent to LabVIEW globals. Functional Globals store
    information. You can read them or write them and that is it. No fancy stuff. Functional Globals are also referred to as
    LV2 globals because LV2 did not have globals but it did support Un-initialized Shift Registers (USRs). The USR is the
    entity that stores the information.
    USR.jpg
    USR’s
    Shift Registers (SR) come in two varieties “Initialized” and “un-initialized”. The presence or absence of a wire
    feeding the SR from outside the loop distinguishes how LabVIEW will implement the SR. If there is NO wire feeding a
    shift register (A), then the SR is not initialized. This is called an “Un-Initialized Shift Register”. The USR variety
    is implemented as static buffer that is re-used from call to call. The values written to the USR in and earlier call
    persist for access (B) in latter calls**. A Functional Global exploits this behavior by implementing two methods of
    interacting with the contents of the USR.
    Functional Global.JPG
    In the “Write” action (not shown) the value of “Numeric in” is placed in the USR. In the “Read” action the contents of
    the USR are returned via Numeric out.
    Action Engines
    An Action Engine (AE) can be thought of as a machine (Engine) that performs some useful task (action) often on
    something (typically but not limited to data in a USR). Functional Globals are very specific type of Action Engine.
    They have two actions “Write” and “Read”. They operate on the data stored in the USR either by replacing or using the
    contents of the USR. So AE’s are a superset of Functional Globals. In many documents the terms AE and FG are
    interchangeable. A recent poll on LAVA has indicated that Functional Global is the most popular term. Since this Nugget
    was prompted by answering the question “what is an AE?” in the remainder of this document you will find that I will
    generally use the term AE.
    Do What to What?
    AE design revolves around the ways the shared resource must be accessed manipulated or monitored. In a Functional
    Global, the actions “Write” and “Read” are appropriate. That is not necessarily the case for AEs. AEs can have entirely
    different set of actions depending on the interaction requirements for the information stored in the USR. A short list
    follows.
     A Configuration AE could allow for multiple processes to share a single copy of the system configuration (in a USR) by
    providing actions like “Set Device ID”, Set Device ON-Line…
    A hardware device can be realized as an AE that presents actions appropriate to the physical phenomenon being measured
    or controlled.
    A DO Port Controller AE could store a reference to the physical device in one SR and the port status in another SR and
    have action like: Set Main Motor On”, “E-Stop”, …
    An Instrument can be implemented to store the device name and settings with actions like “Set Input ON” “Auto-Scale Y”
    and “Get Trace”,…
    Screen Stacks can be implemented by using control references in one USR and maintain a screen view stack in another
    then implementing actions like “Set Config Screen”, “Set Login Screen”, “Back”…
    Users can be managed using an AE with action such as “Add New User” “Set Password”, “Disable User”…
    The list goes on and is limited only by our imagination. Here is an example that shows how a running average can be
    maintained.
    Running_Average_Example.jpg
    Running Average Example
    The Running Average Example shown above shows how a running average can be maintained using an AE. The AE is
    initialized before the While Loop executes. On each iteration of the loop the simulated measurement value (random
    number) is used to update the history of all measurements (Add Number(s)) and the mean is calculated (Calc Mean).
    Please note that although the buffer of all measurements is affected in every step of this example, the buffer (USR in
    the sub-VI) contents are never part of this VI’s diagram. Since the history is stored in the sub-VI, the history can be
    acted on from more than one thread as shown below.
    Parallel_Loops.jpg
    In the parallel Loops Example the history is initialized and then two loops run in parallel with one updating the
    history and the other plotting the average. Since the History resides inside the USR of the sub-VI the two while loops
    are effectively sharing the same block of memory, the block used to store the USR. The Sub-VI was implemented as shown
    in the following sequence of images.
    Init.jpg
    As was the case with Functional Globals, the actions are implemented as a type def’d enum***** driven case structure.
    Appropriate code is present in each case to realize the intended actions. In the “Init” case, contents of “Array in”
    are used to initialize the history. In our example above we did not pass an initial array value. Therefore the “Init”
    resets the history (cleared the array).
    Add Num.JPG
    The operation of the AE when the “Add Number(s)” action is called varies depending on its usage. If the caller passes a
    non-empty array, it is appended to the array. Alternatively, passing a value via the Numeric in” control, and leaving
    the “Array in” un-wired adds a single element to the history. We used the Numeric In input so we were continually
    building our history one value at a time.
    Calc_Mean.JPG
    When the “Calc Mean” action is invoked, the average is calculated and returned.
    This Nugget is continued in the next post
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction
    Solved!
    Go to Solution.

    Nugget continued
    The Traffic Cop Behind the Scenes
    A detail I have not mentioned up until now is that AEs should be implemented as VIs that are not reentrant***. VIs that are not reentrant can only be executing in one context at a time. LabVIEW will ensure that if there is ever a situation were two contexts are attempting to act on the same AE at the same time, LabVIEW will schedule the first and the subsequent will wait until the first call completes. This is similar to a traffic cop preventing more than one vehicle from entering an intersection at the same time. The Traffic Cop is illustrated in the following timing diagram were we look at how the processing of two threads is affected by using a single AE.
    Execution_Timeline.JPG
    In the figure above the processing time of two processes “P1” and “P2” are illustrated by a red or blue solid arrow respectively. In the parallel loops example shown earlier, P1 could be the “Calc Mean” loop and P2 could be the “Add Number(s)” loop.
     t0 - t1
    Both processes are executable and run their assigned tasks. Neither process is accessing the AE.
    t1 – t2
    P2 continues to run while P1 calls the AE. Since the AE is idle it is available to run so P1 continues execution running inside the AE until all work inside the AE completes. The dotted arrow shows that the thread for P1 is executing in the data space allocated for the AE.
    t2 –t3
    At t2 the AE terminates and both process run as in t0 – t1.
    t3 – t4
    This time segment is similar to t1 – t2 with P2 running in the AE.
    t4 – t5
    Similar to t2 – t3 the AE terminates and both process run.
    t5 – t6
    Similar to t1 – t2. P1 take control of the AE.
    t6 - t7
    At t6 P2 attempts to call the AE. Since the AE is not idle it is not available to run. P2 is placed in a resource wait state (it is NOT running) waiting for the resource to become available. The dotted horizontal arrow indicates the process is not executing.
    t7 –t8
    At t7 the call of the AE by P1 that started at t5 completes and P1 continues to execute outside of the AE. When the call by P1 completes the AE becomes available. The process P2 is marked as executable. The scheduler includes P2 in its executable threads and the AE is available. P2 then executes inside the AE until the call completes.
    The Beauty of the AE
    This behavior of a non-reentrant VI is a wonderful feature we can exploit to eliminate race conditions. Race conditions are the nemesis of many a developer. In hardware this was solved with clocked enabled logic. In LV we solve race conditions with Queues, Semaphores, Rendezvous, Occurrences, and Action Engines!AEs can eliminate race conditions when all operations involving updates of the data stored in the USR are done INSIDE the AE. A very simple illustration of how the encapsulation of USR manipulation is shown in the following set of examples.
    Port_With_Global.jpg
    This VI is intended to demonstrate how two bits of an eight-bit port can be used to control the running state of two pumps. To illustrate the control process, one pump will be set running at start-up and then every half second the state of both pumps will be toggled to simulate switching of the supply. This example uses globals and fails miserably.
    Port_With_Global.jpg
    In this example we start out by initializing a global variable so that bit “1” (zero based) is the only bit set in an array of eight bits. This turns on Pump 2 to start. Then the “Port Update” and a “State Change” loops run in parallel. In the “Port Update” loop the state of the port is read from the global and used to update the GUI.
    In the “State Change” loop, the port status is read and the first Boolean is inverted before being written back to the global. Similarly for the second Boolean. Since the read of the globals both occur before the subsequent data processing, one of the threads will be processing old data.
    Port_With_Action_Engine.jpg
    The Action Engine version codes up the same way as the global version but now all of the data manipulation of the port states are encapsulated in the Action Engine  “Port Controller”. This encapsulation ensures all operations involving the data in the USR are forced to happen sequentially even though we did not have to implement any code to achieve this affect.
    The key point to take away from this example is a shared resource (the port status in the case) when implemented as AEs come with resource contention resolution built in provided that all manipulation of the shared resource takes place inside the AE.
    Action Engines to the rescue!
    Action Engines are not a replacement for Queues, Rendezvous and the other synchronization techniques. They are typically called for when your design dictates that a single resource must be shared by more than one parallel process and none of the LabVIEW provided techniques are sufficient. They require a design of their own to ensure they work correctly. They also have to be developed and supported.
    This Nugget is continued in the next post
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • GP: Assigning multiple users on one action

    There is a need to appoint more than one user to one action. If one user is not answered, the process should not proceed to the next step.

    Refer this.
    /people/berndt.woerner/blog/2007/09/19/different-ways-to-model-dynamical-assignment-of-user-to-process-roles-using-composition-tool-guided-procedures--part-1
    If you implement by parallel dynamic block way one action is assigned to multple users with different instances.
    As it is in parallel dynamic block untill all the users did not complete the their own action, process will not move fwd. hemce this will solve your problem.
    Regards,
    Pratik khandelwal
    Edited by: Pratik Khandelwal on May 19, 2009 9:22 AM

  • Array of variable-length lists in Action Engine

    I'm starting work on a application that consists of multiple sub-panels which each present a specific subset of the hardware functionality.  The hardware appears to the host mostly as memory-mapped registers.  I'm considering implementing the hardware interface in an Action Engine (AE) so that LV will automatically arbitrate among the hardware access requests from the sub-panels and because it (seems to me) to make the data flow more clear than the current implementation that uses a veritable plethora of queues, notifiers, and rendezvous to send requests and results between the sub-panels and the hardware interface at the top-level.
    The challenge is this, though:  Certain hardware addresses need to be modeled in multiple sub-panels -- maybe data at a certain address changes the functionality of some other addresses, or maybe different bit-fields within an address are part of different functional groups.   
    So any of sub-panel can request a read or write to the hardware, but often several of them need to see the resulting data.
    In order to keep the design modular and expandable I don't want to hard-code anything in the hardware AE that is specific to the sub-panels.   Instead, I intend to have the sub-panels "register" with the hardware AE indicating for which addresses they need to receive updates when some hardware address is read or written to.  This means the AE will have to keep the "registration" data in an un-initialized shift-register (USR).  But I want the hardware accesses to run as fast as possible, so I would like to ask for some suggestions how to implement this as efficiently as possible (avoiding, for example, clusters of arrays...)
    I imagine the sub-panel registration info might consist of a user-defined event reference (created inside the sub-panel VI) and a list of hardware addresses that the sub-panel is modeling.   Then when the hardware AE gets a request to read or write at some address it will also generate events to broadcast the data to the sub-panels that have registered for that address.   This will probably include 20-25 subpanels registering for a collective total of about 700 hardware addresses.  
    I'm less concerned about memory than speed.
    So, a few possibilities come to mind for how to implement the registration data in the AE USR:
    A) Have one 2-D array where the array contains one row per hardware address (~320), and columns contain the event refs for all the sub-panels registered for that address.   The width of the array would depend on whichever address has the greatest number of sub-panels registered for it (maybe 4-5?), but that still means the array would be pretty large (about 6.5 kbytes if a reference is a 32-bit value?)
    On the other hand, indexing into this array to look up the sub-panel references for the current address would be relatively quick and easy since the hardware address is the row number.
    B) Have two arrays where the array size is the number of sub-panels:  One 1D array for the registered event refs and one 2-D array for the addresses.  But different sub-panels will have different quantity of addresses registered, so that means the "width" of the address array would be as big as the largest number of addresses registered by one sub-panel (maybe 20?).   This would use a total of only about 1.5 kbytes, but I would have to search through all 25 address arrays to see if the current address is registered.
    C) or, some other way that I have not though of.   
    Once the "registration" data is received from the sub-panels during program initialization it is never changed, only read.   So at first glance it would seem (A) would be the faster implementation.  But I don't know what, if any, performance hit there would be from having such a large array in a USR, which is why I'm asking here.
    Any thoughts or suggestions would be greatly appreciated.
    Thank you and Best Regards,
    -- J.

    JeffBuckles wrote:
    Any thoughts or suggestions would be greatly appreciated.
    Thank you and Best Regards,
    -- J.
    Quick thought (hardly!)...
    I have used a "Self-Addressed Stamped Envelope" architectrure for those type os apps.
    DAQ device has a queue it monitors for subscription requests (Think of a in-box for Marketing deparetment).
    When client is created it submits a request via the queue for the subscription request that included a ref to its update queue and a list of teh channels it wants to watch. The clients then wait for updates.
    The Marketing department pass the request for updates (in-box of marketing department) to the production department (I used an AE to pass the mailing list) who picks through the acquired data and passes updates as requested to all of teh subscribing clients.
    Just sharing ideas,
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • How to create parallel tasks using parallel for loops

    Hi,
    I am setting up a program that communicates with six logic controllers and has to read the system status every 100 ms. We are using OPC datasockets for this, and they appear a little slow. 
    I have created a uniform comm. method for all controllers, and now I find myself programming this method six times to communicate with each system. I am wondering if this could be done more elegant using the parallel for loop, in which case I would program an exchange once and then have six workers running simultaneously. Since a picture is more clear that a thousand words, what I am asking is this:
    Is it possible to replace something like
    by
    and have this for loop running these tasks in parallel (on different cores / in different threads)?
    I have configured the loop to create 8 instances at compile, so I would have 2 instances surplus available at runtime if I find I need an additional system.
    The benefits of the method show in the second picture to me are:
    * takes less space
    * modifications have to be made only once
    * less blocks, wires and stuff makes it more clear what's going on.
    * flexibility in the actual number of tasks running (8 instances available at runtime)
    * if more tasks are required, I need only to update the maximum number of instances and recompile, i.e. no cutting and pasting required. 
    Unfortunately, I don't have those system available yet, so there's no way to test this. Yet, I would like to know if the above works as I expect - unfortunately the labview help is not completely clear to me on this.
    Best regards,
    Frans 
    Solved!
    Go to Solution.

    Dear mfletcher,
    First of all: thanks for confirming that my intuition was right in this case.
    As for your question on the help: below is a copy/paste from the help on the 'configure parallelism dialog box' 
    Number of generated parallel loop instances—Determines the number of For Loop instances LabVIEW generates at compile time. The Number of generated parallel loop instances should equal the number of logical processors on which you expect the VI to execute. If you plan to distribute the VI to multiple computers, Number of generated parallel loop instances should equal the maximum number of logical processors you expect any of those computers to ever contain. Use the parallel instances terminal on the For Loop to specify how many of the generated instances to use at run time. If you wire a larger number to the parallel instances terminal than you specify in this dialog box, LabVIEW only executes as many loop instances as you specify here.The reason for me doubting if what I programmed would work the way I intended lies in the fact that the help only mentions processors here, which would be interpreted as actual cores. Thus on a dual core machine, the number should be 2.
    I think it would be helpful to mention something about threads here, because in some case one would like to have more parallel threads than there are cores in a system.
    In mu case I would like to create six threads, which on my dual core processor would be spread over only two cores. Then these six threads run in parallel.I know that in case of heavy math that would not help, but since I am doing communications, which have timeouts and such, and that probably runs smoother in six parallel tasks even though I only have two cores. 
    Hope this helps in improving the help of the for loop.
    Regards,
    Frans 

  • How hard is it to use javascript to show/hide fields. Is it easier to use the action builder?

    I know nothing about javascript and all that ive been using so far has been stuff ive found on here (thank you everyone).
    Using the action builder seems like its gonna be very tedious to do since i have so many subforms that hide, would it be esier to use javascript?

    I know nothing about javascript myself but I just created a form with about 10 different subform that show or hide depending on what the user chooses from a drop down list and I used Action Builder. If we don't know javascript, how can we use it? But Action Builder did a fine job of hiding/showing wherever I needed it. And Action Builder can do more than one thing by clicking that + sign when you are building an action.
    For instance, I needed to place a button in each subform that would close both the field that the person was working in and also the subform on the next page where the information was going into floating fields in a text block that was only visible thru a drop down list text select. I could have never figured out how to do that based on my knowledge of javascript. Thank Adobe for including Action Builder in this version of LiveCycle and I use it all the time. I find it extremely easy to use but it takes a little mental training to think thru the steps of how you can use the menu in Action Builder to make your form do what you need it to do.
    And if all else fails, ask this forum. I struggle for just so long before I come here and ask for help. I always get the answer I need. I hope you will too.
    Good luck,
    Jeanette

  • Abort an instance using ProcessService (Fuego.Papi.ProcessService)

    Hi Folks,
    I want to abort a process instance using ProcessService (Fuego.Papi.ProcessService)
    This is how i am trying to do the same:
    +if (ivBPMObject1.bpmObject1Option != "TRUE") {+
    ProcessService.connectTo(url : Fuego.Server.directoryURL, user : "pavan",
    password : "");
    +// ivInstance2Id is the InstanceId of the other split branch which is alive and which needs to be suspended+
    lvInstance = ProcessService.getInstance(instance : ivInstance2Id.id);
    +// abort+
    lvInstance.abort();
    ProcessService.disconnectFrom();
    +}+
    I get the following exception in the line lvInstance.abort() :.
    The batch operation could not be executed for all selected instances.
    Internal Exceptions:
    +>> /MainProcess#Default-1.0/1/2:+
    Instance '/MainProcess#Default-1.0/1/0' could not be locked because participant 'Server' is currently locking it
    I am running this from the Embedded Workspace of Oracle BPM Studio and I dont see any participant 'Server' in the directory.
    How can i suspend/abort this instance?
    Is there a way that my user/participant 'pavan' can be given rights/privelege to take 'Server's instances?
    I tried using 'Server' as user but i dont know the credentials for 'Server' - so that attempt too failed :(.
    can anyone please help me out?
    Regards,
    user8702013

    Thank you Ariel,
    Yes, I have two 'approvals' happening in parallel - in two branches of a split. when one approval comes 'unapproved', there is no point continuing with the other - i have to abort it.
    But if i set the setting to 'generate independent copies', how will i get the 'instanceId' of the second branch when only the first branch has reached the 'join'? (i had thus made the 'shared' to be true).
    My requirement is that i have two branches in a split. these two split branches call two different approval subprocess which go into user interaction tasks. but when one one approval is rejected (and reaches the join), i want to abort the other instance (atleast of the called subprocess) so that the redundant approval user task of the second branch can be avoided.
    I have been struggling with this for the past couple of days :(
    I am trying to see if i can get the 'instances' of the subprocess in question and find the instance to be killed (aborted) by checking the parents (the parent should be my process). i am getting problems there too. am stranded...
    Regards,
    user8702013

Maybe you are looking for