Why two records for the same key???

Hi,
I'm finding that our database contains "duplicate" records even though it is set to disallow duplicated. In particular, from DbDump, here are two keys from our database:
737201037870770c0001000000a6005a001471c678
737201037870770c0001000000a6005a0014711678
You can probably really think of them as
737201037870770c 0001000000a6005a00147 1c678
737201037870770c 0001000000a6005a00147 11678
where only the middle part is "our key data". Use use Externalizable and have methods for the key:
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
          short oldVersion = in.readShort();
          this.primaryKey = in.readInt();
          this.orderPurpose = in.readChar();
          this.foreignKey = in.readInt();
public void writeExternal(ObjectOutput out) throws IOException {
out.writeShort(externalizationVersion);
out.writeInt(this.primaryKey);
out.writeChar(this.orderPurpose);
out.writeInt(this.foreignKey);
public int compare(Object o1, Object o2) {
byte[] b1 = (byte[]) o1;
byte[] b2 = (byte[]) o2;
final int compareLen = b1.length;
for (int i=0; i<compareLen; i++) {
if (b1[i] != b2) {
return (b1[i] < b2[i] ? -1 : 1);
return 0;
My question is basically this: what are the trailing bytes for in the key and why do they differ in my case? BTW, we're using an old version, 2.0.90, and we recently switched to Java 6 from Java 5... (just in the interest of full disclosure!)
Thanks very much in advance,
Dan

Yes, you're right. That hint really helped me find
my problem !!Glad to hear that.
I still don't know what the leading and trailing
bytes are used for but at this point, it doesn't
really matter anymore.They're output by Java serialization when JE calls ObjectOutputStream.writeObject, so they should be defined here:
http://java.sun.com/j2se/1.5.0/docs/guide/serialization/spec/protocol.html
Thanks for your help,You're welcome,
Mark

Similar Messages

  • Merging two records in a single record for the same matnr,werks and bwart.

    Hi I have a requirement to merge two records into one single record using the quantity field from MSEG table.
    I am selecting two records from the table MSEG. Now for these two records i have to add the quantity values into one variable.
    Then there should be only one record for the same matnr,werks,bwart.
    Any suggestion would be appreciated.
    Regards,
    Amit

    hi,
    You can COLLECT statement only if all non key fields are numeric.
    This statement Adds all such fields and give us a single record.
    Regards
    Sumit Agarwal

  • How to assign the two values for constant (same key)

    How to assign the two values for constant (same key)
    CONSTANTS: c_pstkey TYPE  bschl VALUE '09',
               c_splgl  TYPE  umskz VALUE 'I',
               c_buzei  TYPE  buzei VALUE '001'.
    using BSCH1 again i have two asign vaue
    can you just let me know
    Edited by: sravya_se38 on Nov 23, 2010 12:14 AM

    You can create a structure for that constant .
    You can define in this way
    CONSTANTS : BEGIN OF c_pstkey,
                             01 TYPE bschl VALUE '01',
                             02 TYPE bschl VALUE '02',
                          END OF c_pstkey.
    and can access using...
    c_pstkey-01, c_pstkey-02 ........

  • Why are there two prices for the same audiobook?

    Why are there two prices for the same audiobook in iTunes?

    May be one is abridged and one unabridged ? or they just may want to get the suckers that think the more expensive one is better ... haha.

  • Data not adding for the same Key up in Infocube

    Hi,
    My Dataflow goes like this:  Datasource  -> DSO -> Infocube.
    I have created 2 DSO's for Deliveries Header & Delivery Item Seperately which gets data from 2LIS_11_VCHDR & 2LIS_11_VCITM Datasources.  Both DSO's have Delivery Number & Fiscal Year variant as Key.  20 records are getting loaded to each DSO's seperately.  Both the DSO's have the same Delivery Numbers & Fiscal year Variant for this 21 Records in their respective Loads as given below:
                                     DSO 1                                                                  DSO 2
    S.No.       Deliver No.    Fiscal Year Var.                          Delivery No.       Fiscal Year Var.
       1               12345                     V3                                          12345                         V3
       2               28456                      V3                                          28456                        V3
       3               34986                      V3                                          34986                        V3
    Now, I am loading data from this 2 DSO's to one Infocube, Deliveries Infocube.  The problem is, after the Data load, when i go to the Contents of the Infocube, I could see 42 records.  As per Infocube, it should add up the values for the same key.  My Delivery numbers & Fiscal year vairant are the same in both the DSO's, so i should have got only 21 records.  Why is the Infocube not adding up the records in this case, am i missing anything here?
    Thanks & Regards,
    Murali

    Hi Murali,
    As you are loading data from two different sources, there are two different requests and that is why you are getting 42 records, if you want to check the data consistency then create a query on top of this infocube and then check the values of key figures for delivery no's. or verify your data through query.
    If you don't want to create query then you can use aggregation option from the display data of Infocube.
    If you compress both the requests then you will see only 21 records in infocube.
    Regards,
    Durgesh.

  • Reducing time while Filtering Out New Records with the Same Key

    Hi Experts,
    I have an issue .. I am trying to load data into 0MATERIAL . While loading via DTP the step u201CFilter Out New Records with the Same Keyu201D   takes much time for processing . For each datapackage it is taking around 30 minutes to filter out new records with the same key .  While for other master data it hardly takes 5 minutes.
    Any pointers how to reduce the timeu2026
    Thanks in advance
    Sam

    Hello,
    No there is no need to do that change then.
    Can you tell me are you doing a full load daily to 0MATERIAL object.
    why dont you use delta.
    Also if the DTP is of type FULL, then are you deleting the previous PSA requests.
    Maybe you can ask the basis guys to check with a trace what is really happening on the DB side during this 30 mins and then maybe we can find the needed fix.
    Regards,
    Shashank

  • Record filtered in advance as error records with the same key exist

    Dear Masters
       I am getting below error for master data (0MATERIAL_ATTR), while loading data from PSA to Info object through DTP (I have set the Handle duliocate record also). When I checked that error data in Error Stack, I am getting below error for all records(100)
    "Record filtered in advance as error records with the same key exist"
    Could u please help me to resolve this issue
    Thanks in Advance
    Raja

    Hi
    Thanks for reply
    I have loaded the Delta data in PSA. In PSA data was loaded successfully. I got the failure only when I loaded the from PSA to Maste data
    Thanks in advance
    Raja

  • Use two indicators for the same variable in two different VIs

    hello, I want to use two indicators for the same variable in two different VIs running at the same time
    should I use global variables?? I want to avoid because I have lot of variables and it would takes too much memory,I tried with this code but the value of the second indicator is not updated 
    I tried to use the queue and it works but the problem is as i said previously that i have many variables shoud I use a queue for each one??
    what should I do?
    thank you in advance
    cordialy
    Attachments:
    projet.zip ‏13 KB

    CrisSTine01 wrote:
    hello, I want to use two indicators for the same variable in two different VIs running at the same time
    I'm a huge fan of User Events to send updates to GUIs from who knows where.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Can we create two POs for the same 3rd party Sales Order?

    Hi MM experts,
    Issue: Can we create two POs for the same 3rd party Sales Order
    In Third party purchase process, first sales order created with a spl. item category  and it creates the PR automatically with the Sales order material and Qty and this PR converted PO.
    They got a pur.req. for sale order on same item for same delevery date. They did not get any warning msg. saying that a PO was prviously placed against this sale order.
    How it is possible that we were able to place another PO? concern is that second PO was palced against SO which was already used & completed. they were able to place 2 POs for the same customer same delevery date. How it is possible?
    If anyone face the same issue, please let me know if you have any answer to this questions.
    Thanks in advance.
    Suresh.

    Suresh,
    It is hard for me to give you a definitive answer since you have created a customized solution.
    How it is possible that we were able to place another PO? concern is that second PO was palced against SO which was already used & completed. they were able to place 2 POs for the same customer same delevery date. How it is possible?
    Normally, the system will not do this.  A third party PR or PO will be 'account assigned' to the Sales order.  SAP standard 3rd party will not create additional purchase reqs unless there has been manual intervention.  Try searching for changes in the Sales order and changes in the original purchase order.  They may give you a clue.
    I believe the normal Item category for third party SO is TAS (I am working from memory here, I am not in front of a system).  I don't know what ZTAG does.  I confess I am not an SD expert.  You might also want to post your question in an SD forum.
    You mention two custom applications, ZMMPLAN and ZSTPMP.  These somehow have functionality that is used to help you convert your PRs to POs.  If I were in your position, I believe I would also look at these applications for clues to how they might be contributing to your problem.  And please don't send me details about these apps.  I will not comment on custom code in this forum.
    Sorry I can't be of more help.
    Rgds,
    DB49

  • Post a witholding tax in two countries for the same vendor

    Hi all,
    I would like to know if there is any way (standar not development) to post a witholding tax in two countries for the same vendor belonging to a company code. (extended witholding tax scene).
    System always display extended witholding indicators belonging to the country of the company code.
    Thanks in advance.
    Emilio Rozalén
    SAP FI Consultant.

    Hi B.Rama,
    I think so, but Do you know the meaning of country witholding field in vendor master?.
    Besides you can find this field in customizing, reports but I dont know its functionality.
    Thanks and regards
    Emilio Rozalé

  • I was charged two times for the same game

    I was charged two times for the same game...how can I get my money back?  I even was emailed a receipt for them both...no one noticed?  Please help me.

    How to report an issue with Your iTunes Store purchase

  • Urgent: two authors for the same book

    I have a database with three tables: books, authors and aux.
    The books table stores the names of the books. The authors table stores the name of the authors. Table aux takes the id of the other two. I did this for the case of the same book has two or more authors
    The query I did was the following:
    SELECT authores.author, books.title
    FROM aux, authors, books
    WHERE aux.books_id = books.id AND aux.authors_id = authors.id
    ORDER BY books.title ASC
    How do I show the two authors for the same book?
    For now, I'm using a simple table:
    <table border="1" cellpadding="1" cellspacing="1">
      <tr>
        <td>author</td>
        <td>title</td>
      </tr>
      <?php do { ?>
        <tr>
          <td><?php echo $row_rsBooks['author']; ?></td>
          <td><?php echo $row_rsBooks['title']; ?></td>
        </tr>
        <?php } while ($row_rsBooks = mysql_fetch_assoc($rsBooks)); ?>
    </table>
    Thus, the table presents two results for the same book, instead of uniting the two authors of the same book.

    Thanks for the reply.
    In the meantime, got what I wanted. The expression looks like this:
    SELECT livros.titulo, GROUP_CONCAT(autores.autor SEPARATOR ',') AS Autores
    FROM livros INNER JOIN aux ON aux.livros_id = livros.id INNER JOIN autores ON aux.autores_id = autores.id
    GROUP BY livros.titulo

  • PT_QTA00 is generating repetative records for the same quota type

    PT_QTA00 is generating repetative records for the same quota type and one more thing i have already maintained 10 days of quota in 2006 and when i run for the same employee its creating one more record with 10 days again how can we restrict it in configuration

    As said earlier, you want to setup Time Constraints for It2006 which is  in table: V_T582A
    You should set the Time Constraint to 2.
    HR master data uses the following three time constraints:
    Time Constraint 1
    For the entire time that the employee works at the enterprise, exactly one valid infotype record must exist. The validity periods of the individual records must not overlap. If a new record is created, the system automatically uses the start date of the new record as the delimitation date of the old record. Gaps are only allowed between the employeeu2019s entry date and the start date of the first record.
    Time constraint 1 must be used for all of the infotypes containing information that must be available at all times. This is particularly true of personal and organizational assignment data.
    If a record is delimited because of time constraint 1, the system displays an appropriate message.
    Time Constraint 2
    No more than one valid record can exist at any one time. Records with constraint 2 must not overlap. Their existence is not obligatory. If a new record is created, the system automatically delimits the previous record, if one exists.
    If a record is delimited because of time constraint 2, the system displays an appropriate message.
    Time Constraint 3
    Any number of valid records can exist at any one time. The individual records do not conflict with each other.

  • Two infopackages for the same DS-- IS combination initialised

    Hello Friends,
    Can we have two infopackages for the same DS-->IS combination initialised with the same selections conditions and init requests. I have seen this in my client system. How can this be achieved.
    Thanks for your help.
    ---Simmi

    That is not possible.
    Are you sure Inits were done for same selections ???

  • Why is the Star Transformation using two indexes for the same dimension?

    Hi,
    Recently, I have made an investigation about the Star Transformation feature. I have found a strange test case, which plays an important role in my strategy for our overall DWH architecture. Here it is:
    The Strategy:
    I would like to have the classical Star Transformation approach (single column Bitmap Indexes for each dimension foreign key column in the fact table), together with additional Bitmap Join Indexes for some of the dimension attributes, which would benefit from the materialization of the join (bitmap merge operation will be skipped/optimized).
    The query:
    select dp.brand, ds. region_name, dc.region_name
         , count(*), sum(f.extended_price)
      from fact_line_item  f
         , dim_part       dp
         , dim_supplier   ds
         , dim_customer   dc
    where dp.mfgr        = 10                 -- dimension selectivity = 1/10 --> acttual/fact selectivity = 6/10
       and f.part_dk      = dp.dk
       and ds.region_name = 'REGION #1' -- dimension selectivity = 1/9
       and f.supplier_dk  = ds.dk
       and dc.region_name = 'REGION #1' -- dimension selectivity = 1/11
       and f.customer_dk  = dc.dk
    group by dp.brand, ds. region_name, dc.region_name
    The actual plan:
    | Id  | Operation                              | Name                        | Starts | E-Rows | Cost (%CPU)| A-Rows |   A-Time   | Buffers | Reads  |
    |   0 | SELECT STATEMENT                       |                             |      1 |        |  3247 (100)|      1 |00:01:42.05 |     264K|    220K|
    |   1 |  HASH GROUP BY                         |                             |      1 |      2 |  3247   (1)|      1 |00:01:42.05 |     264K|    220K|
    |*  2 |   HASH JOIN                            |                             |      1 |  33242 |  3037   (1)|    217K|00:01:29.67 |     264K|    220K|
    |*  3 |    TABLE ACCESS FULL                   | DIM_SUPPLIER                |      1 |   1112 |   102   (0)|   1112 |00:00:00.01 |     316 |      4 |
    |*  4 |    HASH JOIN                           |                             |      1 |  33245 |  2934   (1)|    217K|00:01:29.10 |     264K|    220K|
    |*  5 |     TABLE ACCESS FULL                  | DIM_CUSTOMER                |      1 |    910 |   102   (0)|    910 |00:00:00.08 |     316 |      8 |
    |*  6 |     HASH JOIN                          |                             |      1 |  33248 |  2831   (1)|    217K|00:01:28.57 |     264K|    220K|
    |*  7 |      TABLE ACCESS FULL                 | DIM_PART                    |      1 |     10 |     3   (0)|     10 |00:00:00.01 |       6 |      0 |
    |   8 |      PARTITION RANGE ALL               |                             |      1 |  36211 |  2827   (1)|    217K|00:01:28.01 |     264K|    220K|
    |   9 |       TABLE ACCESS BY LOCAL INDEX ROWID| FACT_LINE_ITEM              |      6 |  36211 |  2827   (1)|    217K|00:01:33.85 |     264K|    220K|
    |  10 |        BITMAP CONVERSION TO ROWIDS     |                             |      6 |        |            |    217K|00:00:07.09 |   46980 |   3292 |
    |  11 |         BITMAP AND                     |                             |      6 |        |            |     69 |00:00:08.33 |   46980 |   3292 |
    |  12 |          BITMAP MERGE                  |                             |      6 |        |            |    193 |00:00:02.09 |    2408 |   1795 |
    |  13 |           BITMAP KEY ITERATION         |                             |      6 |        |            |   4330 |00:00:04.66 |    2408 |   1795 |
    |  14 |            BUFFER SORT                 |                             |      6 |        |            |     60 |00:00:00.01 |       6 |      0 |
    |* 15 |             TABLE ACCESS FULL          | DIM_PART                    |      1 |     10 |     3   (0)|     10 |00:00:00.01 |       6 |      0 |
    |* 16 |            BITMAP INDEX RANGE SCAN     | FACT_LI__P_PART_DIM_KEY_BIX |     60 |        |            |   4330 |00:00:02.11 |    2402 |   1795 |
    |* 17 |          BITMAP INDEX SINGLE VALUE     | FACT_LI__P_PART_MFGR_BJX    |      6 |        |            |   1747 |00:00:06.65 |     890 |    888 |
    |  18 |          BITMAP MERGE                  |                             |      6 |        |            |    169 |00:00:02.78 |   16695 |    237 |
    |  19 |           BITMAP KEY ITERATION         |                             |      6 |        |            |   5460 |00:00:01.56 |   16695 |    237 |
    |  20 |            BUFFER SORT                 |                             |      6 |        |            |   5460 |00:00:00.02 |     316 |      0 |
    |* 21 |             TABLE ACCESS FULL          | DIM_CUSTOMER                |      1 |    910 |   102   (0)|    910 |00:00:00.01 |     316 |      0 |
    |* 22 |            BITMAP INDEX RANGE SCAN     | FACT_LI__P_CUST_DIM_KEY_BIX |   5460 |        |            |   5460 |00:00:02.07 |   16379 |    237 |
    |  23 |          BITMAP MERGE                  |                             |      6 |        |            |    170 |00:00:03.65 |   26987 |    372 |
    |  24 |           BITMAP KEY ITERATION         |                             |      6 |        |            |   6672 |00:00:02.23 |   26987 |    372 |
    |  25 |            BUFFER SORT                 |                             |      6 |        |            |   6672 |00:00:00.01 |     316 |      0 |
    |* 26 |             TABLE ACCESS FULL          | DIM_SUPPLIER                |      1 |   1112 |   102   (0)|   1112 |00:00:00.01 |     316 |      0 |
    |* 27 |            BITMAP INDEX RANGE SCAN     | FACT_LI__S_SUPP_DIM_KEY_BIX |   6672 |        |            |   6672 |00:00:02.74 |   26671 |    372 |
    The Question:
    Why is the Star Transformation using both indexes FACT_LI__P_PART_DIM_KEY_BIX and FACT_LI__P_PART_MFGR_BJX for the same dimension criteria (dp.mfgr = 10)?? The introduction of the additional Bitmap Join Index actually make Oracle to do the work twice !!!
    Anybody, any idea ?!?

    Dom, here it is the plan with the predicates:
    | Id  | Operation                              | Name                        | Starts | E-Rows | Cost (%CPU)| A-Rows |   A-Time   | Buffers | Reads  |
    |   0 | SELECT STATEMENT                       |                             |      1 |        |  3638 (100)|      1 |00:06:41.17 |     445K|    236K|
    |   1 |  HASH GROUP BY                         |                             |      1 |      2 |  3638   (1)|      1 |00:06:41.17 |     445K|    236K|
    |*  2 |   HASH JOIN                            |                             |      1 |  33242 |  3429   (1)|    217K|00:08:18.02 |     445K|    236K|
    |*  3 |    TABLE ACCESS FULL                   | DIM_SUPPLIER                |      1 |   1112 |   102   (0)|   1112 |00:00:00.03 |     319 |    313 |
    |*  4 |    HASH JOIN                           |                             |      1 |  33245 |  3326   (1)|    217K|00:08:17.47 |     445K|    236K|
    |*  5 |     TABLE ACCESS FULL                  | DIM_CUSTOMER                |      1 |    910 |   102   (0)|    910 |00:00:00.01 |     319 |    313 |
    |*  6 |     HASH JOIN                          |                             |      1 |  33248 |  3223   (1)|    217K|00:08:16.63 |     445K|    236K|
    |*  7 |      TABLE ACCESS FULL                 | DIM_PART                    |      1 |     10 |     3   (0)|     10 |00:00:00.01 |       6 |      0 |
    |   8 |      PARTITION RANGE ALL               |                             |      1 |  36211 |  3219   (1)|    217K|00:08:16.30 |     445K|    236K|
    |   9 |       TABLE ACCESS BY LOCAL INDEX ROWID| FACT_LINE_ITEM              |      6 |  36211 |  3219   (1)|    217K|00:08:40.89 |     445K|    236K|
    |  10 |        BITMAP CONVERSION TO ROWIDS     |                             |      6 |        |            |    217K|00:00:32.00 |   46919 |  19331 |
    |  11 |         BITMAP AND                     |                             |      6 |        |            |     69 |00:00:34.50 |   46919 |  19331 |
    |  12 |          BITMAP MERGE                  |                             |      6 |        |            |    193 |00:00:00.58 |    2353 |      1 |
    |  13 |           BITMAP KEY ITERATION         |                             |      6 |        |            |   4330 |00:00:00.10 |    2353 |      1 |
    |  14 |            BUFFER SORT                 |                             |      6 |        |            |     60 |00:00:00.01 |       6 |      0 |
    |* 15 |             TABLE ACCESS FULL          | DIM_PART                    |      1 |     10 |     3   (0)|     10 |00:00:00.01 |       6 |      0 |
    |* 16 |            BITMAP INDEX RANGE SCAN     | FACT_LI__P_PART_DIM_KEY_BIX |     60 |        |            |   4330 |00:00:00.07 |    2347 |      1 |
    |* 17 |          BITMAP INDEX SINGLE VALUE     | FACT_LI__P_PART_MFGR_BJX    |      6 |        |            |   1747 |00:01:23.64 |     882 |    565 |
    |  18 |          BITMAP MERGE                  |                             |      6 |        |            |    169 |00:00:09.14 |   16697 |   7628 |
    |  19 |           BITMAP KEY ITERATION         |                             |      6 |        |            |   5460 |00:00:02.19 |   16697 |   7628 |
    |  20 |            BUFFER SORT                 |                             |      6 |        |            |   5460 |00:00:00.01 |     316 |      0 |
    |* 21 |             TABLE ACCESS FULL          | DIM_CUSTOMER                |      1 |    910 |   102   (0)|    910 |00:00:00.01 |     316 |      0 |
    |* 22 |            BITMAP INDEX RANGE SCAN     | FACT_LI__P_CUST_DIM_KEY_BIX |   5460 |        |            |   5460 |00:00:08.78 |   16381 |   7628 |
    |  23 |          BITMAP MERGE                  |                             |      6 |        |            |    170 |00:00:21.46 |   26987 |  11137 |
    |  24 |           BITMAP KEY ITERATION         |                             |      6 |        |            |   6672 |00:00:10.29 |   26987 |  11137 |
    |  25 |            BUFFER SORT                 |                             |      6 |        |            |   6672 |00:00:00.01 |     316 |      0 |
    |* 26 |             TABLE ACCESS FULL          | DIM_SUPPLIER                |      1 |   1112 |   102   (0)|   1112 |00:00:00.01 |     316 |      0 |
    |* 27 |            BITMAP INDEX RANGE SCAN     | FACT_LI__S_SUPP_DIM_KEY_BIX |   6672 |        |            |   6672 |00:00:20.94 |   26671 |  11137 |
    Predicate Information (identified by operation id):                                                                                                  
       2 - access("F"."SUPPLIER_DK"="DS"."DK")                                                                                                           
       3 - filter("DS"."REGION_NAME"='REGION #1')                                                                                                        
       4 - access("F"."CUSTOMER_DK"="DC"."DK")                                                                                                           
       5 - filter("DC"."REGION_NAME"='REGION #1')                                                                                                        
       6 - access("F"."PART_DK"="DP"."DK")                                                                                                               
       7 - filter("DP"."MFGR"=10)                                                                                                                        
      15 - filter("DP"."MFGR"=10)                                                                                                                        
      16 - access("F"."PART_DK"="DP"."DK")                                                                                                               
      17 - access("F"."SYS_NC00017$"=10)                                                                                                                 
      21 - filter("DC"."REGION_NAME"='REGION #1')                                                                                                        
      22 - access("F"."CUSTOMER_DK"="DC"."DK")                                                                                                           
      26 - filter("DS"."REGION_NAME"='REGION #1')                                                                                                        
      27 - access("F"."SUPPLIER_DK"="DS"."DK")                                                                                                           
    Note                                                                                                                                                 
       - star transformation used for this statement                                                                                                     

Maybe you are looking for