Multi-threading parallel processing of stored procedures

Hi guys,.

I have the following scenario, and I would like to realize parallel processing to increase the performance of data refresh:

Stored procedure "SP1" - refresh table A
Stored procedure 'SP2' - Update table B
Stored procedure "SP3" - updates table C

I would like to be able to update table A, B and C table at the same time, could someone help me identify ways in what could be achieved if something like this is possible?

I use collections in stored procedures SP1, SP2 and SP3 to accelerate the time to refresh table, although would like to know how parallel update tables.

I have briefly heard the dbms_pipe package, which would be useful in this scenario?

Thank you
Rohan

rbha4 wrote:

I use collections in stored procedures SP1, SP2 and SP3 to accelerate the time to refresh table, although would like to know how parallel update tables.

As already mentioned - perform these distinct process procedures in planning jobs. DBMS_JOB and DBMS_SCHEDULER interfaces can be used. If the work queue manager supports (has been configured) with 3 or more processes working slots and these are empty and not used, then all the 3 procedures can be performed in parallel.

This can be as simple as running the following anonymous block to schedule 3 jobs for immediate execution:

declare
  jobID number;
begin
  DBMS_JOB.Submit( jobID, 'procA;', sysdate );
  DBMS_JOB.Submit( jobID, 'procB;', sysdate );
  DBMS_JOB.Submit( jobID, 'procC;', sysdate );
  commit;
end;

I have briefly heard the dbms_pipe package, which would be useful in this scenario?

Only when the IPC (Inter Process Communication) is required only if the database pipes best fits this requirement.

Tags: Database

Similar Questions

  • parallel processing

    I use LView 8.6.1 and I am very new to LabView.  I have two functions completely aysnchronous in a physical machine.  The first function looks at temperatures of a couple of Thermistors and runs a PID controller to maintain a setpoint.  The second function is running an engine step by step to perform a mixing function has nothing to do with the function of the temperature. Both functions require calls to a set of 3 rd-party of vi, and these vi is integrated in the two parallel loops in a while loop, shown external attachment (generic version due to confidentiality issues). .

    When the same VI is used in both loops, I have them made re-entrant.  I added at least 100 mS wait States to each loop displayed to allow the switching of the CPU.  I have 2 nuclei and the max machine reports 5% CPU usage.  I wired the device configuration and management errors in the parallel between the two loops to avoid the unintentional flow of data series.

    I spent hours and hours searching through posts on this forum and others to try to determine how * completely * asynchronous use these two functions and avoiding of upsetting someone, but no matter how I do it, it seems that some level of dependency is created between the loops.  This can be seen because the loop faster (temperature) ends correctly, but then is forced to wait until the iteration of the slower loop to a conclusion.  I got it to a point where the dependence is tolerable (at one point one of the loops has not yet run!, the other dominated the treatment completely) but I would prefer a real independence because of timing related to the façade being insufficient, how it currently works.  When the loops run in the first place, they do so at independent rates just as I would like.  So independent treatment is possible.  That's when a loop ends, he must wait for each other to end before starting.  I tried loops clocked with a dedicated CPU core and that has not changed anything.  The outer while loop doesn't seem to be the culprit.

    Question: it seems that no matter what, some level of control of the running serially is inherent in a multi-threaded data process.  Queues, notifiers, semaphores, States, engines machines of the action, event - all seem to link a process to another.  Is there a truly independently to address the process completely separated in LabView so that each runs at the rate defined by respective waiting functions and have nothing to do with each other otherwise?

    Thank you.

    You can run the initialization code before starting all parallel loops using the wire of the error as a means of controlling the flow of execution.  See below:

  • FDM batch Loader - error 5: Invalid procedure or augument - parallel process call

    Hi guru FDM.

    I am using FDM version 11.1.2.1. I try to use the function in the FDM of FDM batch workbench and received the following errors:

    * Start the journal entry for the Runtime Error FDM [2013-06-18 18:32:54] *.

    -------------------------------------------------------------

    ERROR:

    Code............................................. 5

    Description... Argument - parallel process ID or 0 = Invalid procedure call

    Process... clsBatchLoader.ExecuteProcessShell

    The component... upsWBatchLoaderDM

    Version.......................................... 1112

    Thread........................................... 42428

    * Start the journal entry for the Runtime Error FDM [2013-06-18 18:32:57] *

    -------------------------------------------------------------

    ERROR:

    Code............................................. 1000

    Description... Parallel process [1] shell could not start

    Process... clsBatchLoader.mFileCollectionProcessParallel

    The component... upsWBatchLoaderDM

    Version.......................................... 1112

    Thread........................................... 42428

    -Lot controls in the FDM workbench are as follows:

    Batch type - Standard

    Level of process - import

    Process method - series (I tried both serial and Parallel)

    Filename delimiter - _ (underscore stroke)

    -Batch file names follow the instructions in the Administrator's guide - < version > _ < location > _ < category > _ < period > _RR.txt (e.g. 1_TESTING_ACTUAL_Q1 - 2012_RR.txt)

    -J' also checked and the FDM data in the shared drive folder comes with a complete access control (read/write).

    -Batch files have been moved to another file sibiling as OpenBatch with a unique name, but the data could not import into the locations.

    -J' also created and launched the script from a web client and the batch workbench.

    I look at what has gone wrong... I want to ask you expert advice. Any help would be appreciated, thanks in advance!

    Hi all

    Thanks a lot for all your response. This issue is resolved as soon as possible and I want to just share what we have done and close this post.

    By my team, the FDM Task Manager has not been configured properly for the loader commands to run. Therefore,.

    1. to configure the FDM Task Manager

    For the file name, such as we would use the description for the period (e.g. T1 - 2012), so

    2. we need to enable the setting "Allows a description custom period." (in the Admin--> Configuration); and

    3. put the spaces between Q1-2012 in file naming for batch loading (for example, we cannot put ___Q1 2012.txt, must be ___Q1 - 2012.txt)

    The batch charger works fine now.

  • Apex. Submit-&gt; process to run one of the two stored procedures on page

    version: 4.2.5

    page one region: form on the stored procedure

    region of page two: form on the stored procedure

    The region button 'submit' for the region page 2:

    ACTION: Redirect URL

    Run Validations: YES

    Target URL: javascript:apex.submit ('CALL_MY_PROC');

    'Treatments' execute the stored procedure

    Point process: submit now - after calculations and Validations

    Enforcement process: once a Page visit (by default)

    ...

    Conditions

    When you press the button:-no Condition button

    Condition type: request = Expression 1

    Expression 1: REQUEST = CALL_MY_PROC

    The expected behavior is to call the stored procedure in the region on two page without invoking the other stored procedure.  Separation of concerns is desired, this button sends the form this proc, this button argues that form to this proc.  Nor should call each other, so to speak.

    The stored procedure is not called when I click 'Submit' (button from region to region page two).  How can I solve this?

    Thanks in advance for any guidance.

    -abe

    Solution: the status... are not REQUEST =

    -abe

  • Process the Message on a stored procedure

    Hi all

    How do I call and diplay APEX the message of a stored procedure?

    Example of form on stored procedre.

    Thank you

    Hello

    What do you mean by 'the message '? If you are referring to the 'success Message', then you can use the variable apex.

    APEX_APPLICATION.G_PRINT_SUCCESS_MESSAGE := 'This is success message for page process';
    

    Kind regards
    Hari

  • Java stored procedures

    Hello. I am quite new to this feature, and I know, java stored procedures are built and called with a static method. My questions are:

    receipt of several requests, are processed in parallel or they are serialized?
    * If, at the same time, it is possible that the son has and b b finishing in the first place, I get the result of b to a?
    * If it is sequential, isn't it a bottleneck?

    Thank you.

    fcallem wrote:
    Thanks for your help, but what I understand from your answer, that this means that, for example, in the case many processes accessing the same java stored procedure as all requests are serialized and handled one by one. Is this correct?

    N ° number of connections to the database simultaneously executes the same java stored procedure.

    fcallem wrote:
    It's not not clear to me what happens if I have multiple threads opening their own connections and access this stored procedure, or, on the other hand, if I have a process that opens up multiple threads, but with a shared connection.

    If you have multiple threads, each with their own connection to the database, they each will perform the same procedure at the same time. If you have multiple threads sharing a single connection to the database, then each thread won't be able to run the one-at-a-time procedure, given that the connection can only be used by only one thread at a time.

    The JVM in Oracle is NOT mono-thread. You can create a java stored procedure that creates multiple threads within the database, and they work simultaneously. However, there is NO case where this would be an appropriate design.

    Read this:
    http://download.Oracle.com/docs/CD/B28359_01/Java.111/b31225/chtwo.htm#sthref293

  • Creating classic report to the stored procedure.

    How can we create a report based on a stored procedure out parameter.

    Can someone please help.

    Thank you

    Nani.

    Nani4850 wrote:

    Out parameter is a multi-level object type.

    I found a way to sort of basis a report on the parameter OUT procedure. The approach is:

    1. call the procedure in a process before PL/SQL areas, convert the object returned in an XML document and store in a collection XMLType column:

    declare
    
      k_rate_query varchar2(255) := 'RATE_QUERY';
    
      l_rate_type_code  number;
      l_rate_query      rate_rec;
      l_xml             xmltype;
    
      l_seq_id number;
    
    begin
    
      l_rate_type_code := to_number(:p1_rate_type_code);
      api_pkg.rate_query(l_rate_type_code, l_rate_query);
      l_xml := xmltype.createXML(l_rate_query);
    
      if not apex_collection.collection_exists(k_rate_query)
      then
        apex_collection.create_collection(k_rate_query);
      end if;
    
      select
          seq_id
      into
          l_seq_id
      from
          apex_collections
      where
          collection_name = k_rate_query
      and n001 = l_rate_type_code;
    
      apex_collection.update_member_attribute(k_rate_query, l_seq_id, 1, l_xml);
    
    exception
    
      when no_data_found
      then
        apex_collection.add_member(
            p_collection_name => k_rate_query
          , p_n001 => l_rate_type_code
          , p_xmltype001 => l_xml);
    
    end;
    

    2. use a SQL/XML query on the XML collection in the region report source:

    select
        rq.*
    from
        apex_collections ac
      , xmltable(
            '/RATE_REC/RATE_TBL/RATE_REC_TYPE'
            passing ac.xmltype001
            columns
                action_code         varchar2(20)  path 'ACTION_CODE'
              , rate_key            number        path 'RATE_KEY'
              , rate_type_code      varchar2(5)   path 'RATE_TYPE_CODE'
              , program_key         varchar2(12)  path 'PROGRAM_KEY'
              , rate                number(8,5)   path 'RATE'
              , effective_date      date          path 'EFFECTIVE_DATE'
              , current_yn          varchar2(1)   path 'CURRENT_YN'
              , non_current_dt      date          path 'NON_CURRENT_DT'
              , non_current_by_id   varchar2(4)   path 'NON_CURRENT_BY_ID'
              , non_current_reason  varchar2(400) path 'NON_CURRENT_REASON') rq
    where
        ac.collection_name = 'RATE_QUERY'
    and ac.n001 = to_number(:p1_rate_type_code)
    
  • transaction isolation stored procedure-level testing

    Hello

    I want to study the concurrency in the Oracle database using stored procedures in pl/sql with different transaction isolation levels.

    The idea is to send to the database of a number "n" of simultaneous transactions where n can be {100, 200, 400, 1000} and for each isolation level (READ COMMITTED, SERIALIZABLE) to determine the number of transactions committed, how much data, run time incorrect.

    The question is how can I generate n transactions that run simultaneously on the data base and how to get these results. I understand that this task can be done as well by using pl/sql stored procedure in the database or inside a JSP Java web application. Advantages/disadvantages?

    I should mention that I'm a begginner in Oracle...

    Thank you in advance.

    You want to run a large number of asynchronous (parallel) transactions.

    Although this can be done by running the Oracle's work, I think it is easier to work with the client side, using a Java program (for example).

    It doesn't have to be a web application (for example. JSP), can be a client Java that uses Java threads, and each thread is using a single database connection (and the corresponding database session).

    Kind regards

    Zlatko

  • DBI - ORA-04065: stored procedure 'APPS. HRI_BPL_CONC_ADMIN

    Hello!

    When I tried to deal with the application of DBI, I hava the following error:

    ORA-04065: no to ha ejecutado porque is ha borrado o reworked

    ORA-04065: stored procedure 'APPS. HRI_BPL_CONC_ADMIN"no to ha ejecutado porque is ha borrado o reworked

    ORA-06508: PL/SQL: no to ha sown the programa llamada unidad: "APPS. HRI_BPL_CONC_ADMIN ".

    ORA-04065: no to ha ejecutado porque is ha borrado o reworked

    ORA-04065: stored procedure 'APPS. HRI_BPL_CONC_ADMIN"no to ha ejecutado porque is ha borrado o reworked

    ORA-06508: PL/SQL: no to ha sown the programa llamada unidad: "APPS. HRI_BP

    +---------------------------------------------------------------------------+

    Top of registro desde FND_FILE messages

    +---------------------------------------------------------------------------+

    ORA-04065: no to ha ejecutado porque is ha borrado o reworked

    ORA-04065: stored procedure 'APPS. HRI_BPL_CONC_ADMIN"no to ha ejecutado porque is ha borrado o reworked

    ORA-06508: PL/SQL: no to ha sown the programa llamada unidad: "APPS. HRI_BPL_CONC_ADMIN ".

    I followed the note:

    ORA-06508: PL/SQL: could not find program unit called: "APPS. HRI_BPL_CONC_ADMIN"error on HRI event capture incremental process [1069280.1 ID], but this ended up completed with warnings

    INFO: 1) YES - 67078:Interim patch 9010222 is a superset of the patches [9010222] OH /u02/CLON/db/tech_st/11.1.0

    INFO:--------------------------------------------------------------------------------

    GRAVE: YES - 67204:OPatch Session is complete warning.

    I have reviewed the invalid objects and the db has no APPS. Invalid HRI_BPL_CONC_ADMIN object.

    The database version is 11.0.7.0 and the i686 plataform.

    Can you help me?

    Thank you

    Hello

    I see the thread marked as answer, have you managed to solve the problem?

    What is the problem you are having now...

    Best regards

  • Implementation of a parallel process using DBMS_JOB

    Hi all

    We use oralce 9.2.0.8.0 d/b,.
    There are procedures (3) running for each provider sequentially and inserting/updating of values in different tables
    These jobs longer account of the needs both to reduce the time to take for these jobs.

    I am using dbms_job to treat this work in parallel so that all tasks will run in parallel.

    is that this approach will lock the tables at the level of the table or simply stored?

    I can't able to establish the parallel process on planning the tool itself, which is the best approach...?

    do I need consider as all other settings before approacing... ?


    Thank you
    ARD

    986803 wrote:
    If two different jobs insert 2 different rows in the same table then so there is no problem locking?

    If you have a table with no index, no trigger, etc. two sessions making INSERT operations are never blocks between them. If you have no trigger, no index bitmap and you can ensure that only unique index on the table is a column on which no two sessions will never be in conflict, the two sessions does not block each other.

    I am a little concerned by your description of the index, however. It does not seem logical that something like unique VENDOR_ID otherwise than in the VENDOR table. You say that each session has a different VENDOR_ID which seems to imply that there are only 3 values VENDOR_ID (one per post). Which implies that he can never y 3 rows in the table (one per VENDOR_ID) which seems unlikely in particular where you plan jobs running in parallel.

    Justin

  • Tables created in a stored procedure cannot be used with dynamic SQL? The impact?

    There is a thread on the forum which explains how to create tables within a stored procedure (How to create a table in a stored procedure , however, it does create a table as such, but not how to use it (insert, select, update, etc.) the table in the stored procedure.) Looking around and in the light of the tests, it seems that you need to use dynamic SQL statements to execute ddl in a stored procedure in Oracle DB. In addition, it also seems that you cannot use dynamic SQL statements for reuse (insert, select, update, etc.) the table that was created in the stored procedure? Is this really the case?

    If this is the case, I am afraid that if tables cannot be 'created and used"in a stored procedure using the dynamic SQL, as is the case with most of the servers of DB dynamic SQL is not a part of the implementation plan and, therefore, is quite expensive (slow). This is the case with Oracle, and if yes what is the performance impact? (Apparently, with Informix, yield loss is about 3 - 4 times, MS SQL - 4 - 5 times and so on).

    In summary, tables created within a stored procedure cannot be 'used' with dynamic SQL, and if so, what is the impact of performance as such?

    Thank you and best regards,
    Amedeo.

    Published by: AGF on March 17, 2009 10:51

    AGF says:
    Hi, Frank.

    Thank you for your response. I understand that the dynamic SQL is required in this context.

    Unfortunately, I am yet to discover "that seeks to" using temporary tables inside stored procedures. I'm helping a migration from MySQL to Oracle DB, and this was one of the dilemmas encountered. I'll post what is the attempt, when more.

    In Oracle, we use [global temporary Tables | http://www.psoug.org/reference/OLD/gtt.html?PHPSESSID=67b3adaeaf970906c5e037b23ed380c2] aka TWG these tables need only be created once everything like a normal table, but they act differently when they are used. The data inserted in TWG will be visible at the session that inserted data, allowing you to use the table for their own temporary needs while not collide with them of all sessions. The data of the TWG will be automatically deleted (if not deleted programmatically) when a) a commit is issued or b) the session ends according to the parameter that is used during the creation of the TWG. There is no real need in Oracle to create tables dynamically in code.

    I noticed that many people say that the "Creation of the tables within a stored procedure" is not a good idea, but nobody seems necessarily explain why? Think you could elaborate a little bit? Would be appreciated.

    The main reason is that when you come to compile PL/SQL code on the database, all explicit references to tables in the code must correspond to an existing table, otherwise a djab error will occur. This is necessary so that Oracle can validate the columns that are referenced, the data types of those columns etc.. These compilation controls are an important element to ensure that the compiled code is as error free as possible (there is no accounting for the logic of programmers though ;)).

    If you start to create tables dynamically in your PL/SQL code, so any time you want to reference this table you must ensure that you write your SQL queries dynamically too. Once you start doing this, then Oracle will not be able to validate your SQL syntax, check the types of data or SQL logic. This makes your code more difficult to write and harder to debug, because inevitably it contains errors. It also means that for example if you want to write a simple query to get that one out in a variable value (which would take a single line of SQL with static tables), you end up writing a dynamic slider all for her. Very heavy and very messy. You also get the situation in which, if you create tables dynamically in the code, you are also likely to drop tables dynamically in code. If it is a fixed table name, then in an environment multi-user, you get in a mess well when different user sessions are trying to determine if the table exists already or is the last one to use so they can drop etc. What headache! If you create tables with table names, then variable Dynamics not only make you a lot end up creating (and falling) of objects on the database, which can cause an overload on the update of the data dictionary, but how can ensure you that you clean the tables, if your code has an exception any. Indeed, you'll find yourself with redundant tables lying around on your database, may contain sensitive data that should be removed.

    With the TWG, you have none of these issues.

    Also, what is the impact on the performance of the dynamic SQL statements in Oracle? I read some contrasting opinions, some indicating that it is not a lot of difference between static SQL and SQL dynamic in more recent versions of Oracle DB (Re: why dynamic sql is slower than static sql is this true?)

    When the query runs on the database, there will be no difference in performance because it is just a request for enforcement in the SQL engine. Performance problems may occur if your dynamic query is not binding variable in the query correctly (because this would cause difficult analysis of the query rather than sweet), and also the extra time, to dynamically write the query running.

    Another risk of dynamic query is SQL injection which may result in a security risk on the database.

    Good programming will have little need for the tables of dynamically created dynamically or SQL.

  • Corresponding to the current thread BSD process name: fseventsd

    Got a new iMac that is causing me problems for a few weeks with crashing every 24 hours more or less at the same time (01:10 - 01-20 in the morning). Has made many controls, cleaned and repaired the disk removed third-party drivers like Toast or Avira: result is zero. I would be happy to receive any suggestions as to a solution.

    Modellname: iMac

    Modell-Identifizierung: iMac17, 1

    Prozessortyp: Intel Core i7

    Prozessorgeschwindigkeit: 4 GHz

    Number of processors: 1

    Gesamtanzahl der Kerné: 4

    (Pro Kern) Cache L2: 256 KB

    L3-Cache:                                       8 MB

    Memory: 32 GB

    Boot ROM Version: IM171.0105.B05

    SMC-Version (System): 2.34f2

    Serial number (System): DG * Q17

    Material-UUID: F6CE3130-683C-5FF5-A857-F5FFB1E5DE33

    Anonymous UUID: 8EA9D2FE-8E6E-C4D1-E2FF-192BE1AD40B0

    Fri Jan 1 01:09:32 2016

    Panic report *.

    Panic (4 CPU): Processor is not responding (this CPU did not recognize interruptions) TLB status: 0x0

    RAX: 0X00000000000002FF, RBX: 0XFFFFFF807244AA08 RCX: 0 X 0000000000000001, RDX: 0X00000000000034F8

    RER: 0XFFFFFF83BC2F36B8, RBP: 0XFFFFFF83BC2F3720, IHR: 0 X 0000000000000002 RDI: 0XFFFFFF807244AA0A

    R8: 0XFFFFFF8011CE0B78, R9: 0XFFFFFF8011CE0B78, R10: 0XFFFFFF8011CE0B78 R11: 0X000034F84CBFF8F4

    R12: 0XFFFFFF807244AA0A, R13: 0XFFFFFF8011C2CE90, R14: 0 X 0000000000000000, A15: 0 X 0000000000000001

    RFL: 0 X 0000000000000086, RIP: 0XFFFFFF80115C3D4C, CS: 0000000000000008, SS 0 X: 0 X 0000000000000010

    Backtrace (4 CPU), Frame: Return address

    0xffffff83af08af80: 0xffffff80115d08cf

    0xffffff83af08afd0: 0xffffff80115ef3f9

    0xffffff83bc2f3720: 0xffffff7f9502c821

    0xffffff83bc2f3950: 0xffffff7f95035d93

    0xffffff83bc2f39a0: 0xffffff8011727dac

    0xffffff83bc2f3a20: 0xffffff801171d50d

    0xffffff83bc2f3c10: 0xffffff8011715ad3

    0xffffff83bc2f3f30: 0xffffff801170aefa

    0xffffff83bc2f3f60: 0xffffff8011a29ac1

    0xffffff83bc2f3fb0: 0xffffff80115efa36

    Extensions of core in backtrace:

    com Apple.filesystems.afpfs (11.0) [0CD2CFC3-9E8A-3627-94FA-9BBAF7577FA4] @0xfffff f7f9500f000-> 0xffffff7f95062fff

    dependency: com.apple.security.SecureRemotePassword (1.0) [3E335294-B4F5-320 c-B431-A16D53C3EE 29]@0xffffff7f94ffd000

    Corresponding to the current thread BSD process name: fseventsd

    Mac OS version:

    15 C 50

    Kernel version:

    15.2.0 Darwin kernel version: Fri Nov 13 19:56:56 PST 2015; root:XNU-3248.20.55~2/RELEASE_X86_64

    Kernel UUID: 17EA3101-D2E4-31BF-BDA9-931F51049F93

    Slide kernel: 0 x 0000000011200000

    Text of core base: 0xffffff8011400000

    Text __HIB base: 0xffffff8011300000

    Name of system model: iMac17, 1 (Mac-B809C3757DA9BB8D)

    Availability of the system in nanoseconds: 58241635953938

    last load kext to 8021022451320: com.parallels.kext.vnic 11.1.2 32408 (addr 0xffffff7f950be000 size 32768)

    Finally unloaded kext to 8116132315148: com.apple.driver.AppleXsanScheme 3 (addr 0xffffff7f95063000 size 32768)

    kexts responsible:

    com Parallels.kext.vNIC 11.1.2 32408

    com.Parallels.kext.netbridge 11.1.2 32408

    com Parallels.kext.Hypervisor 11.1.2 32408

    com Parallels.kext.USBConnect 11.1.2 32408

    com Parallels.virtualhid 1.0.3 3

    com Parallels.Virtualsound 1.0.36 36

    com.promise.Driver.STEX 5.2.10

    com Apple.filesystems.smbfs 3.0.0

    com Apple.filesystems.afpfs 11.0

    com Apple.NKE.asp - tcp 8.0.0

    com.apple.driver.AppleTopCaseHIDEventDriver 86

    com.apple.driver.AppleHSBluetoothDriver 86

    com Apple.filesystems.autofs 3.0

    com.apple.driver.X86PlatformShim 1.0.0

    com.apple.driver.AGPM 110.20.21

    com.apple.driver.ApplePlatformEnabler 2.6.0d0

    com.apple.driver.AudioAUUC 1.70

    com.apple.driver.AppleOSXWatchdog 1

    com.apple.driver.AppleMikeyHIDDriver 124

    com.apple.driver.AppleMikeyDriver 272.51.3

    com.apple.driver.AppleGraphicsDevicePolicy 3.7.7

    com.apple.driver.AppleHDA 272.51.3

    com.apple.driver.AppleUpstreamUserClient 3.6.1

    com Apple.Driver.pmtelemetry 1

    com.apple.iokit.IOUserEthernet 1.0.1

    com.apple.kext.AMDFramebuffer 1.4.0

    com.apple.driver.AppleIntelSKLGraphics 10.1.2

    com.apple.iokit.IOBluetoothSerialManager 4.4.3f4

    com.apple.driver.AppleSMCLMU 208

    com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 4.4.3f4

    com.apple.AMDRadeonX4000 1.4.0

    com.apple.Dont_Steal_Mac_OS_X 7.0.0

    com.apple.driver.AppleHV 1

    com.apple.driver.AppleIntelPCHPMC 1.0

    com.apple.driver.AppleMCCSControl 1.2.13

    com.apple.kext.AMD9000Controller 1.4.0

    com.apple.driver.AppleIntelSKLGraphicsFramebuffer 10.1.2

    com.apple.driver.AppleIntelSlowAdaptiveClocking 4.0.0

    com.apple.driver.AppleThunderboltIP 3.0.8

    com.apple.driver.AppleThunderboltUTDM 3.0.0

    com.apple.iokit.SCSITaskUserClient 3.7.7

    com.apple.AppleFSCompression.AppleFSCompressionTypeDataless 1.0.0d1

    com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0

    com.apple.BootCache 38

    com.apple.driver.AppleUSBODD 3.7.1

    2.8.5 com.apple.iokit.IOAHCIBlockStorage

    com.apple.iokit.AppleIntelI210Ethernet 2.2.1b3

    com.apple.driver.AppleSDXC 1.7.0

    com.apple.iokit.AppleBCM5701Ethernet 10.1.12

    com.apple.driver.AirPort.Brcm4360 1020.17.1a1

    com.apple.driver.AppleAHCIPort 3.1.8

    com.apple.driver.AppleHPET 1.8

    com.apple.driver.AppleRTC 2.0

    com.apple.driver.AppleACPIButtons 4.0

    com.apple.driver.AppleSMBIOS 2.1

    com.apple.driver.AppleACPIEC 4.0

    com.apple.driver.AppleAPIC 1.7

    com Apple.NKE.applicationfirewall 163

    com Apple.Security.Quarantine 3

    com.apple.security.TMSafetyNet 8

    com.apple.security.SecureRemotePassword 1.0

    com.apple.driver.AppleHIDKeyboard 181

    com.apple.driver.AppleMultitouchDriver 304.10

    com.apple.driver.AppleHIDTransport 5

    com.apple.driver.IOBluetoothHIDDriver 4.4.3f4

    com Apple.kext.Triggers 1.0

    com.apple.driver.DspFuncLib 272.51.3

    com.apple.kext.OSvKernDSPLib 525

    com.apple.iokit.IOSurface 108.0.1

    com.apple.iokit.IOSerialFamily 11

    com.apple.iokit.IOBluetoothHostControllerUSBTransport 4.4.3f4

    com.apple.driver.AppleGraphicsControl 3.12.6

    com.apple.driver.X86PlatformPlugin 1.0.0

    com.apple.iokit.IOBluetoothFamily 4.4.3f4

    com.apple.driver.CoreCaptureResponder 1

    com.apple.driver.IOPlatformPluginFamily 6.0.0d7

    com.apple.driver.AppleHDAController 272.51.3

    com.apple.iokit.IOHDAFamily 272.51.3

    com.apple.iokit.IONDRVSupport 2.4.1

    com.apple.driver.AppleSMBusController 1.0.14d1

    com.apple.driver.AppleSMC 3.1.9

    com.apple.kext.AMDSupport 1.4.0

    com.apple.AppleGraphicsDeviceControl 3.12.6

    com.apple.iokit.IOAcceleratorFamily2 203.14

    com.apple.iokit.IOGraphicsFamily 2.4.1

    com.apple.iokit.IOSlowAdaptiveClockingFamily 1.0.0

    com.apple.driver.AppleSMBusPCI 1.0.14d1

    com.apple.driver.AppleThunderboltEDMSink 4.1.1

    com.apple.driver.AppleThunderboltDPInAdapter 4.1.3

    com.apple.driver.AppleThunderboltDPOutAdapter 4.1.3

    com.apple.driver.AppleThunderboltDPAdapterFamily 4.1.3

    com.apple.driver.AppleThunderboltPCIUpAdapter 2.0.2

    com.apple.driver.AppleThunderboltPCIDownAdapter 2.0.2

    com.apple.driver.usb.IOUSBHostHIDDevice 1.0.1

    com.apple.driver.AppleUSBAudio 302.15

    com.apple.iokit.IOAudioFamily 204.3

    com.apple.vecLib.kext 1.2.0

    com.apple.driver.CoreStorage 517.20.1

    com.apple.driver.usb.AppleUSBHub 1.0.1

    com.apple.iokit.IOSCSIMultimediaCommandsDevice 3.7.7

    com.apple.iokit.IOBDStorageFamily 1.8

    com.apple.iokit.IODVDStorageFamily 1.8

    com.apple.iokit.IOCDStorageFamily 1.8

    com.apple.iokit.IOSCSIBlockCommandsDevice 3.7.7

    com.apple.iokit.IOUSBMassStorageDriver 1.0.0

    com.apple.driver.usb.AppleUSBHostCompositeDevice 1.0.1

    com.apple.iokit.IOSCSIParallelFamily 3.0.0

    com.apple.iokit.IOSCSIArchitectureModelFamily 3.7.7

    com.apple.driver.AppleThunderboltNHI 4.0.4

    com.apple.iokit.IOThunderboltFamily 5.1.0

    com.apple.iokit.IOEthernetAVBController 1.0.3b3

    com.apple.iokit.IO80211Family 1110.26

    com.apple.driver.mDNSOffloadUserClient 1.0.1b8

    com.apple.iokit.IONetworkingFamily 3.2

    com Apple.Driver.corecapture 1.0.4

    com.apple.driver.AppleUSBMergeNub 900.4.1

    com.apple.iokit.IOAHCIFamily 2.8.1

    com.apple.driver.usb.AppleUSBXHCIPCI 1.0.1

    com.apple.driver.usb.AppleUSBXHCI 1.0.1

    com.apple.iokit.IOUSBFamily 900.4.1

    com.apple.iokit.IOUSBHostFamily 1.0.1

    com.apple.driver.AppleUSBHostMergeProperties 1.0.1

    com.apple.driver.AppleEFINVRAM 2.0

    com.apple.driver.AppleEFIRuntime 2.0

    com.apple.iokit.IOHIDFamily 2.0.0

    com.apple.iokit.IOSMBusFamily 1.1

    com Apple.Security.sandbox 300.0

    com.apple.kext.AppleMatch 1.0.0d1

    com.apple.driver.AppleKeyStore 2

    com.apple.driver.AppleMobileFileIntegrity 1.0.5

    com.apple.driver.AppleCredentialManager 1.0

    com.apple.driver.DiskImages 417.1

    com.apple.iokit.IOStorageFamily 2.1

    com.apple.iokit.IOReportFamily 31

    com.apple.driver.AppleFDEKeyStore 28.30

    com.apple.driver.AppleACPIPlatform 4.0

    com.apple.iokit.IOPCIFamily 2.9

    com.apple.iokit.IOACPIFamily 1.4

    com.apple.kec.Libm 1

    com Apple.KEC.pthread 1

    com Apple.KEC.corecrypto 1.0

    Panic (CPU 6): Processor is not responding (this CPU did not recognize interruptions) TLB status: 0x0

    RAX: 0X00000000000002FF, RBX: 0XFFFFFF807244AA08 RCX: 0 X 0000000000000001, RDX: 0X00000000000034F8

    RER: 0XFFFFFF803AD5B6B8, RBP: 0XFFFFFF803AD5B720, IHR: 0 X 0000000000000002 RDI: 0XFFFFFF807244AA0A

    R8: 0X000000000098923D, R9: 0XFFFFFF80515FD8C8, R10: 0 X 0000000000000000, R11: 0X000034F84CC02E70

    R12: 0XFFFFFF807244AA0A, R13: 0XFFFFFF8011C2CE90, R14: 0XFFFFFF807244AA0A R15: 0 X 0000000000000001

    RFL: 0 X 0000000000000086, RIP: 0XFFFFFF80115C3D3D, CS: 0000000000000008, SS 0 X: 0 X 0000000000000010

    Backtrace (CPU 6), frame: return address

    0xffffff83af0a9f80: 0xffffff80115d08cf

    0xffffff83af0a9fd0: 0xffffff80115ef3f9

    0xffffff803ad5b720: 0xffffff7f9502c815

    0xffffff803ad5b950: 0xffffff7f95035d93

    0xffffff803ad5b9a0: 0xffffff8011727dac

    0xffffff803ad5ba20: 0xffffff801171d50d

    0xffffff803ad5bc10: 0xffffff8011715ad3

    0xffffff803ad5bf30: 0xffffff801170aefa

    0xffffff803ad5bf60: 0xffffff8011a29ac1

    0xffffff803ad5bfb0: 0xffffff80115efa36

    Extensions of core in backtrace:

    com Apple.filesystems.afpfs (11.0) [0CD2CFC3-9E8A-3627-94FA-9BBAF7577FA4] @0xfffff f7f9500f000-> 0xffffff7f95062fff

    dependency: com.apple.security.SecureRemotePassword (1.0) [3E335294-B4F5-320 c-B431-A16D53C3EE 29]@0xffffff7f94ffd000

    Corresponding to the current thread BSD process name: fseventsd

    panic (the appellant 2 cpu 0xffffff80115b01fa): "TLB invalidation IPI timeout:" "CPU has not responded to interruptions, on which the bitmap of the CPU: 0 x 50, accused of receiving NMIPI: orig: 0x0, now: 0x2"@/Library/Caches/com.apple.xbs/Sources/xnu/xnu-3248.20.55/osfmk/x86_64/pmap .c:2594 ' "."

    Backtrace (2 CPU), Frame: Return address

    0xffffff803ada3360: 0xffffff80114de792

    0xffffff803ada33e0: 0xffffff80115b01fa

    0xffffff803ada3480: 0xffffff80115b705b

    0xffffff803ada3570: 0xffffff80115b7d86

    0xffffff803ada35e0: 0xffffff8011563da5

    0xffffff803ada36f0: 0xffffff801155934c

    0xffffff803ada3720: 0xffffff8011554813

    0xffffff803ada3750: 0xffffff80114e814d

    0xffffff803ada3770: 0xffffff7f9503791c

    0xffffff803ada3d20: 0xffffff801170cd32

    0xffffff803ada3de0: 0xffffff80117188bc

    0xffffff803ada3f30: 0xffffff801170d187

    0xffffff803ada3f60: 0xffffff8011a29ac1

    0xffffff803ada3fb0: 0xffffff80115efa36

    Extensions of core in backtrace:

    com Apple.filesystems.afpfs (11.0) [0CD2CFC3-9E8A-3627-94FA-9BBAF7577FA4] @0xfffff f7f9500f000-> 0xffffff7f95062fff

    dependency: com.apple.security.SecureRemotePassword (1.0) [3E335294-B4F5-320 c-B431-A16D53C3EE 29]@0xffffff7f94ffd000

    Corresponding to the current thread BSD process name: find

    System profile:

    Graphics card: AMD Radeon M395X, AMD Radeon M395X, PCIe, 4096 MB R9 R9

    Airport: spairport_wireless_card_type_airport_extreme (0x14E4, 0x14A), Broadcom BCM43xx 1.0 (7.21.94.136.1a1)

    Bluetooth: Version 4.4.3f4 16616, 3 services, 27 aircraft, 1 incoming serial ports

    PCI card: pci105a, 8760, controller RAID, Thunderbolt@10,0,0

    PCI card: pci1b73, Thunderbolt@196,0,0 1100, USB eXtensible Host Controller.

    PCI card: ethernet, Ethernet Controller, Thunderbolt@195,0,0

    PCI card: pci1b21, 1142, expandable USB Host Controller, Thunderbolt@16,0,0

    PCI card: pci1b21, 1142, expandable USB Host Controller, Thunderbolt@15,0,0

    PCI card: pci1b21, 1142, expandable USB Host Controller, Thunderbolt@14,0,0

    PCI card: pci1b21, 1142, expandable USB Host Controller, Thunderbolt@13,0,0

    Bus crush: iMac, Apple Inc., 28.1

    Lightning device: Pegasus series R, Promise Technology, Inc., 1: 22.2

    Lightning device: Thunderbolt 2 Express Dock HD, Belkin International, Inc., 3, 25.1

    Memory module: DIMM0/0, 8 GB DDR3, BANK 1867 MHz, 0x80AD, 0x484D54343147533642465238412D52442020

    Memory module: DIMM1/0, 8 GB DDR3, BANK 1867 MHz, 0x80AD, 0x484D54343147533642465238412D52442020

    Memory module: DIMM0/1, 8 GB DDR3, BANK 1867 MHz, 0x80AD, 0x484D54343147533642465238412D52442020

    Memory module: BANK 1/DIMM1, 8 GB, DDR3, 1867 MHz, 0x80AD, 0x484D54343147533642465238412D52442020

    USB device: USB 3.0 Bus

    USB device: 4-port USB 3.0 Hub

    USB Device: USB Bluetooth host controller

    USB device: FaceTime HD camera (built-in)

    USB device: Apple USB SuperDrive

    USB device: USB 2.0 Hub

    USB device: MB86C311

    USB device: Laptop SSD

    USB device: USB 2.0 Hub [MTT]

    USB device: Wacom Wireless Receiver

    USB device: USB 3.0 Bus

    USB device: SSD laptop T1

    USB device: DTHX Predator

    USB device: USB audio CODEC

    USB device: USB 3.0 Bus

    USB device: WorkflowD512

    USB device: USB 3.0 Bus

    USB device: WorkflowD512

    USB device: USB 3.0 Bus

    USB device: WorkflowXR1

    USB device: USB 3.0 Bus

    USB device: WorkflowCFR1

    Serial ATA Device: APPLE SSD SM1024G, 1 TB

    Network service: Wi - Fi, AirPort, en1

    Model: iMac17, 1, IM171.0105.B05 of BootROM, 4 processors, Intel Core i7 4 GHz, 32 GB, MSC 2.34f2

    Even if you have installed a third-party software ('Parallels' and a 'Promise' device driver) who is likely to cause a kernel panic, the kind of panic you are most likely caused by a hardware failure. I suggest that you take the machine to an Apple Retail Store or other provider of services allowed for a stable service and guaranteed, if necessary.

  • Implementation of the synchronization steps without using batch or parallel processing sequences

    We use a model of customized integrated process based on sequential process model.

    I have to call the Synchronization Manager in order to use the steps of synchronization when you do not use batch or models of parallel process?

    All operations (locks, Rendezvous, Notifications, queues, etc.) and the steps of synchronization works in any model or a model, with the exception of the synchronization of the lot.

    If you need batch synchronization, your model must use synchronization > advanced > step type specification of batch processing to specify what threads are in the batch. Since you are not from the model of batch processing, I doubt that you have to worry about this.

  • Urgent: continous recorders of NIDAQmx and other instruments with multi-threaded vc ++

    I'm working on a software with vc ++ to control several instruments including a NO-DAQmx6289. For example, the features of the software.

    1. communicate with data acquisition card (card data acquisition) and continuously acquire data from several channels at a frequency of 1 kHz.

    2. connect with function via port RS232 1 generator, sending triggered bursts to the real-time features generator change state Ultrasound (G_usstatus) variable.

    3. connect with optical switch via RS232 2 port, send signals to switch between the two input channels (0,1) and six output channels (2,3,4,5,6,7) to the specified user to sequence and time interval (default: 150 ms), real-time change the channel connection variable (G_optchannel).

    4. in real-time, record data and the corresponding ultrasound status and connection status of optical channel in a specified file use for later analysis.

    I use multiple threads to make data acquisition (1-wire), control of the function (2 wire) generator and optical switch (3 wire).  I also need save data acquisition of data and the corresponding ultrasound status and use the connection status of optical channel in a specified file for later analysis. I use the following codes to read data continuously.

    Sub DataCollectionWin::ConnectDAQ()
    {DAQmxErrChk (DAQmxCreateTask ("", & taskHandle));}
    DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));
    DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0,Dev1/ai1,Dev1/ai2,Dev1/ai3,Dev1/ai4,Dev1/ai5,Dev1/ai16,Dev1/ai17,Dev1/ai18,Dev1/ai19,Dev1/ai20,Dev1/ai21,Dev1/ai6,Dev1/ai7,Dev1/ai22","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));
    DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,60000));

    DAQmxErrChk (DAQmxRegisterEveryNSamplesEvent (taskHandle, DAQmx_Val_Acquired_Into_Buffer, 50, 0, EveryNCallback, NULL));
    DAQmxErrChk (DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,));

    DAQmxErrChk (DAQmxStartTask (taskHandle));

    Error:
    If (DAQmxFailed (error))
    {
    DAQmxGetExtendedErrorInfo (errBuff, 2048);
    MessageBox (errBuff);
    DAQmxStopTask (taskHandle);
    DAQmxClearTask (taskHandle);
    return;
    }

    }

    Int32 CVICALLBACK EveryNCallback(TaskHandle taskHandle, int32 everyNsamplesEventType, uInt32 nSamples, void *callbackData)
    {
    char l_optstatus_s [1] l_optstatus_e [1];
    char l_usstatus_s [1] l_usstatus_e [1];

    /*********************************************/
    Reading DAQmx code
    /*********************************************/
    If (! m_bStopTracking)
    {
    l_usstatus_s [0] = g_usstatus [0];
    l_optstatus_s [0] = g_optstatus [0]; Switching State optical before reading the data of 50 * 15

    DAQmxErrChk (DAQmxReadAnalogF64(taskHandle,50,10.0,DAQmx_Val_GroupByScanNumber,data,50*15,&read,));

    SetEvent (hEvent);
    l_usstatus_e [0] = g_usstatus [0];
    l_optstatus_e [0] = g_optstatus [0]; Status of the ///optical at the end of the reading of the data of 50 * 15

    If (read > 0) / / / save data in an exl file specified by "datafile".
    {

    Indicator = 1;

    for (i = 0; i<>
    {(/ / fprintf(datafile,"%d\t",i);}
    fprintf(datafile,"%c\t",l_usstatus_s[0]);
    fprintf(datafile,"%c\t",l_usstatus_e[0]);
    fprintf(datafile,"%c\t",l_optstatus_s[0]);
    fprintf(datafile,"%c\t",l_optstatus_e[0]);
    fprintf(datafile,"%.2f\t",data[15*i]);
    fprintf(datafile,"%.2f\t",data[15*i+1]);
    fprintf(datafile,"%.2f\t",data[15*i+2]);
    fprintf(datafile,"%.2f\t",data[15*i+3]);
    fprintf(datafile,"%.2f\t",data[15*i+4]);
    fprintf(datafile,"%.2f\t",data[15*i+5]);
    fprintf(datafile,"%.2f\t",data[15*i+6]);
    fprintf(datafile,"%.2f\t",data[15*i+7]);
    fprintf(datafile,"%.2f\t",data[15*i+8]);
    fprintf(datafile,"%.2f\t",data[15*i+9]);
    fprintf(datafile,"%.2f\t",data[15*i+10]);
    fprintf(datafile,"%.2f\t",data[15*i+11]);
    fprintf(datafile,"%.2f\t",data[15*i+12]*5);
    fprintf(datafile,"%.2f\t",data[15*i+13]*5);
    fprintf(datafile,"%.2f\n",data[15*i+14]*5);
           
    }
      
    fflush (stdout);
      
    }
    }
    }

    Now the problem is the data acquired with daq card does not match the corresponding registered swtich optical status (G_optchannel, which specifies the light connecting channels). High readings expected certain status really appeared in any other situation.  It seems that there is a misalignment of the multi-thread data. Because the optical switching State passes to 150ms, so I put DAQmxRegisterEveryNSamplesEvent to be trigued each 50samples, which means 50ms with 1 kHz sampling to avoid missing the changes. I also check if there is any change of status during the DAQmxReadAnalogF64, by registering l_optstatus_s and l_optstatus_e, which are actually the same. I wonder if this is because the data are first registered in the buffer. When the software starts reading, at that time, optical swtich status no longer reflects the State when the data was recorded first. Is it possible to fix this?  Thank you very much!

    kGy,

    I'm glad to hear that you are progressing with your project.  Timestamp data are always a bit tricky, because the process of querying a counter on the CPU is done asynchronously with the acquisition of your DAQ hardware.  However, your equipment will ensure that the relative chronology between samples is consistent (in your case, the data will be sampled every 1 ms).  And since you have changed your program as you are now all samples acquired reading, you know that each sample follows the previous 1ms.  So, if I were to implement this I think that I take an initial horodotage when I started the task and to calculate the timestamp for all samples following this timestamp (timestamp SampleN = (*.001s + horodotage initial N) or timestamp SampleN = timestamp SampleN 1 +. 001 s).

    I would go to do that, rather than the timestamp of the end of the reading for the following reason.  As I mentioned previously, the reminder of your reading will run when the OS is planning.  Therefore, it is possible that it gets delayed or does not exactly in phase with the acquisition of hardware, and make adjustments to your code to handle this problem.  However, when you're timestamping there is another thing to pay attention to.  It's the fact that your hardware has a FIFO where sampled data can accumulate before getting transferred to the memory buffer that reading from (for example if the bus PCI were busy when the sample was acquired).  Now assume that the stars aligned against us and get the following:

    (1) the operating system is busy with other things, and our reminder read gets delayed a few ms.

    (2) at the same time, another device connects the PCI bus (or part of the data path between your device and the memory used for the buffer).

    (3) one or more samples is momentarily blocked in FIFO of the device.

    If you were to read data timestamp at the moment, your timestamp would reflect the data in the buffer as well as data that was flying in the FIFO of your device.  However, you can only read data in the buffer.  Thus, time stamp applied to data that you just read would be a millisecond or two later they should be.  Suppose that on the next read reminder, this condition has cleared up itself.  This timestamp taken here would be accurate, however, you will need to return some additional samples (those who were stuck in the FIFO last time).  If you backcalculation your timestamp at this stage, I think that the timestamp calculated for these ecaple timestamps calculated on the previous reading.  It wouldn't be ideal, nor would it reflect when the data has been actually sampled.

    One of the remaining challenges is how exactly the start of time stamp feature.  To do this, I would like to add a call to DAQmxTaskControl (taskHandle, DAQmx_Val_Task_Commit) before calling DAQmxStartTask.  This step will advance the State template DAQmx as far as possible without actually starting the task.  This will help to DAQmxStartTask as soon as possible.  Now, before the appellant beginning or immediately after, I would take my initial horodotage (perhaps timestamp before and after and take the average).  Then I would use this original time stamp and my sampling rate known to calculate timestamps for all the rest of my samples.

    That got a bit long, but I hope it has been helpful.

    Dan

  • Stored procedure

    I can't using stored procedures and need advice.

    If I try to run the stored procedure code, I get an error saying that I not provided a required entry, but the LabVIEW looks I'm him.

    But I get this error message.

    The database table is as follows:

    @ID is generated in the process, he is looked at and inserted.

    I don't have the opportunity to get into the database.  It is a stored procedure of writtin by the DB of my COMPUTER service engineer.  The image above has the required fields highlighted in yellow I need to provide when executing my code.

    Can you see where my mistake was made?

    Thanks for the comments.

    Ben

    The procedure does not match the names of parameters with the values that you provide.  You provide only 5 params, but there are 8 in the stored procedure.  In your case, SerialNumber is spent in the ID, PartNumber in SerialNumber, etc..  Add some empty in your cluster params, if they are not mandatory.

Maybe you are looking for