Error when adding Foreign Key

Hi,
Problem:
When trying to add a Foreign Key via Edit Table | Foreign Key tab an error is thrown
Error:
"ORA-00942: table or view does not exit", Vendor code 942
SQL Developer Generated DDL:
ALTER TABLE "CNArticlesCODES"
DROP CONSTRAINT "CNArticlesCODES_FK1"
ALTER TABLE "CNArticlesCODES"
ADD CONSTRAINT "CNArticlesCODES_FK1" FOREIGN KEY
"ID"
) REFERENCES CNArticlesDATA
"ID"
) ENABLE
My work around:
table name next to REFERENCES command in double quotes
ALTER TABLE "CNArticlesCODES"
ADD CONSTRAINT "CNArticlesCODES_FK1" FOREIGN KEY
"UID"
) REFERENCES "CNArticlesCODES"
"UID"
) ENABLE
SQL Developer 1.0.0.15.57 on Windows XP SP2
Oracle Database 10g Enterprise Edition Release 10.2.0.10 (Eval Lic) on Windows 2003 Web Edition 32 bit
The 2 tables in this example where generated by MS DTS tool while importing data. This issue is not present when performing the above action on 2 tables generated using SQL Developer.
I'm no database expert and new to Oracle (R&D stage of SQL Server to Oracle migration). So can some body tell me/point me at docs that explains what's going on here with the table names.
Thanks

Hopefully someone from oracle will see this and log it as a bug. If that doesn't happen and you have a support license, you can open up a ticket with them directly.
As an aside.. if you are daring enough, the template for that is stored in one of the jars in an xml file. You can always edit it and add the quotes. Or..and you don't want to hear this.. you may want to rename everything to uppercase. It would hurt now, but could end up saving you time down the road. (adding quotes to every query is a pain)
Eric

Similar Messages

  • Error when sorting foreign key fields in a view

    Hello all
    I created a view and links to other views, and then created a table. In the table I put different attributes from the view and the views it is linked to. When I click the sort ascending or descending button in a column attribute that is in the original view, everything works fine. However if I click the same arrow button for a different column, one that is in a linked view, I get this error message.
    Definition OnlineTerminalId of type Attribute is not found in ObjektiView1.
    I do not understand why this does not work. It shows the values inside these linked views just fine. I did change names of some attributes in the database but I had the problem before then, and after I changed them all back so I doubt that is the issue.
    If anyone can help I would be much obliged

    Dino2dy wrote:
    Hmm, what I did is slightly different, but what my way does is give me the ability to create forms that change automatically when I click a row in a table, which I thought would be useful. I could do it your way too but I would have to do everything again from the beginning, which is something I am trying to avoid. There should be a way to fix this problem this way, as it would be kind of stupid to be able to show the data in the table but just not be able to sort or filter by it.You can still accomplish this by relating the combined VO with your children VOs using View Links, same as what you are doing now.
    Also that view would be HUGE as it is a single table that is connected to a lot of other tables via foreign keys, so my single view would cover 10 tables.Not necessarily. You don't have to include all Entities in your combined VO - just those that you want their attributes displayed on your table.
    Nick

  • Ora-2270 Error while adding foreign key constraint on top a view

    While adding a constraint, referencing a foreign key column from a view raises error. However, it works fine over a table.
    Here's the sample script:
    create table t_temp (
    sample_id number,
    text varchar2(40))
    alter table t_temp add constraint temp_pk
    primary key (sample_id);
    create view tempvw as select sample_id,text from t_temp;
    create table t_sample (
    uniq_id number,
    sample_id number,
    sample_text varchar(40));
    =========
    ALTER TABLE t_sample ADD CONSTRAINT FK_sample_temp
         FOREIGN KEY (sample_id) REFERENCES t_temp (sample_id);
    This works fine.
    =========
    ==============
    The following raises ERROR....
    ALTER TABLE t_sample ADD CONSTRAINT FK_sample_temp1
         FOREIGN KEY (sample_id) REFERENCES tempvw (sample_id);
    Error starting at line 1 in command:
    ALTER TABLE t_sample ADD CONSTRAINT FK_sample_temp1
         FOREIGN KEY (sample_id) REFERENCES tempvw (sample_id)
    Error report:
    SQL Error: ORA-02270: no matching unique or primary key for this column-list
    02270. 00000 - "no matching unique or primary key for this column-list"
    *Cause:    A REFERENCES clause in a CREATE/ALTER TABLE statement
    gives a column-list for which there is no matching unique or primary
    key constraint in the referenced table.
    *Action:   Find the correct column names using the ALL_CONS_COLUMNS
    catalog view

    What exactly are you trying to accomplish by having a
    referential integrity constraint on a view (which is
    not allowed). PKs and FKs are allowed on views. DISABLE NOVALIDATE is the only allowed state for them. View constraints are used for query rewriting: http://download.oracle.com/docs/cd/B19306_01/server.102/b14223/qradv.htm#sthref1457
    Regards,
    Dima

  • Error when adding forigen key (table or view does not exist)

    Hi
    i write the foreign key name and select the the table from the combo and also the field and click apply it gives me error message says :-
    error table or view does not exist vendor code 942
    any help?
    thanks in advance.
    .

    There is only an issue with this if your table has to be enclosed in double quotes. i.e. If you have mixed case table names. In that case, instead of using the context menu (right click on Table) Constraint -> Add Foreign Key, you should use the Edit... table dialog.
    We did have a bug logged for this, but the instance for using the Create foreign key dialog has not been fixed. I have reopened the bug.
    Sue

  • Error when adding a partition to a materlialized view

    Hi,
    I am getting this error when adding a partition to a materialized view.
    ALTER MATERIALIZED VIEW mvedw.MV_CLM_CAPITN_F ADD PARTITION MAR2013 VALUES LESS THAN ('201304')
    ERROR at line 1:
    ORA-14074: partition bound must collate higher than that of the last partition
    Please advise.
    Regards,
    Narayan

    SQL> select TABLE_OWNER,TABLE_NAME,PARTITION_NAME,HIGH_VALUE from dba_tab_partitions where table_name =
    'MV_CLM_CAPITN_F' order by PARTITION_NAME 2
    3 ;
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F APR2009 '200905'
    MVEDW MV_CLM_CAPITN_F APR2010 '201005'
    MVEDW MV_CLM_CAPITN_F APR2011 '201105'
    MVEDW MV_CLM_CAPITN_F APR2012 '201205'
    MVEDW MV_CLM_CAPITN_F AUG2009 '200909'
    MVEDW MV_CLM_CAPITN_F AUG2010 '201009'
    MVEDW MV_CLM_CAPITN_F AUG2011 '201109'
    MVEDW MV_CLM_CAPITN_F AUG2012 '201209'
    MVEDW MV_CLM_CAPITN_F DEC2008 '200901'
    MVEDW MV_CLM_CAPITN_F DEC2009 '201001'
    MVEDW MV_CLM_CAPITN_F DEC2010 '201101'
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F DEC2012 '201301'
    MVEDW MV_CLM_CAPITN_F FEB2009 '200903'
    MVEDW MV_CLM_CAPITN_F FEB2010 '201003'
    MVEDW MV_CLM_CAPITN_F FEB2011 '201103'
    MVEDW MV_CLM_CAPITN_F FEB2012 '201203'
    MVEDW MV_CLM_CAPITN_F FEB2013 '201303'
    MVEDW MV_CLM_CAPITN_F JAN2009 '200902'
    MVEDW MV_CLM_CAPITN_F JAN2010 '201002'
    MVEDW MV_CLM_CAPITN_F JAN2011 '201102'
    MVEDW MV_CLM_CAPITN_F JAN2012 '201202'
    MVEDW MV_CLM_CAPITN_F JAN2013 '201302'
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F JUL2009 '200908'
    MVEDW MV_CLM_CAPITN_F JUL2010 '201008'
    MVEDW MV_CLM_CAPITN_F JUL2011 '201108'
    MVEDW MV_CLM_CAPITN_F JUL2012 '201208'
    MVEDW MV_CLM_CAPITN_F JUN2009 '200907'
    MVEDW MV_CLM_CAPITN_F JUN2010 '201007'
    MVEDW MV_CLM_CAPITN_F JUN2011 '201107'
    MVEDW MV_CLM_CAPITN_F JUN2012 '201207'
    MVEDW MV_CLM_CAPITN_F MAR2009 '200904'
    MVEDW MV_CLM_CAPITN_F MAR2010 '201004'
    MVEDW MV_CLM_CAPITN_F MAR2011 '201104'
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F MAR2012 '201204'
    MVEDW MV_CLM_CAPITN_F MAR2013 '201304'
    MVEDW MV_CLM_CAPITN_F MAY2009 '200906'
    MVEDW MV_CLM_CAPITN_F MAY2010 '201006'
    MVEDW MV_CLM_CAPITN_F MAY2011 '201106'
    MVEDW MV_CLM_CAPITN_F NOV2009 '200912'
    MVEDW MV_CLM_CAPITN_F NOV2010 '201012'
    MVEDW MV_CLM_CAPITN_F NOV2012 '201212'
    MVEDW MV_CLM_CAPITN_F OCT2009 '200911'
    MVEDW MV_CLM_CAPITN_F OCT2010 '201011'
    MVEDW MV_CLM_CAPITN_F OCT2011 '201111'
    TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
    MVEDW MV_CLM_CAPITN_F OCT2012 '201211'
    MVEDW MV_CLM_CAPITN_F SEP2009 '200910'
    MVEDW MV_CLM_CAPITN_F SEP2010 '201010'
    MVEDW MV_CLM_CAPITN_F SEP2011 '201110'
    MVEDW MV_CLM_CAPITN_F SEP2012 '201210'
    These are the list of partitions available.
    Regards,
    Narayan

  • Dbms_crypto - avoid error when using different key in lower environment

    Hello Experts,
    We are using Oracle 11.2.0.2. We are planning to implement dbms_crypto to encrypt few columns. We clone the data from production to lower environment ( DEV, QC).
    For the lower environments, we do not want to get the sensitive data from production and do not plan to use same key. Rather than getting an error when using differnt key, is it possible to get a different resultset back.
    In other words, we want the implementation to be same across environments but want to use a diffent key in lower environment and get different result (or garbage).
    Any suggestions would be greatly appreciated.
    While testing this logic, I am getting following error when using differnt key to decrypt. It works fine if I use same key.
    Error at line 1
    ORA-28817: PL/SQL function returned an error.
    ORA-06512: at "SYS.DBMS_CRYPTO_FFI", line 67
    ORA-06512: at "SYS.DBMS_CRYPTO", line 44
    ORA-06512: at line 19
    DECLARE
      l_credit_card_no    VARCHAR2(19) := '1234 5678 9012 3456';
      l_ccn_raw           RAW(128) := UTL_RAW.cast_to_raw(l_credit_card_no);
    l_key               RAW(128) := UTL_RAW.cast_to_raw('abcdefgh');
       l2_key               RAW(128) := UTL_RAW.cast_to_raw('12345678');
      l_encrypted_raw     RAW(2048);
      l_decrypted_raw     RAW(2048);
    BEGIN
      DBMS_OUTPUT.put_line('Original  : ' || l_credit_card_no);
      l_encrypted_raw := DBMS_CRYPTO.encrypt(src => l_ccn_raw,
                                             typ => DBMS_CRYPTO.des_cbc_pkcs5,
                                             key => l_key);
      DBMS_OUTPUT.put_line('Encrypted : ' || RAWTOHEX(UTL_RAW.cast_to_raw(l_encrypted_raw)));
      l_decrypted_raw := DBMS_CRYPTO.decrypt(src => l_encrypted_raw,
                                             typ => DBMS_CRYPTO.des_cbc_pkcs5,
                                             key => l2_key); --**Using different key to decrypt
      DBMS_OUTPUT.put_line('Decrypted : ' || UTL_RAW.cast_to_varchar2(l_decrypted_raw));
    END;Thank you.

    If I understand what you are trying to do ... and I may not ... it is not going to work.
    SQL> DECLARE
      2   l_credit_card_no VARCHAR2(19) := '1612-1791-1809-2605';
      3   l_ccn_raw RAW(128) := utl_raw.cast_to_raw(l_credit_card_no);
      4   l_key1     RAW(128) := utl_raw.cast_to_raw('abcdefgh');
      5   l_key2     RAW(128) := utl_raw.cast_to_raw('zyxwvuts');  -- alternate key used to attempt a different decryption
      6 
      7   l_encrypted_raw RAW(2048);
      8   l_decrypted_raw RAW(2048);
      9  BEGIN
    10    dbms_output.put_line('Original : ' || l_credit_card_no);
    11 
    12    l_encrypted_raw := dbms_crypto.encrypt(l_ccn_raw, dbms_crypto.des_cbc_pkcs5, l_key1);
    13 
    14    dbms_output.put_line('Encrypted : ' || RAWTOHEX(utl_raw.cast_to_raw(l_encrypted_raw)));
    15 
    16    l_decrypted_raw := dbms_crypto.decrypt(src => l_encrypted_raw, typ => dbms_crypto.des_cbc_pkc
    s5, key => l_key1);
    17 
    18    dbms_output.put_line('Key1 : ' || utl_raw.cast_to_varchar2(l_decrypted_raw));
    19 
    20    l_decrypted_raw := dbms_crypto.decrypt(src => l_encrypted_raw, typ => dbms_crypto.des_cbc_pkc
    s5, key => l_key2);
    21 
    22    dbms_output.put_line('Key2 : ' || utl_raw.cast_to_varchar2(l_decrypted_raw));
    23  END;
    24  /
    Original : 1612-1791-1809-2605
    Encrypted : 3534443342333642353141363846384237463732384636373943374630364234323243334539383042323135
    Key1 : 1612-1791-1809-2605
    DECLARE
    ERROR at line 1:
    ORA-28817: PL/SQL function returned an error.
    ORA-06512: at "SYS.DBMS_CRYPTO_FFI", line 67
    ORA-06512: at "SYS.DBMS_CRYPTO", line 44
    ORA-06512: at line 20

  • How to avoid shared locks when validating foreign keys?

    I have a table with a FK and I want to update a row in that table without being blocked by another transaction which is updating the parent row at the same time. Here is an example:
    CREATE TABLE dbo.ParentTable
    PARENT_ID int NOT NULL,
    VALUE varchar(128) NULL,
    CONSTRAINT PK_ParentTable PRIMARY KEY (PARENT_ID)
    GO
    CREATE TABLE dbo.ChildTable
    CHILD_ID int NOT NULL,
    PARENT_ID INT NULL,
    VALUE varchar(128) NULL,
    CONSTRAINT PK_ChildTable PRIMARY KEY (CHILD_ID),
    CONSTRAINT FK_ChildTable__ParentTable FOREIGN KEY (PARENT_ID)
    REFERENCES dbo.ParentTable (PARENT_ID)
    GO
    INSERT INTO ParentTable(PARENT_ID, VALUE)
    VALUES (1, 'Some value');
    INSERT INTO ChildTable(CHILD_ID, PARENT_ID, VALUE)
    VALUES (1, 1, 'Some value');
    GO
    Now I have 2 transactions running at the same time:
    The first transaction:
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;BEGIN TRAN
    UPDATE ParentTable
    SET VALUE = 'Test'
    WHERE PARENT_ID = 1;
    The second transaction:
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;BEGIN TRAN
    UPDATE ChildTable
    SET VALUE = 'Test',
    PARENT_ID = 1
    WHERE CHILD_ID = 1;
    If 'UPDATE ParentTable' statement runs a bit earlier, then 'UPDATE ChildTable' statement is blocked untill the first transaction is committed or rollbacked. It happens because SQL Server acquires shared locks when validating foreign keys, even
    if the transaction is using read uncommitted, read committed snapshot (read committed using row versioning) or snapshot isolation level. I cannot see why change in the ParentTable.VALUE should prevent me from updating ChildTable. Please note that ParentTable.PARENT_ID
    is not changed by the first transaction, which means that from FK's point of view whatevere is set to the ParentTable.VALUE is never a problem for referential integrity. So, such blocking behavior seems to me not logical. Furthermore, it contradicts to the
    MSDN:
    Transactions running at the READ UNCOMMITTED level do not issue shared locks to prevent other transactions from modifying data read by the current transaction. READ UNCOMMITTED transactions are also not blocked by exclusive locks that would prevent the
    current transaction from reading rows that have been modified but not committed by other transactions. 
    Does anybody know how to workaround the issue? In other words, are there any tricks to avoid shared locks when validating foreign keys? (Disabling FK is not an option.) Thank you.
    Alexey

    If you change the primary key of the parent table to be nonclustered, there is no blocking.
    Indeed, when I update ParentTable.VALUE, then:
    in case of PK_ParentTable is clustered, a particular row in the clustered index is locked (request_mode:X, resource_type: KEY)
    in case of PK_ParentTable is non-clustered, a particular physical row in the heap is locked (request_mode:X, resource_type: RID).
    and when I update ChildTable.PARENT_ID, then:
    in case of PK_ParentTable is clustered, this index is used to verify referential integrity:
    in case of PK_ParentTable is non-clustered, again this index is used to verify referential integrity, but this time it is not locked:
    It is important to note that in both cases SQL Server acquires shared locks when validating foreign keys. The principal difference is that in case of clustered PK_ParentTable the request is blocked, while for non-clustered index it is granted.
    Thank you, Erland for the idea and explanations.
    The only thing that upsets me is that this solution cannot be applied, because I don't want to convert PK_ParentTable from clustered to non-clustered just to avoid blocking issues. It is a pity that SQL Server is not smart enough to realize that:
    ParentTable.PARENT_ID is not changed and, as a result, should not be locked
    ChildTable.PARENT_ID is not actually changed either (old value in my example is 1 and the new value is also 1) and, as a result, there is no need at all for validating the foreign key.
    In fact, the problem I described is just a tip of the iceberg. The real challenge is that I have deadlocks because of the FK validation. In reality, the first transaction has an additional statement which updates ChildTable:
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
    BEGIN TRAN
    UPDATE ParentTable
    SET VALUE = 'Test'
    WHERE PARENT_ID = 1;
    UPDATE ChildTable
    SET VALUE = 'Test'
    WHERE PARENT_ID = 1;
    The result is famous message:
    Msg 1205, Level 13, State 51, Line xx
    Transaction (Process ID xx) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
    I know that if I change the order of the two statements, it will solve the deadlock issue. But let's imagine I cannot do it. What are the other options?
    Alexey

  • Error when adding Essbase server...

    Hi,
    I installed Hyperion System 9.3.1 in my development machine and encounter the following error when adding a Essbase server in AAS for the first time.
    Error: 1042017: Network error: The client or server timed out waiting to receive data using TCP/IP. Check network connections. Increase the NetRetryCount and/or NetDelay values in the ESSBASE.CFG file. Update this file on both client and server. Restart the client and try again.
    I used the default user "admin" and password "password". I used my servername:10080 as the server name. I hope I am right.
    Why is this happening? I tried changing netdelay settings but still get the same. Is this something else? Does this have anything to do with my TCP/IP settings? I am installing this on a virtual PC.
    I couldn't find an answer in previous posts.
    regards
    h

    The things that come to mind:
    The server name you use should be the name of the virtual PC, not the machine it's running on. Also, depending on the settings for the Virtual PC environment, you may have to change the network options to allow it to be visible to the network, be in the right domain, etc...
    The above may or may not get you any closer, the error message itself is just saying it can't receive a response from the server, which means the server never got the request or can't send a response back.
    Good Luck,

  • Library error when adding contact or when logging in

    The messenger server has a replica of the partition holding the users.
    It's an OES 2 sp2 server, and the GW Messenger is 2.04.
    Sometimes we see an error that says 'Library error' when adding a contact, or it doesn't show all users that exists with the search parameter given.
    We also sporadically see a 'Library error' when some users log in to it.
    Looking in the log I see an error that says 0xAE16 when users log in fails.
    I can find the 0xAE11 error in the TID's but not the 0xAE16, I did find an article on the forums, mentioning this problem http://forums.novell.com/novell-prod...or-server.html, they mention memory problems, so it seems to me there is a bug that needs fixing.

    I've disabled the '/diruseralias-"Internet EMail Address"' setting that was set up in the strtup.ma and strtup.aa scripts.
    I've also, for now at least, chosen another replica.
    I haven't seen the errors yet, so here's hoping...

  • Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled

    When I try to add any new menu in my newly cloned instance I get this error:
    Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled excpetion. ORA-04031.
    Using Oracle EBS version 12.1.3.
    Details:
    Menu JOB_STRUCTURE_MENU
    User Menu Name Job Strucure Menu
    Menu Type Standard
    Description Menu to add job, grade, and incentives
    Seq = 1
    Prompt = Enter and Maintain
    Function = Combined Person & Assignment Form WF="US SHRMS TSKFLW
    When I click save I get the error.
    Any assistance would be greatly appreciated.
    Thanks!

    Please post the details of the application release, database version and OS.
    When I try to add any new menu in my newly cloned instance I get this error:
    Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled excpetion. ORA-04031.Is the issue with all menus or specific ones only?
    Did AutoConfig complete successfully?
    When I click save I get the error.
    Any assistance would be greatly appreciated.Do you have any invalid objects in the database?
    Any errors in the database log file?
    Please obtain FRD log file for details about the error -- https://forums.oracle.com/forums/search.jspa?threadID=&q=FRD+AND+R12&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • TableAdapter Configuration Wizard gives error when adding new TableAdapter

    Hi,
    I recently downloaded and installed the ODT for visual studio on my computer. I am running VS2008 on Windows 7 64-bit. I am able to create an ODP.NET connection to the Oracle XE 10.2g instance that is running on my computer with no problems and use that connection to browse the database. When I add a DataSet to my project, and start adding TableAdapters to the DataSet, I am getting errors. In an attempt to figure out what the problem is, I have followed various scenarios. I will describe each scenario, and what the end result is, and then after I have described them all, I will explain what I think the problem might be. Here are the different scenarios I have used:
    Scenario 1:
    From the Server Explorer, highlight ALL of the tables in my schema and drag them to the designer (all table adapters are added with no issues). I can add additional queries to each of the TableAdapters and then change the additional queries by right clicking and choosing "Configure". This all works with no issues. However, on certain TableAdapters, if I try to modify the primary query (Fill,GetData()), I can open the query editor just fine, change various settings, etc, but when I click on "Finish" I get the following error:
    Configure TableAdapter TABLENAME failed.
    Index was outside the bounds of the array.
    Scenario 2:
    From the Server Explorer, drag tables from my schema onto the designer one at a time. Some tables get added just fine, but for the rest of them, I get the following error:
    Failed to merge object(s).
    Index was outside the bounds of the array.
    Scenario 3:
    On the Dataset Designer, add tables one at a time by right clicking and choosing "Add -> TableAdapter" and then using SQL to define the query for each table. Some tables get added just fine, but for the rest of them, I get the following error:
    Failed to add TableAdapter.
    Index was outside the bounds of the array.
    Ok... now that I have described all of the different scenarios, I will explain what I think the problem is, and why. Based on my research, I believe the underlying problem has to do with Foreign Key Constraints on the various tables. While working on Scenarios 2 & 3, the same exact tables worked just fine in both scenarios. When I started looking at the definitions for the tables in my schema, it turns out that all of the tables that failed had foreign key constraints defined. When I remove the FK constraints from a table, I am then able to add it to my dataset and change the default query with no problems. My original application used the System.Data.OracleClient provided by Microsoft. When adding my tableadapters using the microsoft data provider, the FK relations are automatically generated for me in the designer, but not with the Oracle Data Provider
    I would be happy to provide you with the DDL that I used for creating my schema (it is not very big) if needed.
    Thanks,
    Jim

    Sorry let me clarify some of the config a little more.
    MAIL101 - Exch 2013
    MAIL102 - Exch 2013
    AP104 - Witness (strictly a witness nothing else on this machine)
    EDGE01 - Exch 2007 Edge
    CAS01 - Exch 2007 Hub/CAS load balancer for CAS02/03
    CAS02 - Exch 2007 Hub/CAS
    CAS03 - Exch 2007 Hub/CAS
    MBOX01 - Exch 2007 Mail cluster
    MBOX02 - Exch 2007 Mail cluster node
    MBOX03 - Exch 2007 Mail cluster node
    RDC01, RDC02, RDC03 - all 2008 R2 root domain controllers for rootdomain.rootdomain
    DC01, DC02, DC03, DC04 - all 2008 R2 domain controllers for us.rootdomain.rootdomain
    All DCs are Global Catalogs.
    I can ping all DCs and root DCs fromboth MAIL101 and 102
    The Exchange Replication service is running on both MAIL101 and 102.
    DC03 is in the same site as the MAIL101/102 servers so I'll run all replication tests from here.
    DCDIAG comes back with all tests passed.
    repadmin /replsum comes back with 0 fails and no errors largest delta for any intersite communication is 13min.
    When I run Test-ReplicationHealth -Identity MAIL101 and also 102 they both come back as everything passed.  No errors.

  • Error when adding Non-Cumulative InfoCube to a Multi-Providers

    I want to include an InfoCube using non-cumulative key figures (0IC_C03) to a MultiProvider that includes other basic cubes.  Is this possible?  I thought I read that you could include one non-cumulative cube in a MultiProvider.  When I added 0IC_C03 to the MultiProvider I get the following error when activating: "Define the characteristics of the validity table for non-cumulatives."  The validity table is defined for 0IC_C03, do I need to do anything special in the multiprovider?  Any ideas on what I need to do?
    Thanks,
    Chris
    Edited by: Chris Robertson on Nov 18, 2008 4:52 PM

    Hi Chris,
    I am having the same issue. Did you manage to fix this?
    Thanks,
    Milind

  • TableSorter errors when adding new data

    so here is the deal:
    I am using the TableSorter.java helper class with DefaultTableModel
    from: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
    It works great when the data is static and I get it for the first time. however, occationally, when adding new data I get a NullPointerException error.
    in use:
    DefaultTableModel.addRow()
    DefaultTableModel.removeRow() and
    DefaultTableModel.insertRow() methods.
    Error:
    java.lang.ArrayIndexOutOfBoundsException: 5
         at com.shared.model.TableSorter.modelIndex(TableSorter.java:294)
         at com.shared.model.TableSorter.getValueAt(TableSorter.java:340)
         at javax.swing.JTable.getValueAt(Unknown Source)
         at javax.swing.JTable.prepareRenderer(Unknown Source)...
    code problem I:
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        }code problem II:
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        }TableSroter class:
    package com.shared.model;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.*;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.*;
    * TableSorter is a decorator for TableModels; adding sorting
    * functionality to a supplied TableModel. TableSorter does
    * not store or copy the data in its TableModel; instead it maintains
    * a map from the row indexes of the view to the row indexes of the
    * model. As requests are made of the sorter (like getValueAt(row, col))
    * they are passed to the underlying model after the row numbers
    * have been translated via the internal mapping array. This way,
    * the TableSorter appears to hold another copy of the table
    * with the rows in a different order.
    * <p/>
    * TableSorter registers itself as a listener to the underlying model,
    * just as the JTable itself would. Events recieved from the model
    * are examined, sometimes manipulated (typically widened), and then
    * passed on to the TableSorter's listeners (typically the JTable).
    * If a change to the model has invalidated the order of TableSorter's
    * rows, a note of this is made and the sorter will resort the
    * rows the next time a value is requested.
    * <p/>
    * When the tableHeader property is set, either by using the
    * setTableHeader() method or the two argument constructor, the
    * table header may be used as a complete UI for TableSorter.
    * The default renderer of the tableHeader is decorated with a renderer
    * that indicates the sorting status of each column. In addition,
    * a mouse listener is installed with the following behavior:
    * <ul>
    * <li>
    * Mouse-click: Clears the sorting status of all other columns
    * and advances the sorting status of that column through three
    * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to
    * NOT_SORTED again).
    * <li>
    * SHIFT-mouse-click: Clears the sorting status of all other columns
    * and cycles the sorting status of the column through the same
    * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.
    * <li>
    * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except
    * that the changes to the column do not cancel the statuses of columns
    * that are already sorting - giving a way to initiate a compound
    * sort.
    * </ul>
    * <p/>
    * This is a long overdue rewrite of a class of the same name that
    * first appeared in the swing table demos in 1997.
    * @author Philip Milne
    * @author Brendon McLean
    * @author Dan van Enckevort
    * @author Parwinder Sekhon
    * @version 2.0 02/27/04
    public class TableSorter extends AbstractTableModel
        protected TableModel tableModel;
        public static final int DESCENDING = -1;
        public static final int NOT_SORTED = 0;
        public static final int ASCENDING = 1;
        private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
        public static final Comparator COMPARABLE_COMAPRATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return ((Comparable) o1).compareTo(o2);
        public static final Comparator LEXICAL_COMPARATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return o1.toString().compareTo(o2.toString());
        private Row[] viewToModel;
        private int[] modelToView;
        private JTableHeader tableHeader;
        private MouseListener mouseListener;
        private TableModelListener tableModelListener;
        private Map columnComparators = new HashMap();
        private List sortingColumns = new ArrayList();
        public TableSorter()
            this.mouseListener = new MouseHandler();
            this.tableModelListener = new TableModelHandler();
        public TableSorter(TableModel tableModel)
            this();
            setTableModel(tableModel);
        public TableSorter(TableModel tableModel, JTableHeader tableHeader)
            this();
            setTableHeader(tableHeader);
            setTableModel(tableModel);
        private void clearSortingState()
            viewToModel = null;
            modelToView = null;
        public TableModel getTableModel()
            return tableModel;
        public void setTableModel(TableModel tableModel)
            if (this.tableModel != null)
                this.tableModel.removeTableModelListener(tableModelListener);
            this.tableModel = tableModel;
            if (this.tableModel != null)
                this.tableModel.addTableModelListener(tableModelListener);
            clearSortingState();
            fireTableStructureChanged();
        public JTableHeader getTableHeader()
            return tableHeader;
        public void setTableHeader(JTableHeader tableHeader)
            if (this.tableHeader != null)
                this.tableHeader.removeMouseListener(mouseListener);
                TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
                if (defaultRenderer instanceof SortableHeaderRenderer)
                    this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
            this.tableHeader = tableHeader;
            if (this.tableHeader != null)
                this.tableHeader.addMouseListener(mouseListener);
                this.tableHeader.setDefaultRenderer
                        new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer())
        public boolean isSorting()
            return sortingColumns.size() != 0;
        private Directive getDirective(int column)
            for (int i = 0; i < sortingColumns.size(); i++)
                Directive directive = (Directive)sortingColumns.get(i);
                if (directive.column == column)
                    return directive;
            return EMPTY_DIRECTIVE;
        public int getSortingStatus(int column)
            return getDirective(column).direction;
        private void sortingStatusChanged()
            clearSortingState();
            fireTableDataChanged();
            if (tableHeader != null)
                tableHeader.repaint();
        public void setSortingStatus(int column, int status)
            Directive directive = getDirective(column);
            if (directive != EMPTY_DIRECTIVE)
                sortingColumns.remove(directive);
            if (status != NOT_SORTED)
                sortingColumns.add(new Directive(column, status));
            sortingStatusChanged();
        protected Icon getHeaderRendererIcon(int column, int size)
            Directive directive = getDirective(column);
            if (directive == EMPTY_DIRECTIVE)
                return null;
            return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
        private void cancelSorting()
            sortingColumns.clear();
            sortingStatusChanged();
        public void setColumnComparator(Class type, Comparator comparator)
            if (comparator == null)
                columnComparators.remove(type);
            else
                columnComparators.put(type, comparator);
        protected Comparator getComparator(int column)
            Class columnType = tableModel.getColumnClass(column);
            Comparator comparator = (Comparator) columnComparators.get(columnType);
            if (comparator != null)
                return comparator;
            if (Comparable.class.isAssignableFrom(columnType))
                return COMPARABLE_COMAPRATOR;
            return LEXICAL_COMPARATOR;
        private Row[] getViewToModel()
            if (viewToModel == null)
                int tableModelRowCount = tableModel.getRowCount();
                viewToModel = new Row[tableModelRowCount];
                for (int row = 0; row < tableModelRowCount; row++)
                    viewToModel[row] = new Row(row);
                if (isSorting())
                    Arrays.sort(viewToModel);
            return viewToModel;
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        private int[] getModelToView()
            if (modelToView == null)
                int n = getViewToModel().length;
                modelToView = new int[n];
                for (int i = 0; i < n; i++)
                    modelToView[modelIndex(i)] = i;
            return modelToView;
        // TableModel interface methods
        public int getRowCount()
            return (tableModel == null) ? 0 : tableModel.getRowCount();
        public int getColumnCount()
            return (tableModel == null) ? 0 : tableModel.getColumnCount();
        public String getColumnName(int column)
            return tableModel.getColumnName(column);
        public Class getColumnClass(int column)
            return tableModel.getColumnClass(column);
        public boolean isCellEditable(int row, int column)
            return tableModel.isCellEditable(modelIndex(row), column);
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        public void setValueAt(Object aValue, int row, int column)
            tableModel.setValueAt(aValue, modelIndex(row), column);
        // Helper classes
        private class Row implements Comparable
            private int modelIndex;
            public Row(int index)
                this.modelIndex = index;
            public int compareTo(Object o)
                int row1 = modelIndex;
                int row2 = ((Row) o).modelIndex;
                for (Iterator it = sortingColumns.iterator(); it.hasNext();)
                    Directive directive = (Directive) it.next();
                    int column = directive.column;
                    Object o1 = tableModel.getValueAt(row1, column);
                    Object o2 = tableModel.getValueAt(row2, column);
                    int comparison = 0;
                    // Define null less than everything, except null.
                    if (o1 == null && o2 == null)
                        comparison = 0;
                    } else if (o1 == null)
                        comparison = -1;
                    } else if (o2 == null)
                        comparison = 1;
                    } else {
                        comparison = getComparator(column).compare(o1, o2);
                    if (comparison != 0)
                        return directive.direction == DESCENDING ? -comparison : comparison;
                return 0;
        private class TableModelHandler implements TableModelListener
            public void tableChanged(TableModelEvent e)
                // If we're not sorting by anything, just pass the event along.            
                if (!isSorting())
                    clearSortingState();
                    fireTableChanged(e);
                    return;
                // If the table structure has changed, cancel the sorting; the            
                // sorting columns may have been either moved or deleted from            
                // the model.
                if (e.getFirstRow() == TableModelEvent.HEADER_ROW)
                    cancelSorting();
                    fireTableChanged(e);
                    return;
                // We can map a cell event through to the view without widening            
                // when the following conditions apply:
                // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and,
                // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
                // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and,
                // d) a reverse lookup will not trigger a sort (modelToView != null)
                // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
                // The last check, for (modelToView != null) is to see if modelToView
                // is already allocated. If we don't do this check; sorting can become
                // a performance bottleneck for applications where cells 
                // change rapidly in different parts of the table. If cells
                // change alternately in the sorting column and then outside of            
                // it this class can end up re-sorting on alternate cell updates -
                // which can be a performance problem for large tables. The last
                // clause avoids this problem.
                int column = e.getColumn();
                if (e.getFirstRow() == e.getLastRow()
                        && column != TableModelEvent.ALL_COLUMNS
                        && getSortingStatus(column) == NOT_SORTED
                        && modelToView != null)
                    int viewIndex = getModelToView()[e.getFirstRow()];
                    fireTableChanged(new TableModelEvent(TableSorter.this,
                                                         viewIndex, viewIndex,
                                                         column, e.getType()));
                    return;
                // Something has happened to the data that may have invalidated the row order.
                clearSortingState();
                fireTableDataChanged();
                return;
        private class MouseHandler extends MouseAdapter
            public void mouseClicked(MouseEvent e)
                JTableHeader h = (JTableHeader) e.getSource();
                TableColumnModel columnModel = h.getColumnModel();
                int viewColumn = columnModel.getColumnIndexAtX(e.getX());
                int column = columnModel.getColumn(viewColumn).getModelIndex();
                if (column != -1)
                    int status = getSortingStatus(column);
                    if (!e.isControlDown())
                        cancelSorting();
                    // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or
                    // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed.
                    status = status + (e.isShiftDown() ? -1 : 1);
                    status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
                    setSortingStatus(column, status);
        private static class Arrow implements Icon
            private boolean descending;
            private int size;
            private int priority;
            public Arrow(boolean descending, int size, int priority)
                this.descending = descending;
                this.size = size;
                this.priority = priority;
            public void paintIcon(Component c, Graphics g, int x, int y)
                Color color = c == null ? Color.GRAY : c.getBackground();            
                // In a compound sort, make each succesive triangle 20%
                // smaller than the previous one.
                int dx = (int)(size/2*Math.pow(0.8, priority));
                int dy = descending ? dx : -dx;
                // Align icon (roughly) with font baseline.
                y = y + 5*size/6 + (descending ? -dy : 0);
                int shift = descending ? 1 : -1;
                g.translate(x, y);
                // Right diagonal.
                g.setColor(color.darker());
                g.drawLine(dx / 2, dy, 0, 0);
                g.drawLine(dx / 2, dy + shift, 0, shift);
                // Left diagonal.
                g.setColor(color.brighter());
                g.drawLine(dx / 2, dy, dx, 0);
                g.drawLine(dx / 2, dy + shift, dx, shift);
                // Horizontal line.
                if (descending) {
                    g.setColor(color.darker().darker());
                } else {
                    g.setColor(color.brighter().brighter());
                g.drawLine(dx, 0, 0, 0);
                g.setColor(color);
                g.translate(-x, -y);
            public int getIconWidth()
                return size;
            public int getIconHeight()
                return size;
        private class SortableHeaderRenderer implements TableCellRenderer
            private TableCellRenderer tableCellRenderer;
            public SortableHeaderRenderer(TableCellRenderer tableCellRenderer)
                this.tableCellRenderer = tableCellRenderer;
            public Component getTableCellRendererComponent(JTable table,
                                                           Object value,
                                                           boolean isSelected,
                                                           boolean hasFocus,
                                                           int row,
                                                           int column)
                Component c = tableCellRenderer.getTableCellRendererComponent(table,
                        value, isSelected, hasFocus, row, column);
                if (c instanceof JLabel) {
                    JLabel l = (JLabel) c;
                    l.setHorizontalTextPosition(JLabel.LEFT);
                    int modelColumn = table.convertColumnIndexToModel(column);
                    l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
                return c;
        private static class Directive
            private int column;
            private int direction;
            public Directive(int column, int direction)
                this.column = column;
                this.direction = direction;
    }any input will be appreciated.
    thanks
    Peter

    The code you posted doesn't help us at all. Its just a duplicate of the code from the tutorial. The custom code is what you have written. For example do you update the TableModel from the Event Thread? Do you update the SortModel or the DefaultTableModel? If you actually provide your test code and somebody has already downloaded the sort classes, then maybe they will test your code against the classes. But I doubt if people will download the sort classes and create a test program just to see if they can duplicate your results (at least I know I'm not about to).

  • Performance degradation when using foreign keys

    Hi,
    I face drastic performance degradation when I add foreign keys to a table and perform insert / update on that table.
    I have a row store table to  which I need to insert around 1,50,000 records.
    If the table has no foreign key reference it takes maximum of 5 seconds but if the same table has references to other tables (in my case there are 3 references), the processing speed reduces drastically to 2 minutes.
    Is there any solution / best practice that can help me in gaining performance (processing speed) in this situation?
    Thanks
    S.Srivatsan

    Hi Sri,
    When you perform one insert in any database table which is having foreign key relationships, it will check the corresponding parent tables to check whether the master data is available or not. If your table is having 2 foreign key relationship, it happen twice per insert. Hence the performance will degrade. This is one of the reasons why ECC  doesn't establish foreign key relationship in the back end database. The case is not just for INSERT, for UPDATE & DELETE the same is applicable.
    Sreehari

  • Error when adding a disk to Cluster Shared Volumes

    When adding a disk to Cluster Shared Volumes via Failover Cluster Manager, I get a couple of errors.
    Event ID 5145 in System Log:
    While adding the disk ('Cluster Disk 1') to Cluster Shared Volumes, setting explicit snapshot diff area association for volume ('\\?\Volume{420e2cc4-4fb4-41be-afb1-65f2ee62457a}\') failed with error 'HrError(0x8004230d)'. The only supported software snapshot
    diff area association for Cluster Shared Volumes is to self.
    Cluster disk resource 'Cluster Disk 1' failed to delete a software snapshot.  The diff area on volume '\\?\Volume{420e2cc4-4fb4-41be-afb1-65f2ee62457a}\' could not be dissociated from volume '\\?\Volume{420e2cc4-4fb4-41be-afb1-65f2ee62457a}\'. This
    may be caused by active snapshots. Cluster Shared Volumes requires that the software snapshot be located on the same disk.
    Any ideas why I'm getting this error?  This disk was previously added as a CSV to different Windows failover cluster, if that matters.  Thanks.

    Hi,
    As the disk was previously used as a CSV, I assume there is still data on it.
    Please check if any VSS snapshot created on that disk. If so, delete them and re-add it as a CSV to see the result - a quick way is to backup important files and perform a re-format if you cannot confirm.
    If you have any feedback on our support, please send to [email protected]

Maybe you are looking for

  • Error while trying to import songs on cd

    hi i downloaded the newest version of i tunes and now i can not burn my songs onto a cd. i keep getting errors please help this is what the error reads. Microsoft Windows XP Home Edition Service Pack 2 (Build 2600) Dell Computer Corporation Dimension

  • HELP: How to set WSDL at runtime (in Flex 4)?

    Hi, My flex application needs to communicate with a Web Service whose location is not known until after deployment; the service's location is known and static during development.  This means that my application should be able to communicate with the

  • Having A REALLY hard time installing itunes on my Window 7 laptop

    Alrite so this is like day 2 for trying to download itunes on my window 7 laptop! I click run and yes to everything and then when the whole itunes+quicktime pops up to download its gets all the way to the point where it says "Publishing product infor

  • Updating web service WSDL in Flash Builder 4

    I have a web service added to my FB4 project. It is all working nicely but I cannot work out how to refresh the web service wsdl. In flex builder 3 there was a "Manage web services" option that let you do it but there doesn't appear to be one in Flas

  • User Task queries

    Hi Few queries reg User Tasks: 1. How to delete the tasks from task list?(Both either active or completed) ITask[] tasks = worklist.listTasks( 0, 100); Above code gives us all task list. I want to delete all these available tasks from BPEL console. 2