TestStand Execution and Thread Limits?

Is there a limit to the number of executions and threads that TestStand can support?  If not, what is the "practical" limit of Test Sockets for a modern PC running 64-bit Windows?  I understand this is a pretty broad question that is probably based upon the contents of the sequences along with the PC resources (RAM, CPU).  However, I am curious to find out what would be suggested/experienced.
I am looking at implementing "monitoring" ten to hundreds of signals on a system in parallel.  The loop rate for each signal read is specified in a configuration file that can change at runtime.  To implement this in TestStand, a sequence in a new thread would be required for each unique loop rate (signal monitor).  This would possibly create hundreds of threads under an execution.
Any advice would be appreciated!
Thanks
CLA, CTA

There will be a limit... probably when you run out of free memory blocks of a sufficient size. This will vary according to what modules are loaded, what has been allocated and freed at what locations, whether large address awareness is enabled, etc. Your best bet is to test how many TestStand threads you can create in your system within an application that is as close as possible to your desired application and then estimate the reliably obtainable maximum number threads as a fraction of that.

Similar Messages

  • Why does Labview Server shutdown during TestStand execution

    Greetings All,
         Please forgive me if this question should've been posted on the TestStand side.
         What would cause the Labview Adapter Server to shutdown?  I've noticed that each time I click the Test UUT's (green execution arrow) button that during the analysis part before the client actually brings up the serial numbers screen, the Labview Adapter Server initializes.  The task bar would always show TestStand 2010 and Labview 2010 (Getting Started screen).  We are running a batch sequence that is monitoring four (4) uut's during an ESS profile and performing various testing at three (3) different temperature levels.  The process is kind of lengthy (2-1/2 days).  From what I could see the test was in a loop, as usual, waiting for a response from the thermal chambers internal relays which tell the TestStand program that the chamber has begun to move to the next temperature.  I notice that there was an ERROR displayed on the side of one of the batch sequences which was reading one of the PXI-6509 inputs.  I took a screen capture at that point before doing anything further.  I didn't notice it at first but looking at the screen capture again I noticed that Labview was missing from the task bar.
         I am wondering what could have caused this and if there is anything to prevent this from bitting me again.  This client sequence was running well for two (2) days and this happened with less than 12 hours of testing to go.  Thank you for any information that you provide with regards to this question.
    Regards,
    Scott

    Hi snowpunter,
         Sorry I didn't get back to you sooner.
         Unfortunately there are too many users that think too much and close things before my team has a chance to look at the failure when it happens.  There is a remote possibility that someone closed the Labview application by accident.  There are many times that the Labview screen pops up in front of the TestStand screen while the sequence running and someone closed out Labview because they couldn't see the execution.
         It doesn't appear that there are multiple threads trying to access the PXI-6509.  The contractor that did most of the programming utilized a lot of Batch Synchronizations to prevent this kind of thing from happening, not that it isn't possible.
         I'm wondering if there is a way to disable the operator from shutting down Labview, whether by the RED "X" in the top right corner or Menu-File_Close.  If so, How would I accomplish this?  Thanks in advance for any reply you have to offer.
    Thanks,
    Scott

  • NI 5660 Driver DLL Errors when using Teststand 2010 and LabVIEW Run-Time Engine 2010

    This problem seems similar to the post "Resource not found error in executable on developmen​t machine." but I didn't want to repost under that thread because I only happened upon it by chance and none of my searches brought me there... so I made a more descriptive Subject.
    I am working on a system that uses a PXI Chassis with a NI 5600 Downconverter and a NI 5620 high speed digitizer, among other PXI Cards. 
    I inherited working code written in LabVIEW 2010, running with the LabVIEW Run-Time Engine 2010.  The code was using a custom executive and my task was to rewrite the test using TestStand 2010.  I reused the majority of the old code.  The old code used NI-5660 to control the 5600 and 5620.  When I run my sequence using the LV Development System and TestStand, it runs without any issues.  When I change the adapter over to LabVIEW Run-Time Engine 2010, all of my NI5660 VIs become broken due to DLL issues.  It warns that the nipxi5600u​.dll was not initialized correctly.  Many of the errors are associated with the NI Tuner and NI Scope. After this LabVIEW will crash randomly, and the seqeunce will not work in TestStand even when back with the LV Development Adapter.  The only way to recover after this is to restart the computer - TestStand automatically reverts back to the development system, the VIs are no longer broken and the sequence works again. 
    I have all of my VIs associated with a project. After reading a little bit about DLLs and TestStand, I found all of the DLLs in the dependencies section of my project and added them to my TestStand workspace.  I also used Dependency Walker to track down the problems with the nipxi5600u​.dll, the 2 DLL files that it said were not found already existed in the same folder as the original DLL (C:\Windows\System32).  I have also performed a Mass Compile to make sure everything was running in LV 2010.  If I skip the steps involving the 5660, my entire sequence runs fine. 
    The previous code was running with the LabVIEW Run-Time Engine without any issues.  Is there just a step I am missing?  Has anyone seen anything like this before?  I can send screenshots of errors to provide more detail if necessary. 

    I have tried some more things and still can't get it to work.  I have added the VIs mentioned in the Notes On Creating Modulation Executables KB both to the TestStand workspace and the LabVIEW project holding all of my VIs.  This did not change the results. 
    When I try to run my sequence, The first error I get is shown in Error 1445.bmp.  This happens when I try to use the NI 5660 initialize.vi.  If I click ignore, the next error I see is shown in Error -20551.bmp.  When I try to open the VI to look at it, I get the 2 DLL errors shown in Error loading nipxi5600u.bmp and Error loading nidaq32.bmp.  When I close TestStand, I get the error LabVIEW Fatal Error.bmp. 
    Attachments:
    Error1445.JPG ‏164 KB
    Error -20551.JPG ‏174 KB
    Error loading nipxi5600u.JPG ‏9 KB

  • Question about synchronize() statement and thread scheduling?

    I have threads accessing a shared LinkedList in the main thread. I made use of the Collections.synchronizedList() to avoid concurrent modifications. one of the threads is a timer thread and it has a priority of 5 and the other threads are message reception threads and i made them of a lower priority just to allow the timer thread to be executed on time. According to the javaAPI, all iterations on the synchronized list should be done using synchronized(synchronizedListRef){} and this is what i do,
    The problem is even after setting the priority of the reception threads lower than the timer thread, the reception threads are sometimes executed more than once and the timer thread is delayed. Lets assume the situation where the timer reaches the point where it has to acquire the lock (the synchronized statement) and it discovers that the lock is already taken and it cant access the list because the other thread (of a lower priority) is iterating over it. shouldnt the higherpriority thread be executed after that the reception thread (that is blocking the timer thread) finishes its execution and release the lock (even if there are other reception thread waiting)??
    does the priority play a role when a thread is blocked?

    Asady wrote:
    I have threads accessing a shared LinkedList in the main thread. I made use of the Collections.synchronizedList() to avoid concurrent modifications. Make sure you explicitly sync around all iterations. Just using Collections.sync is not enough.
    The problem is even after setting the priority of the reception threads lower than the timer thread, the reception threads are sometimes executed more than once and the timer thread is delayed.There's no guarantee as to how priority will be interpreted. The scheduler implementation is free to do pretty much anything.
    As for how to solve your problem, you might want to look at java.util.concurrent.*, e.g. PriorityQueue. If the classes there don't give you just what you need, you may be able to build on them, or at least get ideas from them. Bottom line is that if you want a specific scheduling algorithm, you'll have to implement it yourself, since Threads' priority semantics are only very loosely specified by the JLS.

  • Graph of Multiple Numeric Result displaying measurements and upper and lower limits

    Is there a way with your graph control to show all the measured values against upper and lower limits in the same graph?. I can display individual lines, but would like to show all the data on the one graph. The woefully cryptic help files you provide with the graph control in TestStand seriously needs attention (Give examples!) also axis labelling, how is that achieved?

    Hey Brian,
    I'm not sure I understand what you're wanting to see with the data plotted on the graph--would it be possible for you to show us an example, even if it's just a drawn mockup of what the graph would look like? I'd like to look into it a bit and confirm that there is not a way to display the data.
    Also, could you provide a bit of detail about the problems you've run into with using external languages with the ATML and XML reports? I'd like to understand that issue a bit better as well to determine how we could address it.
    One thing you might be interested in is that we can currently embed images in the report by inserting HTML code linking to the image. I've seen cases where a LabVIEW VI plotted some data onto a custom graph, saved a picture of the control, and linked the image into the report. Here is a KnowledgeBase article which describes how the linking process works: http://digital.ni.com/public.nsf/allkb/D98A271E30431C9D86256C230079843A?OpenDocument
    I'll look forward to your reply about what you're hoping to see, and perhaps we can think of the best way to accomplish it with the reporting mechanism in TestStand. As Chiara mentioned, if there are features you would like to see that are not currently possible with our reports, the Idea Exchange will be a great place to post that. 
    Thanks!
    Daniel E.
    TestStand Product Support Engineer
    National Instruments

  • I have a problem in this that i want to paas a form in a case that when user pres n then it must go to a form but error arises and not working good and threading is not responding

    made in cosmos help please need it
    using System;
    using Cosmos.Compiler.Builder;
    using System.Threading;
    using System.Windows.Forms;
    namespace IUOS
        class Program
            #region Cosmos Builder logic
            // Most users wont touch this. This will call the Cosmos Build tool
            [STAThread]
            static void Main(string[] args)
                BuildUI.Run();
            #endregion
            // Main entry point of the kernel
            public static void Init()
                var xBoot = new Cosmos.Sys.Boot();
                xBoot.Execute();
                Console.ForegroundColor = ConsoleColor.DarkBlue;
                a:
                Console.WriteLine("------------------------------");
                Console.WriteLine("WELCOME TO THE NEWLY OS MADE BY THE STUDENTS OF IQRA UNIVERSITY!");
                Console.WriteLine("------------------------------");
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine("\t _____                                
                Console.WriteLine("\t|     |        |            |        
    |            |      |");
                Console.WriteLine("\t|     |        |            |        
    |            |      |");
                Console.WriteLine("\t|     |        |            |        
    |            |      |");
                Console.WriteLine("\t|     |        |            |        
    |            |      |___________");
                Console.WriteLine("\t|     |        |            |        
    |            |                  |");
                Console.WriteLine("\t|     |        |            |        
    |            |                  |");
                Console.WriteLine("\t|     |        |            |        
    |            |                  |");
                Console.WriteLine("\t|     |        |            |        
    |            |                  |");
                Console.WriteLine("\t|     |        |            |        
    |            |                  |");
                Console.WriteLine("\t|_____|        |____________|         |____________|      ____________");
                string input;
                Console.WriteLine();
                Console.Write("\nAbout OS     : a");
                Console.Write("\nTo Shutdown  : s");
                Console.Write("\nTo Reboot    : r");
                Console.Write("\nStart Windows Normaly : n");
                Console.WriteLine();
                input = Console.ReadLine();
                if (input == "s" || input == "S"){
                    Cosmos.Sys.Deboot.ShutDown();
                else
                if (input == "r" || input == "R"){
                    Cosmos.Sys.Deboot.Reboot();
                else
                if (input == "a" || input == "A"){
                    Console.ForegroundColor = ConsoleColor.DarkBlue;
                    Console.Clear();
                    Console.WriteLine("\n\n\n-------------------------------------");
                    Console.WriteLine("version: DISPLAYS OS VERSION");
                    Console.WriteLine("about: DISPLAYS INFO ABOUT ANGRY OS");
                    Console.WriteLine("hello or hi: DISPLAYS A HELLO WORLD");
                    Console.WriteLine("MESSAGE THAT WAS USED TO TEST THIS OS!!");
                    Console.WriteLine("-----------------------------------");
                    Console.Write("You Want to know : ");
                    input = Console.ReadLine();
                    if (input == "version"){
                        Console.WriteLine("--------------------");
                        Console.WriteLine("OS VERSION 0.1");
                        Console.WriteLine("--------------------");
                    else
                    if (input == "about"){
                        Console.WriteLine("--------------------------------------------");
                        Console.WriteLine("OS IS DEVELOPED BY Qazi Jalil-ur-Rahman & Syed Akber Abbas Jafri");
                        Console.WriteLine("--------------------------------------------");
                    Console.Write("Want to go back to the main window");
                    Console.Write("\nYes : ");
                    string ans = Console.ReadLine();
                    if (ans == "y" || ans == "Y")
                        goto a;
                        Thread.Sleep(10000);
                    else
                    if (input == "n" || input == "N")
                        Thread.Sleep(5000);
                        Console.Clear();
                        for (int i = 0; i <= 0; i++){
                            Console.Write("\n\n\n\n\t\t\t\t\t  ____        ____   ___  
                            Console.Write("\n\t\t|\t\t |  |      |    |     
    |   |  | |  |  |");
                            Console.Write("\n\t\t|\t|    |  |----  |    |     
    |   |  | |  |  |---");
                            Console.Write("\n\t\t|____|____|  |____  |___ |____  |___|  |    |  |___");
                            Thread.Sleep(500);
                        Thread.Sleep(5000);
                        Console.Clear();
                        BootUserInterface();
                        Console.ReadLine();
    //                    Form1 fo = new Form1();
                    else{
                        for (int i = 0; i <= 5; i++){
                            Console.Beep();
                            Thread.Sleep(1000);
                            goto a;
                while (true);
            private static void BootUserInterface() {
                Thread t = new Thread(UserInterfaceThread);
                t.IsBackground = true;
                t.SetApartmentState(ApartmentState.STA);
                t.Start();
            private static void UserInterfaceThread(object arg) {
                Form1 frm = new Form1();  // use your own
                Application.Run(frm);
     

    Hi
    Jalil Cracker,
    >>when user pres n then it must go to a form but error arises and not working good and threading is not respondin
    Could you post the error information? And which line caused this error?
    If you want to show Form1, you can use form.show() method
    Form1 frm = new Form1();
    frm.Show();
    In addition, Cosmos is an acronym for C# Open Source Managed Operating System. This is not Microsoft product.If the issue is related to Cosmos, it would be out of our support. Thanks for your understanding. And you need raise an issue at Cosmos site.
    Best regards,
    kristin
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Storing carriage return and other special characters in a TestStand variable and passing to LabVIEW

    I am using TestStand step to call a LabVIEW VI that writes commands to a serial device.  The device expects a carriage return at the end of the command.  I can create a constant string in TestStand with the carriage return, e.g., "ATA\x0D" and pass that to a LabVIEW string control which shows ATA\r and the VI works properly.
    To provide consistency and flexibility in my code, I want to store the terminator character(s) in a TestStand variable.  However, when I try to use an expression to create the command string, i.e. "ATA" + "Locals.Terminator", where Locals.Terminator is set to "\x0D", my LabVIEW VI string control shows "ATA\\x0D" which doesn't work.  And when I try Locals.Terminator set to "\r", the LabVIEW string control shows "ATA\\r" which doesn't work either.
    Is there a way to store special characters in a TestStand variable and pass them to LabVIEW as special characters?  I saw in another post that if you edit the TestStand variable by pressing Cntl-Enter, it will store  the newline \n properly and it can be sent to LabVIEW - that works for me as well for \n.  But  I need to send a carriage return.
    I've attached my test sequence and the corresponding LabVIEW VI with a string control.
    Hans
    Attachments:
    Special Chars.seq ‏27 KB
    String Passing.vi ‏13 KB

    Hi Hans, 
    Thanks for your detailed explanation and examples.  In TestStand, change the String parameter's String Type to Binary String instead of ASCII.  Then it will pass the desired value.
    Cheers,
    David Goldberg
    National Instruments
    Software R&D

  • Re: tracing execution and standard Forte messagefilters

    Pierre,
    There is a tech note describing some of the trace flags that will show
    you interpreter profile information. This interface, the information
    produced, etc. may change in future releases that's why it's a tech
    note and not in the documentation set.
    Hope this helps,
    Bobby
    This note describes how to use the execution profile collector built into
    the Tool Interpreter.
    NOTE: THIS INTERFACE IS UNSUPPORTED BUT IS MADE AVAILABLE AS IS TO USERS
    UNTIL A SUPPORTED INSTANCE OF THE FEATURE EXISTS.
    THE SUPPORTED VERSION WILL HAVE A DIFFERENT FUNCTIONALITY AND FORM.
    The Tool Interpreter contains an execution profile data collector. The
    collection
    information can be displayed as trace output or the raw data can be collected
    by the program for further manipulation and display. This information
    describes the current level of support available. It is possible that this
    mechanism will be updated in future releases and/or integrated into the
    TOOL debugger.
    The profiler only counts intructions executed in the interpreter, it doesn't
    account for time spent in C++ code. However it is sill useful in finding
    problems in interpreted code and for viewing the dynamic call flow of the
    application.
    The following trace information is available:
    TRACE CALL-RETURN
    This trace outputs a single indented line for each method call and
    another single line for each method return. The line is indented an
    amount equal to the call depth of the task calling the method. The
    following information is displayed:
    Task Id
    Task Name
    Method Name
    Method Instruction Count
    Task(Id=5,Name=InitialLom)Method(Name=Forte.TopClass.StartUp)
    Task(Id=5,Name=InitialLom)Method(Instructions=10)
    This is enabled using trace setting trc:in:50:1.
    This trace can also be used to see the control flow of an application.
    TRACE TASK BY METHOD
    This trace outputs information about a task and all of the methods that
    where called during it's execution. Each method contains information
    about the number of times that the method was called and the total
    number of instructions consumed by the methods execution. The task
    contains the totals of all calls and instructions performed by the
    task. The methods are sorted in descending order of instructions
    executed.
    The following in an example of the output:
    TaskByMethod(Id=9,Name=projws.display,Instructions=2212)
    ide.projws.updateMenus(Called=1,Instuctions=556)
    ide.projws.addBlockComponentsToTree(Called=1,Instuctions=321)
    ide.projwsPrefs.LoadPrefs(Called=1,Instuctions=247)
    ide.projwsPrefs.Apply(Called=1,Instuctions=206)
    UtilsDisplay.PrefMgr.FetchUserPref(Called=12,Instuctions=168)
    ide.projws.computeWindowSize(Called=1,Instuctions=168)
    ide.projws.refreshBrowser(Called=1,Instuctions=76)
    UtilsBase.CompileSession.SetScope(Called=1,Instuctions=68)
    ide.projws.fillToolObjTree(Called=1,Instuctions=65)
    ide.projws.setTitle(Called=1,Instuctions=53)
    UtilsBase.CompileSession.Init(Called=1,Instuctions=48)
    UtilsBase.InterfaceBrokerBase.GetCompileSession(Called=1,Instuctions=41)
    UtilsBase.InterfaceBrokerBase.LockSession(Called=1,Instuctions=30)
    AppModel.abSurrogateRepositoryClient.GetRepository(Called=3,Instuctions=21)
    UtilsBase.InterfaceBrokerBase.UnlockSession(Called=1,Instuctions=20)
    UtilsDisplay.Workshop.Events(Called=1,Instuctions=20)
    UtilsDisplay.Workshop.HelpEvents(Called=1,Instuctions=19)
    ide.projws.lookupMask(Called=1,Instuctions=17)
    UtilsBase.CompileSession.GetVersionStateForPlan(Called=1,Instuctions=14)
    ide.projws.LoadPrefs(Called=1,Instuctions=13)
    AppModel.abSurrogateRepositoryClient.GetVersionStateForPlan(Called=1,Instuct
    ions=8)
    AppModel.abSurrogateRepositoryClient.FindProject(Called=1,Instuctions=8)
    ide.projws.resetCurrentNode(Called=1,Instuctions=7)
    AppModel.abSurrogateRepositoryClient.IsDetached(Called=1,Instuctions=7)
    ide.projws.selectComponent(Called=1,Instuctions=6)
    ide.projwsPrefs.Init(Called=1,Instuctions=5)
    This is enabled using trace setting trc:in:51:1.
    TRACE APP BY METHOD
    This trace outputs information about an application and all of the
    methods that were called during its execution. Each method contains
    information about the number of times that the method was called and
    the total number of instructions consumed by the methods execution.
    The application contains the totals of all calls and instructions
    performed by the task.
    The output is similar to the previous case.
    This is enabled using trace setting trc:in:53:1.
    TRACE TASK BY CALLTREE
    This trace outputs the call tree of the task. The call tree shows a
    method and all of the methods that it called. And for each of the
    called methods the same output is displayed. This can be used to
    see more of the call structure of a task. It call also be used to
    find the paths in the call tree that consumed most of the instructions.
    The methods are sorted in descending order of instructions executed
    within each level of the call tree.
    TRACE APP BY CALLTREE
    This trace outputs the call tree of the application. The call tree
    shows a method and all of the methods that it called. And for each of
    the called methods the same output is displayed. This can be used to
    see more of the call structure of an application. It call also be used
    to find the paths in the call tree that consumed most of the
    instructions.
    The output is similar to the previous case.
    This is enabled using trace setting trc:in:54:1.
    The following collected information is available:
    NOTE: None of the collection options are available at this time.
    COLLECT TASK BY METHOD
    COLLECT APP BY METHOD
    COLLECT TASK BY CALLTREE
    COLLECT APP BY CALLTREE
    Other potential future features:
    The profiler doesn't record when some interpreted TOOL code invokes a method
    on a object which in implemented in C++. This causes some profile
    information to be lost. If the C++ code invokes a method that is
    implemented as interpreted TOOL the BYCALLTREE profile will not show the
    C++ code. Thus it could be confusing because it appears that the
    interpreted code called something totally different than the what is
    expected.
    At 10:41 AM 7/31/96, Pierre Gelli wrote:
    Hello,
    During the process of tuning an application, or just of making it work, it
    is useful to trace the flow of processing.
    There are two ways of doing it :
    1) add your own trace instructions (calls to the LogMgr) at the appropriate
    places,
    2) use the traces of the Forte Interpreter !
    If one relies on solution 1, then it relies on what the developers have
    written (and thus sometime forgotten to write !) in their code.
    If one relies on solution 2, then potentially it can get as much information
    as is available to the interpreter (and the debugger ?), in a fully
    independant way since it uses directly the code itself and not added trace
    instructions.
    So solution 2 seems quite interesting.
    Unfortunately there are some potential problems :
    a) I haven't found in the documentation an exhaustive description of the
    logs the Forte tools do. The only and very short description is on page 148
    of the System management Guide. It's far from being exhaustive. So it
    requires playing with the filters.
    I recommand trying trc:in:1-63. I guess "in" stands for the interpreter.
    - level 1 seems to give the call tree,
    - level 255 seems to give almost the code !
    b) since the flags are not documented by Forte, how reliable and stable will
    they be in future versions ?
    c) what happens for compiled partitions is not clear to me (I have not tried
    it yet).
    So my question : are the message filters used by the Forte Tools like the
    interpreter described somewhere, i.e. in some Tech Note (I don't have access
    to them yet) ?
    best regards,
    Pierre Gelli
    ADP GSI
    Payroll and Human Resources Management
    72-78, Grande Rue, F-92310 SEVRES
    phone : +33 1 41 14 86 42 (direct) +33 1 41 14 85 00 (reception desk)
    fax : +33 1 41 14 85 99

    From: Pierre Gelli <[email protected]>
    Subject: tracing execution and standard Forte message filters
    Hello,
    During the process of tuning an application, or just of making it work, it
    is useful to trace the flow of processing.
    There are two ways of doing it :
    1) add your own trace instructions (calls to the LogMgr) at the appropriate
    places,
    2) use the traces of the Forte Interpreter !
    So solution 2 seems quite interesting.
    Unfortunately there are some potential problems :
    a) I haven't found in the documentation an exhaustive description of the
    logs the Forte tools do. The only and very short description is on page 148
    of the System management Guide. It's far from being exhaustive. So it
    requires playing with the filters.
    I recommand trying trc:in:1-63. I guess "in" stands for the interpreter.
    - level 1 seems to give the call tree,
    - level 255 seems to give almost the code !
    b) since the flags are not documented by Forte, how reliable and stable will
    they be in future versions ?
    Pierre Gelli,
    level 255 is the most detailed you are right on tracing..... As for documentation
    you will want to get ahold of several good tech notes that your Forte
    rep or support can get you which provide alot of the info you are after.
    Let me know if you can't do this and I can send you some of this info, but you are
    best to get the latest and greatest directly from Forte.
    Len Leber
    ATG Partners

  • Weblogic Enterprise 5.1 and threads

    I know when building servers based on WLE 4.2 in was a big no-no to link in threading libraries like pthread and thread. Is this still the case in Weblogic Enterprise 5.1?

    According to the product information, WLE 5.1 does not support Oracle 8.1.6, it
    only goes up to
    Oracle 8.1.5. But in general, I thought that with oracle there are 2 sets of
    libraries, one for threads and
    one for non-threaded support. You need to use the correct one, in the case of
    WLE, that would be the
    non-threaded one.
    MAS
    Paul Power wrote:
    Thanks Mary,
    Do you know of any customers who have managed to work
    with Oracle 8.1.6 without linking with the thread libraries ?
    cheers,
    P.
    Mary Ann Slavin wrote in message <[email protected]>...
    WLE 5.1 C++ is not a threaded product. Compiling WLE 5.1 C++ with thread
    libraries is not supported and will give unpredictable results for allprograms.
    This should not be done.
    Paul Power wrote:
    Hi Mary,
    Is it a dictate from BEA that you "can't" link with thread libraries ?
    We are using WLE 5.0.1 ( and some 5.1) with Oracle 8.1.6 on
    Solaris and found that we had to link using -lthread in order to use
    Oracle (not the case in 8.1.5)
    We don't actually attempt to try any threading in our apps and
    have not had any problems yet but if it's the case that there
    are known problems using threads we'd love to hear about
    them :-)
    As an aside, is Oracle 8.1.6 cleared for use by WLE ?
    P.
    Mary Ann Slavin wrote in message <[email protected]>...
    No matter how WLE 5.1 C++ is used, it cannot be compiled with threadedlibraries, so that restriction remains.
    A WLE C++ server can act as a client and call a WLE Java Server. Doingthis does not require the WLE C++ server to be compiled with threaded
    libraries.
    Wendell MacKenzie wrote:
    Does this also mean if CORBA C++ servers want to invoke threaded
    JavaServers
    the same DEFECT will be prevent this from being accomplished?
    Mary Ann Slavin wrote:
    WLE 5.1 does not have threads in the C++ clients or servers. Java
    threads are naturally occuring in the language, however, there are WLE
    restrictions on what can be done in the
    Java threads. These are documented.
    jd wrote:
    I know when building servers based on WLE 4.2 in was a big no-no
    to
    link in threading libraries like pthread and thread. Is this still thecase
    in Weblogic Enterprise 5.1?
    >

  • Comments on the 285GTX and the Limiter

    I ask if you have the time and are willing, please post your experiences or feedback with the 285GTX and the limiter whether positive or negative. I will forward to the appropriate parties This is not a official Adobe request or anything incase any are wondering.

    Thank you for the feedback. The limiter comes into play on the 285GTX when you add effects to a 4th layer or higher video and leave the tracks active. The yellow line above your sequence will turn red indicating that the effects for that layer will be processed by the CPU and you will have to render out those effects to export them with the sequence. If you monitor your CPU usage once you add effects to a 4th layer or higher, you will see it increases far more for that layer than it did for the previous 3 layers. Basically what the limiter does is force you to render your timeline if you have effects beyond the first 3 layers and increases CPU usage allot more for any effects beyond the 3rd layer. This requires those projects to take more time due to rendering the effects on those layers. For many that may not be an issue but for those with tight deadlines it will be. If you monitor your GPU usage while playing back 3 layers with several effects, you will see the 285GTX is not being pushed hard with just 3 layers. It is not based on the codec of the material. AVCHD and R3D had the same limitation with regards to effects processing and the limiter.
    My request for feedback is to determine if most people are barely pushing their 285GTX cards with 3 layers. Also it is to determine if you would purchase a Quadro card due to the limiter.I will forward this information to our contacts at Nvidia and Adobe to show them the limiter is completely uncalled for. That is the only way we are going to get this changed now or with the Fermi Geforce cards.

  • Set High and Low Limits for an Item

    Hello Experts,
    We want to set up HI and Low Limits in SAP so that they can help us know when we are low on an Item. We would like to see when we are in a sales order and place an order for an Item that falls below the low limit the system will let us know and still allow us to place the order.
    The Low limits have to go on what is in inventory in warehouse 1 not what is on order. We would also like to be able to run a report that allows us to see what items are below the low limit and also which items are close to the low limit. ( Comparison Report).
    Any help in the above scenario would be appreciated.
    Regards,
    Praneeth

    Hi Parneeth,
    have you fill the data in item master data --> inventory tab --> minimum & maximum inventory level.
    u can define this for each warehouse.
    may this help u..
    Thanks,
    JRAJPUT
    Edited by: J2663312 on Jul 14, 2010 12:19 PM

  • Implementing sockets and threads in a jframe gui program

    Hi, I am trying to find a solution to a problem I am having designing my instant messenger application.
    I am creating listening sockets and threads for each client logged into the system. i want to know if there is a way to listen to other clients request from the main gui and then if another client tries to establish a connection with me for example, a thread is created for that client and then my chat gui opens automatically has soon has the other client sends his or hers first text message to me.
    I am relatively new at socket programming has I am currently studying along this area. I know how to create threads and sockets but I am having trouble finding out a solution to my problem. Here is the code that I have done so far for the listening method from my main gui, and the thread class of what I have done so far.
    listening socket:
         private void listeningSocket()
                ServerSocket serverSocket = null;
                boolean listening = true;
                try
                    //listen in port 4444;
                    serverSocket = new ServerSocket(4444);
                catch(IOException x)
                    JOptionPane.showMessageDialog(null, "cannot listen to port 4444", null, JOptionPane.ERROR_MESSAGE);
                while(listening)
                    client_thread w;
                    try
                       w = new client_thread(serverSocket.accept(), jTextArea1);
                       Thread t = new Thread(w);
                       t.start();
                    catch(IOException x)
                         JOptionPane.showMessageDialog(null, "error, cannot start new thread", null, JOptionPane.ERROR_MESSAGE);
            }thread class:
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.sql.*;
    import java.awt.event.*;
    * @author jonathan
    public class client_thread extends Thread
         //define new socket object
        private Socket client_user = null;
        private JTextArea textArea;
        public client_thread(Socket client_user, JTextArea textArea)
            this.client_user = client_user;
            this.textArea = textArea;
        public void run()
            BufferedReader in = null;
            PrintWriter out = null;
            String error = "error has occured, messege was not sent";
            String messege = null;
             try
                //create input and output streams
                in = new BufferedReader(new InputStreamReader (client_user.getInputStream()));
                out = new PrintWriter(client_user.getOutputStream(), true);
                while(true)
                   //read messege sent by user
                   messege = in.readLine();
                    //display messege in textfield
                   out.println(messege);
                   textArea.append(messege);
            catch (IOException e)
                //error messege
                JOptionPane.showMessageDialog(null, error, null, JOptionPane.ERROR_MESSAGE);
    }

    Seems like all you need to do is create a new dialog for each socket that is established. Your current design looks like it will attempt to use the same textarea for all the sockets.
    I would say in your thread class do the following:
    MyConversationDialog dialog = new MyConversationDialog();
    while(true)
                   //read messege sent by user
                   messege = in.readLine();
                    //display messege in textfield
                   out.println(messege);
                   dialog.setVisible (true);
                   dialog.addMessage (message);
                }

  • Tracing execution and standard Forte message filters

    Hello,
    During the process of tuning an application, or just of making it work, it
    is useful to trace the flow of processing.
    There are two ways of doing it :
    1) add your own trace instructions (calls to the LogMgr) at the appropriate
    places,
    2) use the traces of the Forte Interpreter !
    If one relies on solution 1, then it relies on what the developers have
    written (and thus sometime forgotten to write !) in their code.
    If one relies on solution 2, then potentially it can get as much information
    as is available to the interpreter (and the debugger ?), in a fully
    independant way since it uses directly the code itself and not added trace
    instructions.
    So solution 2 seems quite interesting.
    Unfortunately there are some potential problems :
    a) I haven't found in the documentation an exhaustive description of the
    logs the Forte tools do. The only and very short description is on page 148
    of the System management Guide. It's far from being exhaustive. So it
    requires playing with the filters.
    I recommand trying trc:in:1-63. I guess "in" stands for the interpreter.
    - level 1 seems to give the call tree,
    - level 255 seems to give almost the code !
    b) since the flags are not documented by Forte, how reliable and stable will
    they be in future versions ?
    c) what happens for compiled partitions is not clear to me (I have not tried
    it yet).
    So my question : are the message filters used by the Forte Tools like the
    interpreter described somewhere, i.e. in some Tech Note (I don't have access
    to them yet) ?
    best regards,
    Pierre Gelli
    ADP GSI
    Payroll and Human Resources Management
    72-78, Grande Rue, F-92310 SEVRES
    phone : +33 1 41 14 86 42 (direct) +33 1 41 14 85 00 (reception desk)
    fax : +33 1 41 14 85 99

    From: Pierre Gelli <[email protected]>
    Subject: tracing execution and standard Forte message filters
    Hello,
    During the process of tuning an application, or just of making it work, it
    is useful to trace the flow of processing.
    There are two ways of doing it :
    1) add your own trace instructions (calls to the LogMgr) at the appropriate
    places,
    2) use the traces of the Forte Interpreter !
    So solution 2 seems quite interesting.
    Unfortunately there are some potential problems :
    a) I haven't found in the documentation an exhaustive description of the
    logs the Forte tools do. The only and very short description is on page 148
    of the System management Guide. It's far from being exhaustive. So it
    requires playing with the filters.
    I recommand trying trc:in:1-63. I guess "in" stands for the interpreter.
    - level 1 seems to give the call tree,
    - level 255 seems to give almost the code !
    b) since the flags are not documented by Forte, how reliable and stable will
    they be in future versions ?
    Pierre Gelli,
    level 255 is the most detailed you are right on tracing..... As for documentation
    you will want to get ahold of several good tech notes that your Forte
    rep or support can get you which provide alot of the info you are after.
    Let me know if you can't do this and I can send you some of this info, but you are
    best to get the latest and greatest directly from Forte.
    Len Leber
    ATG Partners

  • Documents and threads to start with Crystal reports with BI

    Hi,
    I am a BI consultant and searching for documents and threads to gain knowledge on Crystal reports .Could any one pls send me the pointers for the same...
    Kindly do the needful
    Points are assured.
    Thanks
    James

    You are in the right place for Crystal Reports and you may also want to look in the BI Forums.
    A good place to start is the Help file for Crystal Reports Designer and download our sample reports. They don't use B1 as the data source but it will help to see how to use CR.
    You need to specify specific questions and "how to's". Books have been written on how to use Crystal reports which is beyond the scope of this forum on one post.
    Thank you
    Don

  • MS 6.0 and Threads

    What is the official status of Measurement Studio 6.0 and Thread access? Right now all my DAQ stuff works great from Visual C++ 6.0 worker threads but my NiButton stuff doesn't. Is this expected? Do I still need to Post Messages to my NiButton controls in order to access them from within worker threads?
    Grant
    Grant M. Johnson
    Project Engineer
    LECO Corporation

    No, the User Interface controls should now support access from other threads. If you are seeing a problem, post the code or contact our tech support through http://www.ni.com/ask and we will see if we can give you an explanation.
    Best Regards,
    Chris Matthews
    National Instruments

Maybe you are looking for

  • Printer's wireless stopped working after installing a wired printer.

    I recently installed a new Epson printer to my computer with a wired connection. That works fine as far as I know, but when I got home, I found that my wireless HP printer no longer worked through the wireless connection, though the wired connection

  • Change default language for the logon Page

    Hello, On a SAP Portal 7.0 SP 17 I've a problem with the language of the Logon Page: is always in English. If I go to internet explorer -> tools -> internet options -> languages I've set Franch as language. When I open the Logon Page (http://xxxx:501

  • BUG : DBMS_OUTPUT.put_line and tabs in sqldeveloper 1.2.1 - build 32.00

    Hi Guys. I upgraded from 1.2 and it appears that dbms_output.put_line is now broken. Consider the following: begin    dbms_output.put_line('hello world'); end;Process: 1. Load SQL Developer 2. Open a connection to DB 3. Go to DBMS Output tab 4. Enabl

  • Customer consignment from vendor consignment stocks

    Hello Experts, I am working on the below scenario, The stocks in vendor consignment are used for customer consignment.  I believe in standard we need to bring the vendor consignment stocks to company's unrestriced to do the post goods issue. Is there

  • Call Oreacle report from Oracle form

    Hi, I need call a Oracle report from Oracle Form and found the the following procedure from this forum. I have 2 parameters 'start_date' and 'end_date' passing to called report. The following example just have onle parameter 'departmentno' passing. I