Closing ADODB sub reference outs in VIs? (LV 8.5.1)

I had a question about closing references to items I have not explicitly opened.
e.g.
I create an ADODB connection object.
From that, I create an ADODB command object.
One of the Command properties is the Parameters reference. I do a parameters.Refresh and using count, I loop through a For loop getting Item references. For each Item reference, I get a parameter object.
One of the properties in the parameter object is a Properties reference.  I do a refresh on that and then go into another For loop. For each Item reference, I get a property node.
OK, now that I've gone through getting/setting information, I need to start working my way out. The last property node had an item reference out from the properties node. Should I close that? The properties node itself had as a reference out, should that be closed? The Parameter node has a reference out, should that be closed? Finally, the Parameters node has a reference out, should I close that?
The command and connection nodes I explicitly opened, so I know I need to close them. But these other references, should I be closing them, or do I only need to close the references I explicitly created?
Thanks, Bob

"intp56" <[email protected]> wrote in message
news:[email protected]..
> I download LabSQL, it looks pretty close to what I want.
> &nbsp;
I'd suggest to use it, and to send them your additional code in return if
you're alowed to do that... Or suggest what you are missing to the project,
so they can add it in later versions.
> I'm looking for a VI that queries a stored procedure to determine what the
parameters are, then creates a LabVIEW cluster with the correct datatypes.
The idea is to call that first to create the Parameters object, then use it
later, particularly for DML operations. (Say insert rows from a LV table.)
I've tried using ADO recordsets to insert large datasets, and found it's
performance to be lacking or unacceptable. I can insert several 1000 records
per second with successive calls to a stored procedure where I specify ahead
of time no result set.
Not sure how ADO does this. I vaguely recall something about it. I think the
values are send item by item, and I think there was a faster way to send the
data by using a variant that directly accepts an array... It's been a while
since I've messed around with that, and I might not have succeeded to get it
working. Googling for "ADO large data sets" or something might give some
clues.
> If I really have lots of rows to insert, then I've found it better to
prepare a file, move it to a place where the database can see it, and BULK
INSERT it asynchronously and report the results back later.
Can't imagine that this is the best way to do it, but it's a good
workaround.
> BTW, I liked the tip that any reference WIRE needs to be closed, that
gives me a nice rule to know what I need to closed.
But even if there is no wire comming out of a reference property, you still
need to close it. So: every "green" read property should be closed.
Regards,
Wiebe.

Similar Messages

  • Closing references out of order?

    I am filling a tree control from a Sub-VI, and I would like to use the DeferPanelUpdates property while I do that.  I would like to put the DeferPanelUpdates property node in the sub-vi so the main vi's block diagram isn't cluttered with it.  So since I already pass a reference to the tree control, I get it's OwningVI, and the FrontPanel from that.
    The help for OwningVI says to close the reference to it when you're done using it.  But since I get the panel reference from it, do I have wait until I close the panel reference before closing the VI reference? I'm just not sure when I am "done" with the VI reference, if you know what i mean...
    Also, do I need to wire all the error terminals on the property nodes? If the tree refnum is invalid, would OwningVI and thus FrontPanel also return invalid refnums? If that were the case, I could just check the last property node's error terminal.
    Any ideas?
    BTW, I found out about DeferPanelUpdates on one of Darren's Nuggets.  From there, there is a link to a thread about when to close references.  It didn't say anything about what to do about references obtained from other references though.
    Thanks,
    John
    Attachments:
    tree-vi-panel-refs.gif ‏11 KB

    Good question, John.  In your case, it is safe to close the VI reference at whatever time you wish.  In my experience *with VI Server* (these suggestions may not apply with other reference types, like ActiveX), if you get references as properties from other references, you can close them in whatever order you wish.  The only time it would be bad to close the VI reference first would be if you obtained it from an Open VI Reference function, and that was the only reference open to the VI.  If you close that reference to the VI, then there are no other references to it, and the VI is not in memory (assuming you don't have it open)...at that point, any subsequent property reads/writes would return an error.
    As far as your question about error chaining, you should definitely wire the errors...there are many reasons you could get errors from property nodes...invalid references, trying to set some properties while the VI is running, certain properties that don't work with objects configured a certain way...don't ever skimp on your error handling, *especially* with VI Server!
    When I work with VI Server and a bunch of different class properties, I find it helps to keep my error chain straight, and route reference wires accordingly.  It helps me keep with the program flow better...here's how I would have wired the diagram you gave above:
    Hope this helps, and I'm glad you discovered my nugget about Defer Panel Updates.  When doing code reviews of UI applications, that is probably the recommendation I've given the most times over the years...
    -D
    Message Edited by Darren on 01-23-2007 10:31 PM
    Darren Nattinger, CLA
    LabVIEW Artisan and Nugget Penman
    Attachments:
    straight_error.png ‏8 KB

  • "in port" and "out port" VIs are not in the functions palette!

    Hi,
    I am using LabVIEW 2012 on a Win 7 64 bit. I want to read a digital input (3.5V) using PC parallel port. I also read this white paper:
    http://digital.ni.com/public.nsf/allkb/B937AC4D8664E37886257206000551CB
    I searched all the functions palette for “in port” and “out port” VIs but I could not find them. Apparently they are not supported in 64bit OS. What are my alternatives for reading digital input via PC parallel port?
    Thanks.

    They have not been supported for quite some time. What happens when you use the recommended VISA api?

  • I have lost my last window of 61 tabs. Recently Closed Windows is greyed out. How do I restore my window?

    RECENTLY CLOSED TABS doesn't offer what I need. And RECENTLY CLOSED WINDOWS is greyed out. Can't I roll back my Firefox to 2 days ago and recover my missing window with 61 tabs?

    Your System Details list shows that you have a user.js file in the profile folder to initialize prefs each time Firefox starts.
    The user.js file is only present if you or other software has created this file and normally it wouldn't be there.
    You can check its content with a plain text editor (right-click: Open with) if you didn't create this file yourself.
    The user.js file is read each time Firefox is started and initializes preferences to the value specified in this file, so preferences set via user.js can only be changed temporarily for the current session.
    Your System Details list shows that you have preferences that were used in previous Firefox versions and that are no longer supported in the current Firefox release.
    You can cleanup the prefs to have a fresh start and delete possible user.js and numbered prefs-##.js files and rename (or delete) the prefs.js file to reset all prefs to the default value including prefs set via user.js and prefs that are no longer supported in the current Firefox release.
    You can use this button to go to the currently used Firefox profile folder:
    *Help > Troubleshooting Information > Profile Directory: Show Folder (Linux: Open Directory; Mac: Show in Finder)
    *http://kb.mozillazine.org/Profile_folder_-_Firefox
    *http://kb.mozillazine.org/Preferences_not_saved

  • Closing a sub frame

    Hey Folks
    I posted a topic a few days ago concerned a problem i was having. The problem basically was that i was calling a frame from within a frame. All that i want to be able to do with this new frame is just for displaying a picture. I want to be able to close the sub frame without closing the main frame also, this is really the aim of tis post. I did up this small example of two sperate class. If any one can see the problem or can even fix it.
    Thanking You
    Ambrose
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class Main extends JPanel implements ActionListener
        private JButton b1;
        public Main() {
            //construct components
            b1 = new JButton ("Sub Form Button");
            //adjust size and set layout
            setPreferredSize (new Dimension (500, 500));
            setLayout (null);
            //add components
            add (b1);
            //set component bounds (only needed by Absolute Positioning)
            b1.setBounds (70, 85, 140, 20);
            b1.addActionListener(this);
         public void actionPerformed( ActionEvent e )
          Object Target = e.getSource();
         if ( Target ==b1)
         JFrame frame = new JFrame ("Sub");
            frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().add (new Sub());
            frame.pack();
            frame.setVisible (true);
        public static void main (String[] args) {
            JFrame frame = new JFrame ("Main");
            frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().add (new Main());
            frame.pack();
            frame.setVisible (true);
         class Sub extends JPanel implements ActionListener {
        private JButton b2;
        public Sub() {
            //construct components
            b2 = new JButton ("Main Form");
            //adjust size and set layout
            setPreferredSize (new Dimension (313, 230));
            setLayout (null);
            //add components
            add (b2);
            //set component bounds (only needed by Absolute Positioning)
            b2.setBounds (70, 85, 140, 20);
            b2.addActionListener(this);
         public void windowActivated(WindowEvent e)
         public void windowClosed(WindowEvent e)
         //Main.dispose();
         public void windowClosing(WindowEvent e)
              //new JFrame ("Main").dispose();
         public void windowDeactivated(WindowEvent e)
         public void windowDeiconified(WindowEvent e)
         public void windowIconified(WindowEvent e)
         public void windowOpened(WindowEvent e)
         public void actionPerformed( ActionEvent e )
          Object Target = e.getSource();
         if ( Target ==b2)
              System.out.println("Testing Method");
              JFrame frame = new JFrame ("Main");
            frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().add (new Main());
            frame.pack();
            frame.setVisible (true);
    }

    Without looking at this code sample I can recommend you:
    For example you have 4 classes:
    loader : load app up
    frame1 : self-explanatory
    frame2 : self-explanatory
    glue : class that has static references to both frames
    So, thanx to glue, you can access both frames from whatever place in code.
    -- Use jframe's setVisible (true/false) to hide/show frames whenever you want to.

  • How to close FPGA reference out from different while loop

    Hi Friends,
                  I`ve different while loop which performs the FPGA read port on different loops I`ve the FPGA out on every terminal at the end of the while loop. I`ve just connected the merge error function in which all the error out of the FPGA are combined and given to simple error handler. How to close the FPGA Reference.

    Can you attach your VI?  I'm not clear on what you mean.  Are you saying that you are using the FPGA reference which is passed into multiple loops, and then continuing the reference wire to pass the ref out of each of the multiple loops?
    If that is the case, I don't believe you can't merge references like you can error clusters.  You will just need to wire one of the reference to the close FPGA VI.  Additionally though, I'd recommend that you use your error clusters in some manner to ensure data flow so that all the other loops stop first, and you are sure you are closing the reference after all the other loops are done with the ref. 

  • Question on closing Front Panel references

    I'm manipulating controls on the Front Panel of my VI.  In doing this, I open a slew of references (to the VI, to the Front Panel, to its Panes, and to the objects on the Front Panel).  Normally, before exiting the VI, I carefully close them (in LIFO order, of course), but a question has arisen:
    I want to "export" a series of references to Boolean controls for use in succeeding VIs.  No problem, while enumerating the controls (see above), I simply identify the Boolean references and build them into an array that I pass out.  First question -- does anything "go wrong" if I also do a "Close Ref" in the main loop (after adding the reference to the array, of course)?  [At present, I'm only doing a Close Ref on the non-Booleans].  Logic says this should be OK, as the Close Ref is mainly doing "garbage collection", and I've done a "copy" operation in building my array, but to a persistent structure.
    Second question -- in my "cleanup" routine, I noticed I was "double-disposing" of the references, that is, I did a Close Ref on my array of Boolean References, but also was enumerating the entire Front Panel (as I did when I opened it) and disposing of the references that it found.  Again, this should be no problem, but (in principle) I'm doing a Close Ref on two references to the Boolean control.  It occurs to me that this is not really logical either -- I should be able to simply "abandon" the array of references -- although it takes up memory that can be "reclaimed" for other uses, the fact that it is an array of RefNums is a "so what" -- the contents of the array could have been a numeric or other "solid" data type.
    Does this make sense?  To summarize, what I'm trying to do is to "extract" some RefNums to Front Panel objects for later use.  In the "extraction" process, I must open (and create references to) multiple objects, including RefNums to my "objects of interest".  What I think I can (and should) do, once I've copied the RefNums I need, is to dispose (Close Ref) all of the RefNums that I opened during the extraction routine, and do something equivalent when I do the subsequent "cleanup" (which undoes any modifications I made as part of the extraction).
    Comments welcome.
    Bob Schor

    I usually store the ref. at the beginning of my program, in Functional Globals, and i close them when the program does not need them any more. 
    I think this is the right approach. And it is simple

  • Correlated sub-query/outer join problem

    Hi,
    I have a problem similar to this one (Outer join with correlated subquery but I'm struggling to find a solution for mine!
    The following query works OK unless there is no entry in room_prices, so I need to outer join somehow to that table otherwise it doesn't return any rows.
    The main difference between the query in the other thread and mine is that mine has an extra table (bookings b) in the sub-query, which is complicating things a bit.
    select b.book_from,
         b.book_to,
         b.flat_rate,
         nvl(c.discount,0),
         p.hourly,
         p.half_day,
         p.daily,
         p.discountable,
         p.surcharge,
         l.evening_start,
         nvl(b.full_day,'N')
    from booking.bookings b,
    booking.customer c,
    booking.room_prices p,
    booking.rooms r,
    booking.location l
    where b.id = 9272
    and c.id = b.customer
    and b.room = p.room
    and b.room = r.id
    and r.loc = l.id
    and p.from_date =
    select max(p2.from_date)
    from booking.room_prices p2
    where p2.room = p.room
    and p2.from_date < b.book_from
    Could anyone suggest a way to re-write the query so that it is outer joined to room_prices?
    Thanks,
    Hazel

    Thanks for both of your responses.
    Unfortunately your suggestion didn't work Dmytro - still no rows are returned.
    Here are some table creation scripts and test data to insert:
    CREATE TABLE BOOKINGS
    ID NUMBER NOT NULL,
    ROOM NUMBER NOT NULL,
    CUSTOMER NUMBER NOT NULL,
    BOOK_FROM DATE NOT NULL,
    BOOK_TO DATE NOT NULL,
    CONFIG VARCHAR2(24) NOT NULL,
    CREATED_DATE DATE NOT NULL,
    CREATED_BY VARCHAR2(16) NOT NULL,
    UPDATED_DATE DATE,
    UPDATED_BY VARCHAR2(16),
    DELEGATES NUMBER,
    NARRATIVE VARCHAR2(256),
    CONTACT_DETAILS VARCHAR2(400),
    CONFIRMED VARCHAR2(1),
    CANC_REASON NUMBER,
    FULL_DAY VARCHAR2(1),
    FLAT_RATE NUMBER,
    STANDBY NUMBER,
    TOTAL_STANDBY_TIME DATE,
    PRE_STANDBY_TIME DATE,
    PRE_STANDBY NUMBER,
    GL_CODE VARCHAR2(20)
    CREATE TABLE CUSTOMER
    ID NUMBER NOT NULL,
    CUSTOMER VARCHAR2(160) NOT NULL,
    CONTACT_ADDRESS VARCHAR2(240),
    CONTACT_TELEPHONE VARCHAR2(20),
    CONTACT_EMAIL VARCHAR2(160),
    CREATED_DATE DATE NOT NULL,
    CREATED_BY VARCHAR2(16) NOT NULL,
    UPDATED_DATE DATE,
    UPDATED_BY VARCHAR2(16),
    DISCOUNT NUMBER(5,2),
    CUST_TYPE VARCHAR2(1),
    CONTACT_FAX VARCHAR2(20),
    DEBTOR_NO VARCHAR2(20),
    BC_CONTACT VARCHAR2(64)
    CREATE TABLE ROOMS
    ID NUMBER NOT NULL,
    LOC NUMBER NOT NULL,
    NAME VARCHAR2(160) NOT NULL,
    CREATED_DATE DATE NOT NULL,
    CREATED_BY VARCHAR2(16) NOT NULL,
    UPDATED_DATE DATE,
    UPDATED_BY VARCHAR2(16),
    ACTIVE VARCHAR2(1),
    ROOM_DESC VARCHAR2(2000)
    CREATE TABLE LOCATION
    ID NUMBER NOT NULL,
    NAME VARCHAR2(240) NOT NULL,
    ADDRESS VARCHAR2(240),
    PCODE VARCHAR2(8),
    CREATED_DATE DATE NOT NULL,
    CREATED_BY VARCHAR2(16) NOT NULL,
    UPDATED_DATE DATE,
    UPDATED_BY VARCHAR2(16),
    CONF_RDF VARCHAR2(10),
    CLOSING VARCHAR2(5),
    EVENING_START VARCHAR2(5)
    CREATE TABLE ROOM_PRICES
    ROOM NUMBER NOT NULL,
    FROM_DATE DATE NOT NULL,
    HOURLY NUMBER(6,2),
    HALF_DAY NUMBER(6,2),
    DAILY NUMBER(6,2),
    DISCOUNTABLE VARCHAR2(1),
    CREATED_DATE DATE NOT NULL,
    CREATED_BY VARCHAR2(16) NOT NULL,
    UPDATED_DATE DATE,
    UPDATED_BY VARCHAR2(16),
    SURCHARGE NUMBER(6,2)
    Insert into bookings
    (ID, ROOM, CUSTOMER, BOOK_FROM, BOOK_TO, CONFIG, CREATED_DATE, CREATED_BY, UPDATED_DATE, UPDATED_BY, DELEGATES, NARRATIVE, CONTACT_DETAILS, CONFIRMED, FLAT_RATE, PRE_STANDBY_TIME, PRE_STANDBY)
    Values
    (9272, 7466, 4946, TO_DATE('10/25/2005 10:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('10/25/2005 13:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'Default', TO_DATE('10/27/2005 15:35:02', 'MM/DD/YYYY HH24:MI:SS'), 'HSIS0201', TO_DATE('10/27/2005 15:36:26', 'MM/DD/YYYY HH24:MI:SS'), 'HSIS0201', 1, 'another meeting', 'Hazel', 'Y', 40, TO_DATE('10/25/2005 09:30:00', 'MM/DD/YYYY HH24:MI:SS'), 1800);
    Insert into customer
    (ID, CUSTOMER, CONTACT_ADDRESS, CONTACT_TELEPHONE, CREATED_DATE, CREATED_BY, CUST_TYPE, BC_CONTACT)
    Values
    (4946, 'Association of Teachers', 'Address', '0191 8887777', TO_DATE('09/22/2003 08:05:47', 'MM/DD/YYYY HH24:MI:SS'), 'Dataload', 'B', 'Miss Jones');
    Insert into rooms
    (ID, LOC, NAME, CREATED_DATE, CREATED_BY, UPDATED_DATE, UPDATED_BY, ACTIVE)
    Values
    (7466, 308, ' Counselling Room 1', TO_DATE('04/11/2005 10:55:33', 'MM/DD/YYYY HH24:MI:SS'), 'BJAC1906', TO_DATE('06/22/2005 14:43:50', 'MM/DD/YYYY HH24:MI:SS'), 'HSIS0201', 'Y');
    Insert into location
    (ID, NAME, ADDRESS, PCODE, CREATED_DATE, CREATED_BY, UPDATED_DATE, UPDATED_BY, CONF_RDF, CLOSING, EVENING_START)
    Values
    (308, 'Business Centre', 'Address', 'NE30 1NT', TO_DATE('03/19/2003 13:07:35', 'MM/DD/YYYY HH24:MI:SS'), 'BJAC1906', TO_DATE('06/09/2005 11:17:09', 'MM/DD/YYYY HH24:MI:SS'), 'BJAC1906', 'BKCF_2', '22:30', '18:00');
    Thanks,
    Hazel

  • How do I quickly update the ActiveX automation references in my VIs when the ActiveX interface changes?

    Hello all,
    I joined a test automation team in the middle of a large project and
    inherited a huge set of VIs (over 700) and associated architecture for
    this automation (not to mention the several thousand TestStand
    sequences).  Another part of the project is being developed by our
    customer, who is using VB 6.0 to create ActiveX components which we
    need to use in LabView to access their hardware.  They've already
    invested a large amount of time developing these ActiveX components,
    and they are not finished -- meaning the ActiveX interfaces will be
    changing.  Every time they send updated ActiveX components, I have to
    re-write many, many VIs including updating a couple strict typdefs. 
    This process takes way too much time and is mind-numbing and prone to
    error or omission.
    Unfortunately I can't post any of the VIs because of a NDA.  But
    perhaps a bit more detailed explanation would help.  TestStand calls a
    VI to open and get an ActiveX reference for automation (which it stores
    in a variant).  It will pass this reference into any VI it calls to
    perform specific functions through this ActiveX interface.  For
    example, one VI that may be called passes this automation refnum into
    another, which passes it to another, which passes it into another to
    get the actual ActiveX reference stored in that variant (through a
    Variant To Data call with a strict typedef of the ActiveX component
    wired to the type input).  [See the attached image of this sample VI
    hierarchy: the far left icon would represent TestStand, and the far
    right is the strict typedef.]  Any of the VIs in the chain might use
    ActiveX Property or Invoke nodes, and it can break at any one of those
    when the ActiveX component changes.  It's easy to fix each one, but
    since there are so many VIs it takes a very long time.
    Is there any way at all to do a massive search/replace or something to
    make the ActiveX references update?  I realise that even though
    property or method names stay the same from one version to the next,
    they are different references.  Is there a way to update these based on
    name if you give it the base ActiveX reference?
    Thanks in advance for any help!
    Tom Williams
    Attachments:
    hierarchy.GIF ‏6 KB

    Ben,
    Unfortunately I can't post any VIs that would demonstrate the problem
    because the ActiveX components are confidential.  I'll try to develop
    my own ActiveX dll that will demonstrate it, but in the meantime, in
    hopes that another picture will help, I've attached an image of a block
    diagram (with some names changed to protect confidential information)
    of one of the lower level VIs from the hierarchy I posted.  In this
    example, the "Automation Refnum IN" is an input with a type definition
    linked to the strict typedef based on the ActiveX automation dll that
    has changed.  I updated that typedef, but as you can see the output to
    the "Class1" indicator is broken.  If I delete the "Class1" indicator
    and select Create->Indicator from the Class1 property node, and then
    wire the new "Class1" indicator to the connector pane, the VI is fixed
    -- at least at compile time.  In most cases there is also a runtime
    problem where the reference obtained by one of the intermediate
    property nodes is null, so the property or method node that uses it
    fails (e.g. "_VNManager.Networks" property returned is 0, so the
    "_Networks.Network1" property node fails).  To fix this problem, I have
    to delete the wires between the property nodes, and one by one select a
    different property/method, then select the correct property/method and
    re-wire.  There seems to be a bit of "jiggling the handle" to get it to
    work though.
    I don't know if the ActiveX developer changed anything in this class,
    but if he did, he didn't change the name of this class.  I would like
    to have to modify the VI only if a class, property or method has
    changed name or been removed.
    Does that all make sense?  Thanks for any pointers or help!
    Tom
    Attachments:
    Class1_Path.GIF ‏7 KB

  • Does "Run VI" invoke node work on strict references to REENTRANT VIs?

    I am using LV 6.02 on Windows 2000.
    I am trying to use the "Run VI" invoke node method with a reference to a Reentrant VI, with no success. (It works when VI is not reentrant. Perhaps there is a reason this cannot work. But if not, I wonder if there is a workaround, or if LabVIEW 6.1 has a fix?
    Hopefully the picture of the block diagram I included is sufficient...but I also included the actual code just in case.
    Thanks!
    Steve
    Attachments:
    block_diagram.jpg ‏66 KB
    Parent_VI_Example.vi ‏43 KB
    Prototype_subVI_shell_for_Simplex_Fit.vi ‏40 KB

    Hi, Labviewguru,
    Thanks for taking the time to look at my admittedly messy (flawed) block diagram. I will try to state my ultimate goal:
    You may be familiar with Levinberg-Marquardt nonlinear curve fit in Labview, which is about 5 VIs in a LLB file. In order to change the type of curve fitting, one has to either modify a formula node in the lowest subVI (Target Func and Deriv), or place a different subVI in there. That's fine until I want to have many different sorts of algorithms.
    What I was thinking of doing is instead passing Target Func and Deriv a reference to the VI which would perform the calculations. This would allow me to use the same fitting code to fit different types of data with substantially different methods--without modifyin
    g the low-level fitting code at all.
    I'm not sure this is going to make any sense to you, but thanks again for your help.
    In regards to your answer above, let me clarify somewhat. I had the call by reference node in there to prove that the reference to the VI was "good" and worked fine...this same reference was passed to the invoke node, which didn't have any apparent effect.
    Also, I don't think the path to the VI I am opening the reference to is redundant. It is required to tell the "Open VI reference" which VI to load.
    I agree that using references to pass values around is not generally a good idea: I was using that method for my supposed versatility in the future.
    Thanks,
    Steve

  • AS Java sessions are not closed until they time out

    Hello Experts,
    we have a SAP PI system to integrate SAP R/3 with external applications and recently we are facing a problem with inactive sessions. There's a new application we are setting up that consumes a webservice published by this SAP PI system. The scenario is SOAP --> PI --> PROXY. What we have noticed is that when the application sends loads of requests sometimes the system fails. This is because we are reaching the maximum number of open sessions in AS Java (1000). Investigating a bit more we found out that the sessions are not "closed" once the communication between the application and SAP PI has finished. Those sessions are open until they are automatically timed-out by the system after 1800 sec.
    We have found the notes below in SAPNet:
    Note 1363751 - ICM: Java Web sessions are not terminated
    Note 1307940 - New HTTP session opened for every web service call
    However, none of them are applicable to our system because it is more updated:
    SAP PI 7.1 EHP1 SP002
    Kernel Patch Level: 87
    We have tried to close connections from the application that consumes the webservice but with no success. The sessions remain in the server until they are timed-out. Could you please tell us if this is the normal behavior of an AS Java system? Is this the way it should work? If so, can you tell us how to decrease this timeout so the inactive sessions are cleaned faster? We tried to find it but we didn't manage. Is there any way to close the session once the communication has finished?
    Thank you in advance.
    Roger Allué i Vall

    Hi Roger,
    You can do the following things to help solving your issue:
    1. Decrease session timeout default value of the web container: Use the NetWeaver Administrator
    Open Application Modules plugin within NWA
    Configuration Management -> Infrastructure -> Application Modules
    Set the desired timeout web module you are using, in minutes.
    The default value 0 in the NWA means that the value is not modified
    and the default value of 30 minutes timeout will be used.
    2. Increase the max. no. of Sessions in Configtool
    The max. number of Sessions can be set in Configtool in the Expert
    mode. There is no limitation for the parameter.
    Thanks,
    Anderson

  • Reopened last closed window is greyed out

    Hi there,
    I recently bought my first Apple notebook - a 15 inch Macbook Pro running OS-X Mavericks. I am running Safari 7.0.2 and am new to Safari. I find that the "Reopened Last Closed Window" option is greyed out. I have searched online communities and deleted plists and rebooted my machine; nothing gives unfortunately.
    Please could you help?
    Thanks,
    Vinayak

    Please read this whole message before doing anything.
    This procedure is a diagnostic test. It won’t solve your problem. Don’t be disappointed when you find that nothing has changed after you complete it.
    The purpose of this test is to determine whether the problem is localized to your user account. Enable guest logins* and log in as Guest. Don't use the Safari-only “Guest User” login created by “Find My Mac.”
    While logged in as Guest, you won’t have access to any of your personal files or settings. Applications will behave as if you were running them for the first time. Don’t be alarmed by this; it’s normal. If you need any passwords or other personal data in order to complete the test, memorize, print, or write them down before you begin.
    Test while logged in as Guest. Same problem?
    After testing, log out of the guest account and, in your own account, disable it if you wish. Any files you created in the guest account will be deleted automatically when you log out of it.
    *Note: If you’ve activated “Find My Mac” or FileVault in OS X 10.7 or later, then you can’t enable the Guest account. The "Guest User" login created by "Find My Mac" is not the same. Create a new account in which to test, and delete it, including its home folder, after testing.

  • CD Drive ejects and stays open, closing it spits back out again

    Hello All,
    I have a 15" Flat panel iMac that keeps ejecting the cd tray. There is no disc in the drive, it just keeps ejecting. Closing the drive does nothing, as 5 seconds later, it opens again.
    Keyboards have been swapped-- it is NOT a stuck eject key.
    I opened the case and disconnected the IDE cable from the drive, then powered on. It does not eject in this way, thus I have ruled out a stuck eject button on the drive itself.
    I have tried target mode and open firmware-- just to see. In both cases the drive does not eject.
    It only seems to be opening when I actually boot into OS X. Noticing that I did a complete reformat/install, but the drive still ejects.
    Everything else on the computer works fine. Is there anything I might be missing?

    Thanks for the suggestion.
    I forgot to include that I had performed a permissions repair (several actually) and I even did one on the fresh install after I did all of the appropriate updates. Alas, the drive keeps spitting out at me like a kid giving me the razz.

  • How to make in/out Port vis work with COM interface under different windows versions?

    Hello!
    I know that the accessHW is necessary for it, so I downlaoded the
    this file from the homepage of NI, but there are always some problems
    with it.
    My program should get the the voltage impulse between
    the pins DTR and RTS of a COM interface. After
    I installed accessHW under winNT, the voltage between them changed
    automatically from 0 mV to about 24 mV , and program
    worked well . But this way does not work under Win98 and Win2000,
    and this voltage is always 0 so that the device can not make any voltage
    impulse.
    Could someone give me a software solution for it? Thanks!
    P.S:The version of the labview I use is 6.1.
    Le

    You shouldn't depend on a voltage difference between the tow pins unless you need something like 24 volts and not 24 millvolts. All of the signal lines are referenced to ground and the signal lines usually swing between -3 to -12 and +3 to +12 volts. If you truly saw a 24 millivolt difference between two signal leads, then all that means is that they are both at the same logic state. A difference of 24 millivolts is not much and has to do with the UART in your computer and not accessHW I believe though maybe what happened is that the difference is 24mv when both are logic "1" and less when logic "0" or vice versa. If your device requires power from the serial port, then what you'll have to do is control the signal lines in your program and I
    would recomend VISA to do that instead of inport/outport. And check the voltage requirements of your device. If this is a device you designed, it should be designed for the lower voltages on new pc's and laptops. In other words, I would depend on 3 volt signals instead of 12. There are numerous references to either RS-232 or EIA-232 on the web. I think a review of the electrical specifications is needed.

  • Can I use "accesshw.zip" to make the in port and out port VIs work (for NT) for Labview 6.0.2.

    I am trying to write to the parallel port using labview 6.0.2 (vi attatched). It does not seem to be working with NT though it does with Win 98.
    The information about the software (accesshw.zip)mentions versions 4.x and 5.x only.
    Please refer to the link given below:
    http://zone.ni.com/devzone/explprog.nsf/6c163603265406328625682a006ed37d/49664743ded6f1da862564bc004e3a7f?OpenDocument
    thanks.
    Pari.

    Hi Rob,
    I cannot completely agree..... Please find attached a
    accesshw_lv6.llb. Originally it was made for LV5; now in LV6-version) This .llb contains accesshw-files for use under NT & W2k. These files work, if you store them (!! including the sub.vi's !!) into: C:\Program Files\National Instruments\LabVIEW 6\vi.lib\platform\system.llb (this should be the typical path). The "old" In Port and Out Port vi's have to be substituted. Find in addition a simple test-program for use with scope in order to test
    the execution speed / toggeling of bits.....see the scope-picture copied into diagram. In addition I strictly recommend the use of buffer-circuits in order not to destroy the mainboard-IC's by accident. If somebody needs schematics or programs rela
    ted to parallel port - example see jpeg-file please mail to: [email protected]
    regards
    wha
    Attachments:
    accesshw_lv6.llb ‏171 KB
    printer_port_test.llb ‏135 KB
    8255_diagram.jpg ‏186 KB

Maybe you are looking for