Hi Chris -- follow up to my question about using TSQ to store strings of different sizes

Thanks for your response.
I did read about those method you mentioned. I have some troubles with each method:
1/ Using TSQ as byte stream.
This is what I chose to use. I basically write to the queue the way you described with an exception about the number of byte to write. I did as followed:
CmtWriteTSQData (tsqHandle, buffer, strlen (buffer),TSQ_INFINITE_TIMEOUT, NULL);
with buffer as the buffer containing my string. Note that strlen(buffer) is not same each time. Also a thread is doing the writing to the queue and another thread is doing the reading. This leads to my next question: How do you read these strings out?
Right now I am reading one
byte at a time with:
while (1)
CmtReadTSQData (tsqHandle, tempbuf, 1, 10, 0);
in a loop, with tempbuf to contain this single char, and then store it in another buffer until I read out a CR of LF which signals the end of a string.
Will I have any problem?
Could you please provide an alternative?
2/ Using TSQ to contain pointers to strings.
I haven't tried this method since I think it requires allocation of rather large static array of buffer and also requires keeping track of these pointer in a link list.
Would you elaborate how you would use TSQ this way in my case.
3/ Lastly, the way I described in (1) works only if I have the main thread to do writing, and another thread to do reading. Some how it doesn't work when I used one thread to do writing, one thread to do reading, and the main thread to handle user interface. I found out that the program spends all its time in the reading thread (inside the while loop).
Why is it different if the writ
ing thread is the main thread? Do I miss something like priority,... or anything like that?
Thank you so much.

You really should consider using event driven reading. There is examples of this in the Multithreading examples in cvi\samples\utility\Threading. Then you will get an event in the reader thread whenever a certain number of items are available to read. If you use the byte stream method, you should send the message length with each method so you know how to package the messages back on the reader side.
For the pointer method, you would malloc the buffer on the writer side, send the pointer to the reader, then the reader would free the memory when it is done with the data.
I don't understand why what you are describing in 3 occurs. If you aren't setting priority to something other than default, then each thread should get time. If you want to free up time i
n a thread that is taking to much, just put a small Delay in that thread.
If you want more help on this, you can look at the examples I mentioned above, read the Multithreading Overview available in PDF form in the cvi\bin directory or contact NI support at http://www.ni.com/ask.
Best Regards,
Chris Matthews
Measurement Studio Support Manager

Similar Messages

  • Question about using new battery in old Powerbook

    I have a pre-intel Powerbook G4, and the battery is pretty much toast (lasts about 15 minutes now). I have ordered a new battery for it, and I have this question about using it:
    Am I smarter to keep the new strong battery out of the PB most days (as I usually work with it plugged in at home) and just pop it in when I know I will be out surfing on batteries? Or is it just as good living in my laptop 24/7 and only occasionally being called upon to do its job?
    Current bad Battery Information below:
    Battery Installed: Yes
    First low level warning: No
    Full Charge Capacity (mAh): 1144
    Remaining Capacity (mAh): 1115
    Amperage (mA): 0
    Voltage (mV): 12387
    Cycle Count: 281
    thanks folks, Shereen

    Hi, Shereen. Every Powerbook battery wants to be used — drained and then recharged — at least every couple of weeks. If you've always used your Powerbook on AC power nearly all the time, and not followed that pattern of discharging and recharging the battery every week or two, it's possible that your use habits have shortened the lifespan and prematurely diminished the capacity of your old battery. Of course it's also possible that your battery is merely old, as a battery's capacity also diminishes with age regardless of how it's used. You didn't say how old the battery is in years, so this may or may not be an issue. I mention it only because it can be an issue.
    For general information on handling a battery for the longest possible lifespan, see this article. My advice on the basis of that article and long experience reading these forums is that it would be OK to do as you propose, but I doubt that you'd derive any significant benefit from it. You would still want to be sure of putting the new battery through a charge/discharge cycle every week or two, even if you didn't have a reason to use the Powerbook away from home or your desk, because sitting unused outside the computer is just as bad for a battery as sitting unused inside it. And you should never remove the battery from your computer when it's completely or almost completely discharged and let it sit that way any longer than a day or two.
    Message was edited by: eww

  • I have a question about using multiple ipads in our school.  Each of our teachers have a iPad and AppleTV in their classroom.  The issue is, with our classrooms so close in proximity to one another, is there a way to pair teacher

    I have a question about using multiple ipads in our school.  Each of our teachers have a iPad and AppleTV in their classroom.  The issue is, with our classrooms so close in proximity to one another, is there a way to pair teacher #1 iPad to its AppleTV without effecting/projecting onto the adjacent teachers #2 classroom AppleTV?

    Not as such.
    Give the AppleTV units unique names and also enable Airplay password in settings with unique passwords for each teacher.
    AC

  • Hi, I have quick question about use of USEBEAN tag in SP2. When I specify a scope of SESSION for the java bean, it does not keep the values that I set for variable in the bean persistent.Thanks,Sonny

     

    Make sure that your bean is implementing the serializable interface and that
    you are accessing the bean from the session with the same name.
    Bryan
    "Sandeep Suri" <[email protected]> wrote in message
    news:[email protected]..
    Hi, I have quick question about use of USEBEAN tag in SP2. When I
    specify a scope of SESSION for the java bean, it does not keep the
    values that I set for variable in the bean persistent.Thanks,Sonny
    Try our New Web Based Forum at http://softwareforum.sun.com
    Includes Access to our Product Knowledge Base!

  • Question about using TVARV in an ABAP program

    Hello gurus, Im sorry about the silly question.
    I have a question about using TVARV in an ABAP program.
    A program is presenting a problem and I think that in this code:
    SELECT SIGN OPTI LOW HIGH
      FROM TVARV
      INTO TABLE R_1_163431035_VELOCIDADE
      WHERE  NAME = '1_163431035_VELOCIDADE'
      AND    TYPE = 'S'.
      IF ZMM001-VELOCIDADE_B   IN R_1_163431035_VELOCIDADE AND
          ZOPERADORAS-OPERADORA = 'ABCD' AND
          ZMM001-MATERIAL       IN R_1_163431035_PRODUTO.
      ELSE.
      ENDIF.
    What happens is that the value "ZMM001-SPEED" B not exist in "R1_163431035_VELOCIDADE" but the program executes commands under the IF and not under the ELSE, as I imagine it would work. Is this correct ?
    I am new to ABAP programming, but I have a lot of XP in other programming languages ​​and this makes no sense to me.
    Anyone know where I can find some documentation of the use of "TVARV" in ABAP programs?
    I search the Internet if other programmers use TVARV this way, but found nothing, which leads me to think that was a quick and dirty solution that used here.
    If this is a bad way to program, what would be the best way?
    Regards
    Ronaldo.

    Hi Ronaldo,
    But in this case, the range is not empty, there are 17 records, in this way.:
    For the column "SING" all values ​​are "E"
    It means that the result is false if ZMM001-VELOCIDADE_B has the same value as one of the 17 records (E = exclude).
    For instance, if it has value 'C' and one of 17 records matches C, then the result is false.
    The "IF" with "IN" using "TVARV" as used in the program of the post above has the same behavior of a selection screen?
    Yes, the same behavior as the selection criterion to be exact. You can press the help key in the complex selection dialog for more info.
    I know it's a silly and very basic question, but other language that I used, only the SQL has the "IN" operator, but I think they work in different ways, so I would like to understand how it works in ABAP.
    Not silly ;-). Yes they work differently.
    More info here:
    - http://help.sap.com/saphelp_nw70/helpdata/en/9f/dba74635c111d1829f0000e829fbfe/frameset.htm
    - http://help.sap.com/saphelp_nw70/helpdata/en/9f/dba71f35c111d1829f0000e829fbfe/frameset.htm
    BR
    Sandra

  • Question about using Macbook in Vietnam.

    I have a question about using Macbook in Vietnam. I bought my mac here in the US, and I'm going to visit Vietnam, but I'm wondering if I can plug in the power directly into the wall or I have to need any convert power modem for my mac. The only thing I know that Vietnam use 220V so, can anyone help me?

    You may need a plug adaptor, but you don't need a power converter.
    (43828)

  • I have a question about using adobe CS files in CS6 edition

    I am a graphic artist . I have a question about using adobe CS files in CS6 edition. when I am gonna open thse adobe CS created files in CS6 Edition i get a color variation than i made with the CS version.Please give me an idea about this issue as soon as possible.If you need i can upload my problem as a screenshot to clearity

    donrulz,
    Are your Edit>Color Settings the same?
    Are you using spot colours, such as Pantone (there have been some changes in CMYK values with new colour books)?

  • Where Would be the best category to ask a question about using dashboard?

    Where Would be the best category to ask a question about using dashboard?

    However, don't ask it in this topic. Create a new topic for the question with a title describing that you are looking for Dashboard help.

  • Question about Using PAPI Web Service in PowerBuilder 9

    Hi, all.
    I Have a simple question about using papiws in power builder 9.
    In pb9, I created a new Web Service Proxy Wizard and I input a url for papiws(ex. http://seraphpernote:7001/papiws/PapiWebService) and click next.
    But I couldn't get any Service List.
    In Eclipse, I used this url for using papiws well.
    Does anybody know about this case??
    help me plz.

    IIRC you must activate PAPI-WS for the engine. In Studio you do it by right-clicking on the project, then "engine preferences". In enterprise/standalone you must activate PAPI-WS in the Admin Center.

  • Question about using 10g/11g and APEX ...

    Hi,
    I just recently learned of Oracle's APEX and have a few questions about using it.
    Can I use APEX with express, standard, and enterprise editions of 10g and 11g?
    Are all of these free to use?

    You might want to read about APEX rather than jumping into questions that are reasonably well documented. Info at http://www.oracle.com/technology/products/database/application_express/index.html
    Your specific questions:
    1) Apex is a package that can be installed into any properly licensed database.
    2) The price for the production license of the database varies by edition.
    The price for Express Edition is $0 for use in production. Part of the cost for that edition is 'no Oracle Support based support, no patches, data volume limitation, etc.'

  • Question about using Runtime.getRuntime();

    hi all
    i have a question about using Runtime.getRuntime(). if i use this to get a runtime reference to run an external program, is it considered as starting a new thread inside the thread that starts it?
    is it safe to do it in the Session EJB? if not, what can you recommand to do it? thanks

    hi all
    i have a question about using Runtime.getRuntime().
    if i use this to get a runtime reference to run an
    external program, is it considered as starting a new
    thread inside the thread that starts it? No. Starting a process, starts a process. Threads have nothing to do with it.
    is it safe to do it in the Session EJB? if not, what
    can you recommand to do it? thanksSo what? Run another process? If you want to run another process in java then your choices are to use Runtime.exec() or use JNI. And using JNI will probably end up doing exactly the same thing as Runtime.exec().
    "Safe" is harder. Typically to correctly use Runtime.exec() you must use threads. And as noted threads ideally should not be used. You can use them but if you do you had better understand why they didn't want you using them in the first place. You had also better be sure that you really want to wait for it to complete.
    Other than that Runtime.exec() is safe because it can't crash the VM like other interfaces can (like JNI.)

  • Questions about Using APIs to import Bills and Routings - AND COSTS

    Hi Forum - the following is a back-and-forth with a customer about use of APIs - Inventory developer suggested I post the question here. Note the 2nd question - and thanks for any assistance.
    SR# 7332152.994 ALCOA
    Instructions given to ct:
    Q1 - Can I load the bill header and components at the same time?
    You should be able to load the bill header and components at the same time. Customer loads bill and component data inserting enough "other" data for each so that the bill sequence id will be derived. For the component record, the assembly item, org and alternate_bom_designator values will be used by BMCOIN to derive the bill_sequence_id.
    Example:
    INSERT INTO BOM_BILL_OF_MTLS_INTERFACE
    ORGANIZATION_CODE,
    ITEM_NUMBER,
    ALTERNATE_BOM_DESIGNATOR,
    PROCESS_FLAG,
    TRANSACTION_TYPE
    VALUES
    'M1',
    '&PARENT_ITEM',
    NULL,
    '1',
    'CREATE'
    INSERT INTO BOM_INVENTORY_COMPS_INTERFACE b
    ORGANIZATION_CODE,
    ASSEMBLY_ITEM_NUMBER,
    ALTERNATE_BOM_DESIGNATOR,
    COMPONENT_ITEM_NUMBER,
    OPERATION_SEQ_NUM,
    COMPONENT_QUANTITY,
    EFFECTIVITY_DATE,
    PROCESS_FLAG,
    TRANSACTION_TYPE
    VALUES
    'M1',
    '&PARENT_ITEM',
    NULL,
    '&COMPONENT_ITEM',
    1,
    1,
    trunc(SYSDATE),
    1,
    'CREATE'
    Hi Aruna, some additional information that may be useful:
    We can load/create the bill header and components at the same time using the scripts given (as above)
    Required Data for Creating a Routing : assembly_item_id,
    organization_id, routing_type, transaction_type, process_flag
    And following scripts can be used to load routing header and operations equences.
    INSERT INTO BOM_OP_ROUTINGS_INTERFACE
    (assembly_item_id,
    organization_id,
    routing_type,
    transaction_type,
    process_flag)
    VALUES (2255800,207,1,'Create',1);
    INSERT INTO BOM_OP_SEQUENCES_INTERFACE
    (assembly_item_id,
    organization_id,
    operation_seq_num,
    Department_code,
    effectivity_date,
    transaction_type,
    process_flag,
    operation_description)
    VALUES
    (2255800,207,100,'ASSEMBLY',
    to_date('24-FEB-2009'),'Create',1,
    'Paint Wagon');
    Q2: One more question, can an expense item can be added to the bill and can contribute the cost.
    As there is a confusion of what I asked, below I am rephrasing my question
    By an Expense Inventory Item, I mean an item that is just tracked for quantity only i.e.,Checking the attributes - Inventory Item, Stockable, Transactable under Inventory Tab and not checking the attribute - 'Inventory Asset Value'.
    My question here is, For these Expense Inventory Items, What is the difference between having the 'Costing enabled' attribute turned ON as opposed to having it UNCHECKED
    *Q3 I have tried to load the items and I could only load 1st level of components but could not load second level of bom at the same time.
    While inserting I have inserted plan level too.
    Please let me know if I have to do anything different to load second level.*
    Thanks
    James

    You may want to look at using the more4apps bill of materials wizard, an excel based solution for uploading assemblies and their components.

  • Questions about using a PDF form online

    I have a client who wants to create an online version of a PDF form that they are currently using. I am currently trying to explain to them that this would be best done as an HTML web form, but I may not win this argument. I have only used PDFs for printed forms (either hand-written or using form fields) so I am not familiar with any problems that converting the form for use online would entail.
    When the 'Submit' button is pressed on the form, is there a way to redirect to another web page after the data is submitted? (i.e. does the PDF have access to it's outer 'environment'?)
    Are there any security issues submitting data using the PDF form as opposed to using a standard web form? (There may be sensitive data being submitted)
    I'm not sure how they plan to handle the data that is submitted, but there are several options in the submitForm parameters - I am assuming that using the HTML option would submit the data in the same format as a web form would. Am I correct here?
    Can the PDF be prevented from being downloaded or printed? This form should only be used to submit data to their server, not as a printed form.
    Are there any other 'gotchas' that I need to look out for? Does anyone have a recommendation for a site which contains any tutorials or guidelines for using PDF forms online?

    Thanks for the information.
    Yes, I agree that there is less reason for it to be a PDF form (Actually, no real reason other than the original form already exists in PDF), but I am unfortunately in the position that my input in this project is not necessarily being considered (my company is following direct -and inconsistent- directions from the client, and I have no contact with the client to ask questions about what their actual needs are). I have been told to give the client the 'Tomato' that they are asking for, even though they are describing an 'Apple'.
    The reason this form is not meant to be printed is that we have replaced the 'Signature' fields from the original form with checkboxes that the user must check to confirm they have 'signed' the document. If they are to print/fax/whatever the document, they should use the original form, not this one. And I am still trying to explain to them that this would be better served with an HTML web form, but I fear I am losing that battle.
    I have brought up the fact that it is not 100% guaranteed that Acrobat will be available in the browser, although I can only guess that it is less than likely that anyone will not have some sort of PDF viewer available to their browser.
    I will also mention that issues may arise if the file is not submitted from within the browser.

  • Question about using container class - Map

    hi all
    i have a question about the following :
    i have two sets of data, both use a common filed as key for the map:
    A = {a,b,d,f,g,h} and B = {a,d,e,g,i,k}, each key has a value associated with.
    i need to find out the commonality, and the difference - i.e fields are in map A but not in Map B, and some fields that are in B but not in A. is there any quick method that comes with the collection class that can calculate this? thanks

    yes, the keyset will be used to access values.
    so, SetA.retainAll(SetB) will modify the SetA so that it contains keys that are in both SetA and SetB - the intersection.
    and SetA.removeAll(SetB) will modify the SetA so that it only contains keys that are in SetA, but not in SetB?
    correct?

  • Question about using AQ

    Hello, am using 11g. I have some questions about AQ. Thanks a lot for any help.
    I use a periodic job to make around 100 event-based jobs run each time. There are totally 1000 event-based jobs. I choose 100 of them in a round robin way. If I run the periodic job too frequently, that means I will trigger another 100 jobs to run not until the last 100 jobs complete.
    So what will happen? How many messages does the queue can hold? If the queue is full, what will the program which is trying to enqueuing do?
    Because I find that I cannot make the CPU utilization reach 100% no matter how I decrease the period of the triggering job. I think there should be something wrong with the event-based jobs.
    The following codes are what I wrote for sending messages to trigger those 100 jobs. I find out that the time that these codes take to finish (the loop) varies a lot. If the queue is full, will the program wait here?
    select t.start_num INTO l_offset from scheduler_info_tab2 t;
    l_jobnum := 0;
    IF l_issue_num != 0
    THEN
    FOR i IN 1..l_issue_num
    LOOP
    l_jobnum := mod(l_offset + i,1000);
    IF l_jobnum = 0
    THEN
    l_jobnum := 1000;
    END IF;
    -- l_jobnum := i;
    l_queue_msg := t_queue_payload('subscription'||TO_CHAR(l_jobnum));
    DBMS_AQ.enqueue(queue_name => 'schdl_queue',
    enqueue_options => l_enqueue_options,
    message_properties => l_message_properties,
    payload => l_queue_msg,
    msgid => l_message_handle);
    END LOOP;
    END IF;
    UPDATE scheduler_info_tab2 t SET t.start_num = l_jobnum;
    COMMIT;
    The queue is created by
    DBMS_AQADM.create_queue_table(queue_table => 'schdl_queue_tab',
    queue_payload_type => 't_queue_payload',
    multiple_consumers => TRUE);
    -- Create the event queue.
    DBMS_AQADM.create_queue (queue_name => 'schdl_queue',
    queue_table => 'schdl_queue_tab');
    -- Start the event queue.
    DBMS_AQADM.start_queue (queue_name => 'schdl_queue');
    null
    null

    Hi,
    AQ actually has its own forum here
    Advanced Queueing
    and you may get better answers there.
    As far as I know a queue can store an unlimited number of messages. The enqueuing program will enqueue the messages and complete but there may be a delay until the messages are processed.
    As I mentioned before running lots of jobs results in overhead disk activity which will limit the max cpu utilization and each job also has a CPU overhead which may not be accounted for in Oracle cpu totals.
    DBMS_AQ.enqueue should never hang waiting for messages to enqueue (it should just add the message to the queue and continue). I don't know enough about it to know why its time is varying (the AQ forum may give some answers).
    Thanks,
    Ravi.

Maybe you are looking for

  • How can I make my CP modules more stable and reliable?

    We've recently rolled out a major compliance training module to our whole company. It was quite a large project about 13mb when published, including audio. It was delivered via the latest version of Saba. Some users had no problems with it - it ran a

  • Time--Privilege leaves accumulation for New Joinees after 1 year of service

    Dear Experts, We have configured Privilege leaves for Client and its working fineu2026 Requirement u2013 Where as a new joinee should avail the PL accumulated for first years only after completing on year of service. New Joinee is getting quota every

  • Photoshop CS2 on OSX Server 10.4.8 or an OSX 10.4.7 partition?

    Hi Gang, We are trying to use our Xserver running OSX Server 10.4.8 as a central processing center for some of our photo workflow. Our workflow uses some scripts which trigger Photoshop actions. For this to work, it must have access to an OS with an

  • Partner function twice in a document

    HI All, Can anyone guide how can we enter one partner function twice in a Delivery document. For Ex: I have a Delivery document where i need to enter CR-forwarding agent as twice with different Agent numbers. Thanks in advance

  • ANN: Tutorial - Dynamically Invoking Web Services

    This tutorial describes how build an application that invokes Web Services dynamically at runtime. You will also learn how to publish and find Web Services registered in Oracle UDDI registry. The sample application implements a bportal where the user