Comapring Records in ResultSet  ,Issue of Performance

Hi,
i got a Table on which I am calling select ,and getting the resultset as in which some of the rows will Have first column value as same ,but subsequent columns may have data or null Values.I want to club all the values for same First Column Value.I did it like that in java,but is it cab done in Oracle Procedures it self.
Any analysis of this code and Database Loops ideas would be helpful.
esultSetMetaData rsd = Rs2.getMetaData();
int n = rsd.getColumnCount();
Vector val = new Vector(n);
Vector val2 = new Vector(n);
System.out.println("No Of Columns--"+n);
while(Rs2.next())
     if(Rs2.isFirst())
          for(int l=1;l<=n;l++)
          val.add(l-1,(Object)Rs2.getString(l));
     else
               for(int j=1;j<=n;j++)
          val2.add(j-1,(Object)Rs2.getString(j));
               if(val2.get(0).toString().equals(val.get(0).toString()))
                         System.out.println("same orderheaderid"+val2.get(0).toString());
                         i--;
                         for(int k=1;k<=n;k++)
                         if(val.get(k-1)==null)
                              if(val2.get(k-1)!=null)
                              val.set(k-1,val2.get(k-1));
                         val2.clear();
                         if(Rs2.isLast())
                              for(int l=1;l<=n;l++)
                                   System.out.println(val.get(l-1));
                         else
                    else
               {          System.out.println("different if"+val.get(0));
                         for(int f=1;f<=n;f++)
                              System.out.println(f-1+"------"+val.get(f-1));
                    System.out.println("Count Value is--"+i);
                    val.clear();
                    val =(Vector)val2.clone();
                    if(Rs2.isLast())
                         for(int r=1;r<=n;r++)
                              System.out.println(val2.get(r-1));
                    else
                         for(int s=1;s<n;s++)
                              val.set(s-1,val2.get(s-1));
                    val2.clear();
                    val2 = (Vector)val.clone();
          }i++;
          //z++;
Rs2.close();
Thank u
Vasu

Double post:
http://forum.java.sun.com/thread.jsp?forum=48&thread=544516&tstart=0&trange=15
http://forum.java.sun.com/thread.jsp?forum=48&thread=544517&tstart=0&trange=15
Sounds like it breaks the rules for first normal form to me:
http://databases.about.com/library/weekly/aa081901a.htm

Similar Messages

  • Issues with performance and RAM previews

    Just did a major system upgrade from an iMac to a Mac Pro, and now I'm having an issue with performance...specifically with RAM previews.
    When I try to do a RAM preview with audio, it grinds my entire OS to a hault (can't switch apps, or click on much of anything). It eventually clears up enough for me to stop the RAM preview.
    So, I'm wondering if maybe my Memory & Multiprocessing settings might be off.
    Here are my system specs:
    Mac Pro
    2 x 2.4GHz 6-Core Intel Xeon (12 cores)
    64GB RAM
    ATI Radeon HD 5870
    AE CS6 (11.0.2.11)
    AE is installed on an SSD drive and the scratch disk is an internal HDD.
    Here are my AE Memory Settings:
    Here's my GPU Info:
    Let me know if any other info is needed...   

    You are reserving far too little RAM for other software.
    See this: "Performance tip: Don't starve your software of RAM."
    (Also, I recommend going through all of these materials: http://forums.adobe.com/thread/543440 )
    Regarding the SSD: Putting your application files on it means that applications load/boot faster. This is fine, but that benefit is just when you first start the application. If you put your cache files on it, then you get the benefit every time that something is read from or written to the cache---i.e., many times per second, for the entire time that you're working. Put your cache files on your SSD. BTW, there's no reason to not put your application files and caches on the same SSD. The reason that you split things across multiple disks is to prevent simultaneous reads and writes to and from a slow disk; the program loading from disk happens at a different time than reading and writing cache files, so there is no potential for conflict and slowdown.

  • 40357-invalid string in example record query not issued

    hello experts,
    i am using forms 10g.in query mode i face that error 40357-invalid string in example record query not issued.
    i used these code in key-next-item trigger
    PROCEDURE KN_FOR_QUERY IS
    BEGIN
    IF :global.navigation = 'D' AND :global.mode = 'M'
    THEN
    IF NAME_IN(:SYSTEM.CURSOR_ITEM) IS NOT NULL
    THEN
    :global.temp_div_code:= :po_m.po_div_code;
    :global.temp_po_num := :po_m.po_num;
    :global.temp_po_ex_work := :PUR_DELV_D.DELV_EX_WORK;
    :global.temp_modi_num:= :po_m.po_modi_num;
    IF GET_BLOCK_PROPERTY(:SYSTEM.CURSOR_BLOCK,QUERY_HITS)=0
    THEN     
    -- message('1---'||:SYSTEM.CURSOR_BLOCK);
    -- message('2---'||:SYSTEM.CURSOR_BLOCK);
    GO_BLOCK(:SYSTEM.CURSOR_BLOCK);
    CLEAR_BLOCK(no_validate);
    EXECUTE_QUERY;
    -- ELSE
         -- NEXT_ITEM;
    END IF;
    -- ELSE
    -- mess(GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM,PROMPT_TEXT)||' Must Be Entered For Query...');
    END IF;
    ELSIF :global.navigation = 'D' and :global.mode = 'Q'
    THEN
    IF NAME_IN(:SYSTEM.CURSOR_ITEM) IS NOT NULL
    THEN
    MESS('Press Execute query button');
    go_item('tools.execute_query');
    ELSE
    mess(GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM,PROMPT_TEXT)||' Must Be Entered For Query...');
    END IF;
    ELSIF :global.navigation = 'D' and :global.mode = 'A'
    THEN
    IF NAME_IN(:SYSTEM.CURSOR_ITEM) IS NOT NULL
    THEN
    NEXT_ITEM;
    ELSE
    mess(GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM,PROMPT_TEXT)||' Must Be Entered...');
    END IF;
    END IF;
    END;
    Thanks
    Ravi

    Hi Ravi
    u may need to debug to find out where and when the error exist pls note the following
    Error Message: FRM-40357: Invalid string in example record. Query not issued.Error Cause:In query mode, you entered an invalid ALPHA or CHAR value in the example record.
    Action:Correct the entry and retry the query. Level: >25
    Type: Errorpls verifying that u r entering 1 char for global variable to be assigned so any number between 2single coat is considered a character not s number .
    Amatu Allah

  • Is anyone else having an issue with performance in Mavericks?

    My computer is brand new. Just bought it a week ago. Since I installed Mavericks, I have been having very big issues with performance. It now takes forever to start up, it loads programs extremely slowly, and it randomly freezes for a few minutes at a time. Is anyone else having these issues? I have already re-installed the OS. What else can I do?

    Mavericks has certainly made up for all the problem-free updates I've had in the past! I have significant system drag (endless spinning beachballs....), Safari is incredibly slow, Mail - gmail & icloud - almost unusable. I'm desperately hoping the first OS update fixes things.

  • Sync error: Uploading records failed: "client issue: request body too large"

    1328917629619 Sync.Engine.AdblockPlus DEBUG Uploading records failed: "client issue: request body too large"
    This happens from 2 Win 7 computer and 1 Win XP computer sync'd. Without the Add Block Plus being sync'd everything works.

    Hi!
    That's a problem with the Add Block Plus sync engine. It seems that they have issues on their servers.
    Try to ask the same question in their forum: https://adblockplus.org/forum/
    Good luck!

  • KNOWN ISSUES 3513544: Performance degradation...

    I see that version 3.1 of the Microsoft Drivers for PHP for SQL Server was published on 12/12/2014 and is available on
    http://www.microsoft.com/en-us/download/details.aspx?id=20098. Thank you Microsoft...
    One thing that bothered me though is the "Known issue" described at the end of the release.txt file included in the SQLSRV31.EXE package:
    KNOWN ISSUES
    "3513544: Performance degradation when using Microsoft Drivers 3.1 for PHP for SQL Server with Windows 7/Windows Server 2008 R2 and previous versions. Clients connecting to supported versions of Microsoft SQL Server may notice decreased performance when
    opening and closing connections in a Windows 7/Windows Server 2008 R2 environment. The recommended course of action is to upgrade to Windows 8/Windows Server 2012 or later."
    Has anybody experienced that "decreased performance when opening and closing connections" problem on Windows Server 2008 R2? If you have, how bad is it?
    And are there any solutions - other than the "recommended course of action" ("upgrade to Windows 8/Windows Server 2012 or later")? In a corporate environment upgrading a OS isn't always a simple thing that you do in a few minutes. It can
    take weeks or months of planning and testing...

    As I googled, apparently there are less articles mentioned this issue. On the worst surmise, MS may just drive you to upgrade :P
    I don't find a specific document on this, this may be a better question on a dedicated PHP forum.

  • ResultSet.absolute(int) Performance Issue

    I'm using the Oracle driver. I've run some tests and it appears that:
    ResultSet rs = ...;
    rs.absolute(n);
    has approximately the same performance as:
    ResultSet rs = ...;
    for (int i = 0; i < n; i++)
    rs.next();
    Is this all it is doing? For large values of "n" this could be very bad.
    I'd use "ROWNUM", but I also use an O/R framework. The only way to
    pull out specific subsets is to use JDBC scrolling. Is there anything I
    can do?
    Thanks,
    Bob

    Bob Lee wrote:
    There are at least 4 oracle driver vendors and
    multiple versions from each, so let us know
    which one you're using. See more below...I've tried the Oracle OCI (thick) and thin drivers, version 9.
    It certainly may be doing this. Very few drivers would go to the
    DBMS for each row individually, in a random access fashion.
    The driver would probably obtain and buffer all the intermediate
    rows that had not been fetched.This sucks. If I call ResultSet.absolute(), I probably don't need all of
    the intermediate rows.But you asked for them, so the driver and DBMS think you probably
    want them. Absolute() is part of implementing random access. It would
    never be interpreted as 'I don't want (some) rows'. It can be called to
    go backwards from the current position too.
    Clever SQL can be made to select the subsets (contiguous ranges) you want, one by oneDamn.It's a solution.... This sounds like something you want to do in a stored procedure.
    The cardinal performance problem in RDBMS applications is shipping scads of
    raw data out of the DBMS to the client, to be processed and/or discarded, instead
    of processing the raw stuff where it is in the DBMS.
    Good luck,
    Joe
    >
    Thanks,
    Bob
    Thanks,
    Bob

  • Issue while perform the Task and Data Audit in Workspace

    Hi All,
    When we try to perform the task and data audit functions in workspace it throws the following error please advise how to fix this issue.
    An error has occurred. Please contact your administrator.
    Show Details:
    Error Reference Number: {110FD8BF-AD33-4257-BA3D-46FF30208EA2};User Name: admin@Native Directory
    Num: 0x80040e31;Type: 1;DTime: 6/24/2010 3:42:55 AM;Svr: USNSAP03EX;File: CHsvSystemActivity.cpp;Line: 479;Ver: 11.1.1.2.0.2207;DStr: Timeout expired;
    Num: 0x80004005;Type: 0;DTime: 6/24/2010 3:42:55 AM;Svr: USNSAP03EX;File: SystemInfoUsersActivities.cpp;Line: 617;Ver: 11.1.1.2.0.2207;
    Num: 0x80004005;Type: 0;DTime: 6/24/2010 3:42:55 AM;Svr: USNSAP03EX;File: CHsvSystemInfo.cpp;Line: 2664;Ver: 11.1.1.2.0.2207;
    Num: 0x80004005;Type: 0;DTime: 6/24/2010 3:42:55 AM;Svr: USNSAP03EX;File: CHFMwSystemInfo.cpp;Line: 1846;Ver: 11.1.1.2.0.2207;
    Thanks in advance,

    If you have any SELECT FOR UPDATE in your code, these will produce locks, and it will not be released until the session which has locked the record has released it. This can be one reason why you have this behavior.
    you need to trail your code if it's explicitly locking a row or more.
    Tony

  • Video size issues/slow performance after update to CC 2014

    Hello everyone,
    I'm not an editor by trade, so please bear with me here. I've spent the last few days searching around for an answer and haven't been able to come up with much.
    I'm on a late 2011 Macbook Pro, 2.2 GHz Intel Core i7, 4 GB 1333 MHz DDR3, AMD Radeon HD 6750M 512 MB, Mac OS X Lion 10.7.5 (11G63b).
    I spent a month cutting my first little experimental feature which the assistant editor set up for me (and who is currently away).
    My computer isn't rocket fast, but I was able to complete the first few passes on Premiere CC (7.2.2?) with few major issues.
    About a week ago, I upgraded to Premiere CC 2014 8.0.
    I immediately noticed that my footage went from this:
    To this:
    (The specifics of the footage:
    As you might be able to tell, we shot very old school VHS to help sell the 90's setting. It was a nightmare to find the best way to export it all. I'm still not sure if we did this entirely properly -- and hopefully it's not the cause of these issues. Also, I know VHS is only SD -- we chose to import at the utmost quality, i.e. 1920x1440 and ProRes 422, because more of the image detail was present in low-light.)
    I found that I had to select all the clips in each timeline, right click, and select the 'Set to Frame Size' to have the video full frame once again. Then I had to render everything.
    As I tried to resume my edit, the performance was much slower. Playback is a nightmare. I get the beach ball of death constantly. It would take several minutes to save the project. And it started to crash about once an hour on top of everything.
    But I continued to work for the last eight days, hoping that I'd be able to rectify this somehow.
    I cleared the cache with no luck.
    I read that I could uncheck 'Composite in Linear Color' to make it faster, but that wasn't an issue in the last build.
    My playback and paused resolution is 1/4.
    I read that I should update my OS to OS X Mavericks, but that keeps crashing too! Haha.
    I understand that my system isn't the best, but I just want my project to perform as well as it did on Premiere CC before the update.
    I just spoke to an Adobe tech who basically told me that there wasn't a solution here besides reverting back to Premiere CC from CC 2014 -- or buying a new Macbook.
    But there has to be a way that I can get the same performance that I did before the upgrade, right? I have a feeling something happened to how CC 2014 is using the existing footage.
    (Also, I noticed that clips where I increased the zoom, i.e. 100% to 110%, were back at their original size. And instead of saying 100%, it was now saying 300%. I'm assuming this is because of the 'Set to Frame Size' setting, but this wasn't the case on Premiere CC.)
    Does anyone have any ideas what I can do here?
    Here's my sequence settings on CC 2014:
    And on CC:
    For some reason, portions of this window are grayed out, and not in CC 2014. Not sure if this has anything to do with the issue.
    Thanks a ton in advance everyone! I really can't afford to lose 8 days worth of work, so any help would be greatly greatly appreciated!
    I'll be more than happy to provide additional info.
    I'm really looking to find out, definitively, if my only two options are: a) go back to Premiere CC and lose my recent work, or b) buy a new laptop, which I can't afford.
    (As a side question, is there any way I can transfer my recent work from CC 2014 to CC? I understand it's not backwards-compatible, but there has to be at least a partial solution.)
    Best,
    Jon

    Thanks for the quick response!
    So just this right (to DV):
    I scrubbed through really quick, seems like it just may have worked.

  • BI ABAP Issue regarding perform on commit statement

    Hi,
    I have a requirement like below.
    I have a test to see if SAP issues a COMMIT WORK at the end of the datapacket, and allows update tasks to be executed .and check whether the second datapacket succeed in getting the lock, or fail because it has not been dequeued.
    For this i have written code in the end routine of DTP like below.
    1. Called enqueue fm
    2. Created a custom table and taken loop at result_package and get the values to the internal table.
    3. I have created an updated function module to call perform on commit inside the function module. Since we canu2019t directly call the commit work in the end routine of DTP. And in the form endform i am updating the custom table from internal table.
    4. Called dequeued fm.
    But the issue is i am notable to bedug the code (perform <form name> on commit) (cursor is not going to the inside the perform) inside the function module even though i enabled the update task in debugger setting and used F9 to set the FM for debug.
    Can any body help me on this
    Thanks,
    Nagendra

    did you try by setting a manual break-point inside the code and then going step by step (by pressing F5) ?

  • Issue regarding perform on commit statement

    Hi,
    I have a requirement like below.
    I have a test to see if SAP issues a COMMIT WORK at the end of the datapacket, and allows update tasks to be executed .and check whether the second datapacket succeed in getting the lock, or fail because it has not been dequeued.
    For this i have written code in the end routine of DTP like below.
    1. Called enqueue fm
    2. Created a custom table and taken loop at result_package and get the values to the internal table.
    3. I have created an updated function module to call perform on commit inside the function module. Since we canu2019t directly call the commit work in the end routine of DTP. And in the form endform i am updating the custom table from internal table.
    4. Called dequeued fm.
    But the issue is i am notable to bedug the code (perform <form name> on commit)  (cursor is not going to the inside the perform) inside the  function module even though i enabled the update task in debugger setting and used F9 to set the FM for debug.
    Can any body help me on this
    Thanks,
    Nagendra

    did you try by setting a manual break-point inside the code and then going step by step (by pressing F5) ?

  • No. of Records in ResultSet using RS.getFetchSize()

    Trying to calculate the total number of records the the resultset that i'm calling however when i use RS.getFetchSize() i consistently get 10 as the result even when there are more, anyone any ideas?

    I'm not really sure what FetchSize is, however from a quick read of the JavaDocs for ResultSet I found this:
    "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. The default value is set by the Statement object that created the result set. The fetch size may be changed at any time."
    this was for the setFetchSize() method (just having a set method suggests to me that it is not the number of rows). It seems to me that fetchSize is not the number of results returned, but instead the number of rows the driver should try to get at one time.

  • Multiple record update extension issue (felixone

    I just purchased the Multiple Records at Once Extension by
    Felixone. I have put it to good use but have noticed an issue with
    it. PHP MySQL.
    I am using Dreamweaver 8 with the Repeat Region behaviour,
    and the Recordset Navigation Bar, along with the extension to
    update multiple values at once from a recordset.
    If there are more records than can be displayed on the first
    page of navigation. E.g. Showing records 1-10 of 15, when doing a
    multiple table update (in this case changing a single value from 0
    to 1 and vice versa) a MYSQL error comes up. The operation is still
    completed but it doesn't go to the page specified after the update
    in the extension, but stays on the current page with the following
    error at the top:
    You have an error in your SQL syntax. Check the manual that
    corresponds to your MySQL server version for the right syntax to
    use near '' at line 1
    In the mean time, to overcome the issue, I am able to display
    all records on a single page, however once the records build up it
    won't be acceptable to have a potentialy very long list of records
    when I would like to display only 15 at a time.
    Has anyone had any experience of this, and if so would you be
    willing to help me. I have emailed felixone but I need this sorting
    out ASAP.
    Notice I have changed the show results to 5000, as going into
    the repeat region behaviour and saying 'show all' would not do
    anything. It always put it back to ten.

    Thank you Anurag,
    I have already the db created ,
    My question is how best to get the users local time
    availability into the
    database, what is the best method to use, should I use list
    menus, etc, has
    any one had to do this in a project before.
    and then when some one comes to my site i want them to be
    able to compare
    the time stored with the time of the site users country
    locally using an if
    else statement. i am using asp vb and sql server
    regards
    kenny
    "Anurag" <[email protected]> wrote in message
    news:e58mta$kbg$[email protected]..
    > Well basically first you have to collect:
    > a, the users phone number
    > b, the "display times"
    >
    > and store those values in a database - don't even think
    about NOT using
    > one
    >
    > Then you simply check when the page is called whether
    the current time
    > is within the display time...
    >
    > Oh, btw you probably have to think about which time you
    are talking about:
    >
    > the mobile phone owner's local time, the viewer's local
    time, your
    > server time...
    >
    > That should do the trick...
    >
    > Anurag
    >
    >
    >
    > twocans wrote:
    >> hello,
    >> I am looking to give my user a "show my phone
    number" option to show his
    >> mobile phone number online and at selected times by
    that user, I need to
    >> create a page that will allow my user to apply this
    as best and as easy
    >> as
    >> possible, my users are unaversial based. how best
    can I do this, is thre
    >> a
    >> snippet out there that anyone knows that may help. I
    am willing to pay if
    >> any one knows of such suitable code.
    >>
    >> regards
    >>
    >> kenny
    >>
    >>

  • Oracle Forms returns the first record in the database when performing query

    Once in a while when we query for a record on a form, say by first name Tom, then it returns the first record in the database. Other times it return the Tom's record. It only happens once in a while and if you close the form and reopen it and requery for Tom, then it brings Tom's record.
    Does anyone know the issue what could be happening. It just happens every now and then that it's hard to reproduce.
    ORacle Forms 10GR2
    ORacle Application Server 10.1.3
    thanks

    then it returns the first record in the databaseI'm not sure if i understand you correctly. Do you mean forms ignores the searc-condition you entered? I would check SYSTEM.LAST_QUERY at the moment this happens to check if the condition gets somehow lost.

  • ResultSet.absolute(int) performance

    Hi,
    we are experiencing some horrible performance using the absolute() method on a ResultSet. I am aware Oracle only natively supports forward only cursors, but I wonder if anyone has some workaround for getting "acceptable" speeds from this method. On a local database with ~15.000 results in a rather simple query absolute() takes 5032 ms, quite a bit for a user waiting :-)
    The senario is a window with a scrollbar, the scrollbar is decoupled in the sense it's just a standard JScrollBar. The user has made a search and have maybe gotten 15.000 results, now the user wants to drag the scrollbar so it maybe ends up in what corresponds to entry 14.500 in the ResultSet. Behind the sceens we then invoke ResultSet.absolute(14500), load the data and displays it. The above mentioned ~5000 ms is unfortunately what takes the time in this operation.
    We're using Oracle 9.2.0.1.0, JDK 1.4.22_01-b06 with the thin driver found in ojdbc14.jar downloaded as newest version here from OTN. 3rd party driver suggestions are welcome but they must support somewhat complex queries across multiple table.
    Best regards
    Jan Jonasen

    Thanks for your replies. I'll look for the patch initially.
    Don't worry, we're not showing 15.000+ results at the same time :-) It's thumbnails showing images, so a user with a huge window will maybe have shown 100, but that is a bit high set. In reality it's only the result which very much like Google will contain a lot of hits, but only those which fit in the window are actually shown. Also, the reference to the scrollbar is just to simplify the example, so I'll elaborate a bit.
    A user performs a search given no arguments which results in everything from the relevant tabel in the database gets a hit, for the example of my local development one it's 15.000, customers usually have quite a bit more. In the end only whatever there's room for is extracted from the result, during "normal" circumstances this may be 25 tops, much like you would see on a search engine on the web. If the user pushes the arrow on the scrollbar, the next row for the window is loaded, again "normally" this would be maybe 5 additional results. Pressing page down/up on the comparable function of the scrollbar fills the page with the next 25 which may mean going 25 forward or backward in the original search result. Since it's a scrollbar the user can also drag in to some position, so for the example the user drags to what corresponds to 14.000 in the search result. It can somewhat be compared to Google supplying a "Go to page" in your query.
    Both going forward/backward and "jumping" to 14.000 means the usage of ResultSet.absolute(), which is as said terrible slow I guess because of forward only cursors.
    It's actually not fetching the data which takes the time, it's the usage of ResultSet.absolute(), having timed it, the call takes 5000+ ms, so I'm looking for a workaround or well, anything to help solve this slowness.
    For instance have anyone tried showing a "SELECT * FROM table" (result 10.000+) and enabled the user to jump to any row? How did you manage that?

Maybe you are looking for

  • How do i transfer photos on an ipad to my photo stream?

    I have over a 1,000 pictures that are on my IPAD in Photos. I'd like to move them to my Photo Stream on my IPAD so that I can have them on my Mac Pro and IPhone. Appreciate any suggestions.

  • Joint Venture Company - How to reduce to 50%?

    Hello Experts, I have a 50/50 Joint Venture company in ECC. I want to include only 50% of the value of it's transactions in Consolidation but have 100% of it's value in the BW Actuals and Planning Cubes that are used to load into BCS. What is the bes

  • Flat File Load

    Hi all, create a Infosource load this sample data, Create an ODS object and load into it and Query on the ODS 1,Take Access database, retreat for 2000 row random sample    2,Create Datasource    3,Load data   4,Build ODS5, 5,Query  Can someone please

  • How do I erase in Adobe draw

    how to erase in Adobe draw

  • JDBC spurious connections

    Set up a JDBC pooled cache with min=5 and max=20 with FIXED WITH WAIT scheme. Load test with 100 users - all is okay and only get 20 conections. Load test with about 250 or more get 21 or 22, or 23 connections. What is going on and how can this be fi