Why migrate from toplink 10.1.2 to EJB 3 JPA instead of to toplink 10.1.3?

We're in the situation that we're using Toplink 10.1.2 and are making plans for our next release. I'm wondering wether we should 'just' migrate to the 10.1.3 version of the Toplink API or wether we should migrate to EJB 3.0 JPA API (with Toplink as implementation).
Advantages and drawbacks I see are the following:
Toplink API 10.1.3 versus EJB 3 Persistency on Toplink
+ maybe the only way to access Toplink specific functionality: i.e. historic queries. (Is that a fact by the way?)
- In the long run it will be easier to hire people with knowledge of EJB 3.0 Persistency
+ Maybe smaller effort to migrate. (Is that true? I guess we'd have to add a lot of annotations)
Are there more drawbacks/advantages?
Regards,
Joost de Vries
Netherlands

Hasam,
We do have a uix to JSF migration utility that you can get through the check for update center. The missing part there right now is that it doesn't support uix template migration.
If you are using jheadstart you might want to post your question on the jheadstart forum as well they might be able to do the migration through their repository.
And remember that if your application is working now and your customers are happy then you don't have to migrate it.

Similar Messages

  • Migration from conventional Oracle Toplink to Opensource..

    I heard about EclipseLink release coming in next month.
    I would like to know whether the Open-source toplink is available now.. Our company is using Oracle Toplink 10.1.3.3.. We are using Oracle's paid version of Toplink called Enterprise..As we are hearing about Oracle toplink going to opensource, We would like to switch to Opensource Toplink.. How would be the migration impacts? Could any one plz answer my question..
    Message was edited by:
    user104

    EclipseLink's home page is at,
    http://www.eclipselink.org
    You can download the latest milestone from there, and get access to the status and documentation on the Wiki.
    The API is the same, but the package names are different. You can run the Package Renamer to migrate your code to the new packages (long time TopLink users should be familiar with this :) ).

  • Why can't I migrate from an iPhone 3GS to a 4GS using iCloud Backup/Restore?? (Says incompatible.)

    Why can't I -simply- migrate from an iPhone 3GS to a 4GS using iCloud Backup/Restore??
    (The 4GS says it's incompatible with 3GS iCloud Backups and so it cannot restore them.)
    I've had to use a computer with iTunes, but surely iCloud can be used fior this?

    You need to update your 4 to newer software to restore from icloud back up, until then you will get incompatible message. So steps are - set up your iphone 4 as new. Update. Erase. Restore from cloud backup. If you update does not take long you should be all set within an hour.

  • Why do I get iPhoto not responding after I used migration from my old G4 powerbook to my newer macbook pro?

    why do I get iPhoto not responding after I used migration from my old G4 powerbook to my newer macbook pro?

    why do I get iPhoto not responding after I used migration from my old G4 powerbook to my newer macbook pro?

  • Why does it take me so long time to migrate from my old Mac

    Why does it take me so long time to migrate from my old Mac?
    I just bought a new MacBook Air and using an ethernet cable to migrate all material from my old MacBook Pro, it has now taken med 4 days
    and still not done? What am I doing wrong?

    Thanks for that gbrenik.
    Don't really wanna start reloading all of Lion, but read somewhere that I should start the migration by restarting my source Mac by holding down T during startup, that would do the trick. Is this what I  have done wrong?

  • TS1963 Migrating from Time Machine onExternal Disk,  Why won't Migration Assistant see my USB Connected external disk drive?

    I had to format my internal disk drive on my MacBook Pro, and reload Mountain Lion 10.8.3.   The startup assistant could not see my external disk drive with the Time Machine backup files.  After many tries I told it to skip restoring the files and let it boot up.  I was able to see my 1 TByte external drive and could see the Time Machine files using Finder.
    I started the Migration Assistant and told it to migrate from Time Machine Files on an external drive.  It also did not see the backup drive.  The only drive icon it showed was the Macintosh HD (my internal drive).  
    Isn't it supposed to show you the drive you are moving the files from?  I tried starting it and it looked like it was going to try to migrate the files from the internal drive (to where I don't know, back to itselfl?)  Or  do I just not understand.  Is it seeing the external drive, without identifying it (in the Migration Asst,)?
    Really looks like it is going to back up  the internal HD with files that are on the internal HD and not from Time Machine.
    I need to restore my files and have been told I need to do so using Migration Assistant and not Time Machine.
    Help pleae and soon, need to get my taxes finished!
    Thanks!

    I'm surprised that no one replied to this.  But I learned a few things that may be helpful to some of you with this same question.
    When you restore data from an external disk drive with Time Machine files on it.  As you move through the dialog (in either System Startup or in the Migration Assistant) it will ask if you want to restore from an external disk with Time Machine files.  If you select this option, it will show you only one Icon.  You will expect to see your external disk drive listed as the source of the restore.  The icon that is shown will look like your ilnternal drive and will be labeled something like Macintosh HD.  That is not your internal drive, but is your backup drive.  It is labeled  the same as your internal disk drive and it is telling you that you have found the backup for your internal disk drive.
    Would be nice if Apple would put a note of explanation about this as part of that dialog.  I wasted several hours trying to make it work  Finally I took a chance and selected the drive shown and it did restore my system.  I ended up with two users since I did it from Migration Assistant.  Had I done it from the System Startup, there would only be the one user.

  • ActiveSync stops working after migrating from Exchange 2007 to Exchange 2013

    We have started the migration from Exchange 2007 to Exchange 2013. We've followed best practices and everything is working great except ActiveSync. I've performed Exchange migrations in the past so this is nothing new for me. I've also been referring to
    a great guide which has been a big help,
    http://www.msexchange.org/articles-tutorials/exchange-server-2013/migration-deployment/planning-and-migrating-small-organization-exchange-2007-2013-part1.html.
    Once a user is migrated from Exchange 2007 to 2013, ActiveSync stops working properly. Email can be pulled to the device (Nokia Lumia 625 running Windows Phone 8) by performing a manual sync. But DirectPush is not working. The strange part is it's not affecting
    everyone who's been migrated. Anyone who is still on Exchange 2007 is not affected.
    At first I thought it was our wildcard certificate. 99% of our users are running Outlook 2013 on Windows 7 or higher but we do have a few terminal servers still running Outlook 2010. Outlook 2010 was giving us certificate errors. I realized it was the wildcard
    certificate. Rather than making changes to the OutlookProvider I simply obtained a new SAN certificate. Although that resolved the issues for Outlook 2010 users, ActiveSync was still a problem.
    Rebooting the phones and removing the email account from the user's device and re-adding it didn't resolve the issue either.
    Then I performed an iisreset on the CAS server. This didn't help either. I didn't know it at the time, but I was getting closer...
    I tried using the cmdlet Test-ActiveSyncConnectivity but it gave me the following error:
    WARNING: Test user 'extest_0d9a45b025374' isn't accessible, so this cmdlet won't be able to test Client Access server
    connectivity.
    Could not find or sign in with user DOMAIN.com\extest_0d9a45b025374. If this task is being run without
    credentials, sign in as a Domain Administrator, and then run Scripts\new-TestCasConnectivityUser.ps1 to verify that
    the user exists on Mailbox server EX02.DOMAIN.COM
    I started reviewing how Exchange 2013 proxied information from the CAS to the mailbox server and realized the issue may in fact be on the mailbox server.
    I performed an iisreset on the mailbox server and all of a sudden ActiveSync started working again. Awesome!
    I can't explain why. The only thing I can assume is when some users were migrated from 2007 to 2013 something wasn't being triggered on the Exchange 2013 side. Resetting IIS resolved the issue. I guess I'll have to do an IIS reset after I perform a batch
    of migrations. Disabling ActiveSync and re-enabling it for the affected users didn't help - only the IISRESET resolved the issue.
    If anyone has any information as to why this happens, please chime in. Also, if anyone knows why I can't run the Test-ActiveSyncConnectivity cmdlet, I'd appreciate the help.
    Thanks.

    Hi,
    In Exchange 2013, the Public Folder is changed to Public Folder mailbox instead of Public Folder in Exchange 2007 database.
    Due to the changes in how public folders are stored, legacy Exchange mailboxes are unable to access the public folder hierarchy on Exchange 2013 servers. However, user mailboxes on Exchange 2013 servers or Exchange Online can connect to legacy
    public folders. Exchange 2013 public folders and legacy public folders can’t exist in your Exchange organization simultaneously. This effectively means that
    there’s no coexistence between versions.
    For this reason, it’s recommended that prior to migrating your public folders, you should
    first migrate your all legacy mailboxes to Exchange 2013. For more information about migrating public folder from previous versions, please refer to:
    http://technet.microsoft.com/en-us/library/jj150486(v=exchg.150).aspx
    (Please note the What do you need to know before you begin part in this link)
    Regards,
    Winnie Liang
    TechNet Community Support

  • Migration from Exchange 2007 to Exchange 2013

    We are migrating from Exchange 2007 to Exchange 2013. We have a new Exchange 2013 server will all of the roles installed, but none of the mailboxes have even been moved yet. We are seeing some of our users getting prompted to accept the self signed certificate
    on the exchange 2013 server. Exchange 2007 server is still handling all of the mail flow and connectors. Any reason why some of our users would be prompted with the certificate for the exchange 2013 server even though their mailbox is still on exchange 2007.
    Our users are on outlook 2010.
    Ed
    Ed

    Hi,
    Could you show us what is the prompt details?
    According to your desciption,I recommend you refer to the following methods to troubleshoot:
    1.Please check if outlook anywhere been configured to connect exchange 2013.
    2.Ctrl+Right click outlook, use “Test E-mail AutoConfiguration” to check all the settings .
    Thanks.
    Niko Cheng
    TechNet Community Support

  • How do I migrate from a former user account on an external drive after a clean install?

    This question has been partially answered before but not to my satisfaction and, from what I've found, not for Mountain Lion.
    My MBPr was running fine for a week after I transfered my User account to an external drive. After some reorganization I decided to move the acount to a different external drive. I blundered and, for whatever reason, was unable to log in to any account on my MBPr. Not even my backup account - which suprised me. (I tried repairing disks, permissions, etc...) I tried to resolve it on the phone with Apple to no avail. Finally, I gave up. I booted into recovery and did a reinstall. After 12 hours I came back to find that it wasn't a clean reinstall. And I still couldn't log in to anything. 
    I then did an erase and reinstall. After another 12 hours I now have a clean install of Mountain Lion on my MBPr. I have an external drive with my former working user directory (Home:Users/mrmoose) on it. (BTW, It is LARGER than my internal SSD drive, it is not bootable, AND I have no backup of it in Time Machine format.)
    My current user account is Macintosh HD:Users/bullwinkle
    1) Is there a way to "reclaim" my user account on the external drive - possibly without even copying or migrating?
    2) Can I copy the contents of bullwinkle (excluding some of my folders under Documents so it fits) to Macintosh HD Users/bullwinkle? Including the Library folder? I have audio plugins, etc...
    I'd still like my User directory on an external drive. But I will settle for keeping it on the internal drive. I just want my info back.
    Why, oh, why does Migration Assistant require your data to be in TIME MACHINE format only - why can one not migrate from a full copy on an external drive? Why can't it look at the darn thing and say, "Hey, that's a copy of an OSX User directory. I can migrate data from that."?
    I would greatly appreciate a detailed response. THANK YOU. Lama Out.

    ~/Library is probably the one you don't want to move back because it may bring the issues back along with it.
    All your own data you can drag & drop. You can drag the contents of any folder Movies, Music, Pictures, Documents (or as much as you want).
    Rather than try to replace the Library you can take ~/Library/Application Support, Mail, Safari and any other folders you need.
    To access your hidden ~/Library folder go to your Finder "Go" menu hold the option key to choose "Library".
    Then you can drag it to the Sidebar for easy access.

  • Migrated from SOA 10.1.3.1 to 10.1.35, Error While Deploying an Application

    I have migrated from Application server 10.1.3.1 to 10.1.3.5 by applying patches. After that i have tried to deploy a application, I got this error
    Operation failed with error: [resonance:resonance] - Exception creating EntityManagerFactory using PersistenceProvider class oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider for persistence unit
    Please reply as soon as possible, It's very urgent , I am trying to resolve this issue for the past 1 week

    The Error which is present in the logs as follows
    *10/05/12 16:05:18 Stop process*
    *10/05/12 16:06:58 Start process*
    May 12, 2010 4:07:04 PM com.evermind.server.XMLDataSourcesConfig parseRootNode
    INFO: Legacy datasource detected...attempting to convert to new syntax.
    May 12, 2010 4:07:05 PM com.evermind.server.XMLApplicationServerConfig randomize
    JtaAdminPassword
    INFO: Updating JtaAdmin account
    *10/05/12 16:07:17 Oracle Containers for J2EE 10g (10.1.3.5.0) initialized*
    May 12, 2010 4:10:28 PM com.evermind.server.XMLDataSourcesConfig parseRootNode
    INFO: Legacy datasource detected...attempting to convert to new syntax.
    *10/05/12 16:10:41 WARNING: Code-source /home/oracle/product/j2ee/resonance/appli*
    cations/resonance/resonance/WEB-INF/lib/toplink.jar (from WEB-INF/lib/ directory
    in /home/oracle/product/j2ee/resonance/applications/resonance/resonance/WEB-INF
    */lib) has the same filename but is not identical to /home/oracle/product/toplink*
    */jlib/toplink.jar (from <code-source> (ignore manifest Class-Path) in META-INF/b*
    oot.xml in /home/oracle/product/j2ee/home/oc4j.jar). If it contains different ve
    rsions of the same classes, it will be masked as the latter is already visible i
    n the search path of loader resonance.web.resonance:0.0.0.
    Note: Some input files use unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    *10/05/12 16:10:59 oracle.oc4j.admin.internal.DeployerException: [resonance:reson*
    ance] - Exception creating EntityManagerFactory using PersistenceProvider class
    oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider for persistence
    unit ResonanceUnit.
    *10/05/12 16:10:59 at com.evermind.server.ejb.exception.DeploymentException*
    *.exceptionCreatingEntityManagerFactory(DeploymentException.java:130)*
    *10/05/12 16:10:59 at com.evermind.server.ejb.persistence.PersistenceUnitMa*
    nagerImpl.createContainerEntityManagerFactory(PersistenceUnitManagerImpl.java:19
    *7)*
    *10/05/12 16:10:59 at com.evermind.server.ejb.persistence.PersistenceUnitMa*
    nagerImpl.initializePersistenceUnit(PersistenceUnitManagerImpl.java:159)
    *10/05/12 16:10:59 at com.evermind.server.ejb.persistence.PersistenceUnitManagerImpl.initialize(PersistenceUnitManagerIm*
    pl.java:87)
    *10/05/12 16:10:59 at com.evermind.server.http.HttpApplication.createDefaultPersistenceUnitManager(HttpApplication.java:*
    *875)*
    *10/05/12 16:10:59 at com.evermind.server.http.HttpApplication.<init>(HttpApplication.java:844)*
    *10/05/12 16:10:59 at com.evermind.server.ApplicationStateRunning.getHttpApplication(ApplicationStateRunning.java:435)*
    *10/05/12 16:10:59 at com.evermind.server.Application.getHttpApplication(Application.java:592)*
    *10/05/12 16:10:59 at com.evermind.server.http.HttpSite$HttpApplicationRunTimeReference.createHttpApplicationFromReferen*
    ce(HttpSite.java:2280)
    *10/05/12 16:10:59 at com.evermind.server.http.HttpSite$HttpApplicationRunTimeReference.<init>(HttpSite.java:2199)*
    *10/05/12 16:10:59 at com.evermind.server.http.HttpSite.addHttpApplication(HttpSite.java:1833)*
    *10/05/12 16:10:59 at oracle.oc4j.admin.internal.WebApplicationBinder.bindWebApp(WebApplicationBinder.java:304)*
    *10/05/12 16:10:59 at oracle.oc4j.admin.internal.WebApplicationBinder.bindWebApp(WebApplicationBinder.java:120)*
    *10/05/12 16:10:59 at oracle.oc4j.admin.internal.WebApplicationBinder.bindWebApp(WebApplicationBinder.java:92)*
    *10/05/12 16:10:59 at oracle.oc4j.admin.internal.ApplicationDeployer.bindWebApp(ApplicationDeployer.java:825)*
    *10/05/12 16:10:59 at oracle.oc4j.admin.internal.ApplicationDeployer.doDeploy(ApplicationDeployer.java:276)*
    *10/05/12 16:10:59 at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:100)*
    *10/05/12 16:10:59 at oracle.oc4j.admin.jmx.server.mbeans.deploy.OC4JDeployerRunnable.doRun(OC4JDeployerRunnable.java:52*
    *10/05/12 16:10:59 at oracle.oc4j.admin.jmx.server.mbeans.deploy.DeployerRunnable.run(DeployerRunnable.java:81)*
    *10/05/12 16:10:59 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.j*
    ava:298)
    *10/05/12 16:10:59 at java.lang.Thread.run(Thread.java:595)*
    *10/05/12 16:11:00 WARNING: DeployerRunnable.run [resonance:resonance] - Exception creating EntityManagerFactory using Persist*
    enceProvider class oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider for persistence unit ResonanceUnit.oracle.
    *oc4j.admin.internal.DeployerException: [resonance:resonance] - Exception creating EntityManagerFactory using PersistenceProvi*
    der class oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider for persistence unit ResonanceUnit.
    at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:133)
    at oracle.oc4j.admin.jmx.server.mbeans.deploy.OC4JDeployerRunnable.doRun(OC4JDeployerRunnable.java:52)
    at oracle.oc4j.admin.jmx.server.mbeans.deploy.DeployerRunnable.run(DeployerRunnable.java:81)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
    at java.lang.Thread.run(Thread.java:595)
    Help me

  • Migration from MySql to Derby

    I am currently migrating from MySql to Derby.
    I have been developing a MRPII package for a while now and whilst my classes worked with MySql I am finding difficulty with implementing them using Derby.
    I have developed a GUI interface for MRPII functions and use a Database Interface class to connect to the database.
    The Database Interface class gives me the capability of reading and writing from a database.
    I extend this capability to sub classes ie part, customers, suppliers, work orders.
    The problem I have is with the ' "+standardCost+" ' type statements. In MySql, the database engine recognises that the standard cost variable is a double though using Derby I get the following Errors.
    SQL Exception: Columns of type 'DOUBLE' cannot hold values of type 'CHAR'. In Save Data error code30000
    SQL Exception: Columns of type 'DOUBLE' cannot hold values of type 'CHAR'. In Save Data error code30000
    Executed statement INSERT INTO stock VALUES('BUDGET500','A1', '100.0','50.0','1.0','100.0')
    Executed statement INSERT INTO part VALUES('BUDGET500', 'PENTIUM','76.0', '86.0','EACH','MP','7','33')
    The only solution I see is giving each subclass of Database Interface the individual capability within that class to connect to the database and use prepared statements.
    Does anyone know if Derby has the capability of processing the updates using a similar format as shown in my code.
    package delta.databaseInterface;
    import delta.databaseInterface.DatabaseInterface;
    public class Part extends DatabaseInterface{
         private String partNumber;
         private String partType;
         private String description;
         private double standardCost;
         private double sellingPrice;
         private String stockLocation;
         private double quantityOnHand;
         private String unitOfMeasure;
         private double minimumStock;
         private double minimumOrderQuantity;
         private int leadTime;
         private double avaliableStock;
                         private int commodityCode;
         public void setPartNumber(String pn){
              this.partNumber = pn.toUpperCase();
         public void setDescription(String ds){
              this.description = ds.toUpperCase();
         public void setStandardCost(double sc){
              this.standardCost = sc;
         public void setSellingPrice(double sp){
              this.sellingPrice = sp;
         public void setQuantityOnHand(double qt){
              this.quantityOnHand = qt;
              this.avaliableStock = qt;
         public void setStockLocation(String sl){
              this.stockLocation = sl.toUpperCase();
         public void setUnitOfMeasure(String uom){
              this.unitOfMeasure = uom.toUpperCase();
         public void setTypeOfPart(String top){
              this.partType = top.toUpperCase();
         public void setMinimumStock(double ms){
              this.minimumStock= ms;
         public void setMinimumOrderQuantity(double moq){
              this.minimumOrderQuantity = moq;
         public void setLeadTime(int lt){
              this.leadTime = lt;
                         public void setCommodityCode(int cc){
              this.commodityCode = cc;
         public void insertIntoPartDatabase(){
           super.setDatabase("mrpii");
                           super.setUpdate( "INSERT INTO part VALUES('"+partNumber+"', '"+description+"','"+standardCost+"'," +
           " '"+sellingPrice+"','"+unitOfMeasure+"','"+partType+"','"+leadTime+"','"+commodityCode+"')");
                             super.saveData();       
         public void insertIntoStockDatabase(){
            super.setDatabase("mrpii");
            super.setUpdate("INSERT INTO stock VALUES('"+partNumber+"','"+stockLocation+"',"+
    " '"+quantityOnHand+"','"+minimumStock+"','"+minimumOrderQuantity+"','"+avaliableStock+"')");
                    super.saveData();
         public void changePartDetails(){
            super.setDatabase("mrpii");
            super.setUpdate( "UPDATE part SET description = '"+description+"',unitOfMeasure = '"+unitOfMeasure+"',"+
              "partType = '"+partType+"' WHERE partNumber = '"+partNumber+"' ");
            super.saveData();
         public void adjustStock(){
              super.setDatabase("mrpii");
              super.setUpdate( "UPDATE stock SET stockLocation = '"+stockLocation+"',"+
              "avaliableStock = (('"+quantityOnHand+"' - qtyOnHand ) + avaliableStock), "+
              " qtyOnHand = '"+quantityOnHand+"' WHERE partNumber = '"+partNumber+"' ");
              super.saveData();
         public void insertAllocation(String allocationID, double quantity){
              super.setDatabase("mrpii");
              super.setQuery("INSERT INTO allocations VALUES('"+partNumber+"','"+quantity+"',"+
                 " '"+allocationID+"')");
              super.saveData();
         public void reduceAvaliable(double allocated){
              super.setDatabase("mrpii");
              super.setUpdate( "UPDATE stock SET avaliableStock = (avaliableStock - '"+allocated+"') WHERE " +
              "partNumber = '"+partNumber+"' ");
              super.saveData();
         public void increaseAvaliable(double allocated){
              super.setDatabase("mrpii");
              super.setUpdate( "UPDATE stock SET avaliableStock = (avaliableStock - '"+allocated+"') WHERE " +
              "partNumber = '"+partNumber+"' ");
              super.saveData();
    }Any help would be deeply appreciated
    Thanks
    Jim

    I am currently migrating from MySql to Derby. Dear God, why?I am using the embedded functionality.
    >
    I have been developing a MRPII package for a whilenow
    MRP as in "manufacturing resource planning"?Yes
    >
    and whilst my classes worked with MySql I am
    finding difficulty with implementing them using
    Derby.That suggests that your Java code relies too heavily
    on MySQL features. You didn't make your code
    portable enough.
    I have developed a GUI interface for MRPIIfunctions
    and use a Database Interface class to connect tothe
    database.
    The Database Interface class gives me thecapability
    of reading and writing from a database.
    I extend this capability to sub classes ie part,
    customers, suppliers, work orders.
    The problem I have is with the ' "+standardCost+"'
    type statements. In MySql, the database engine
    recognises that the standard cost variable is a
    double though using Derby I get the following
    Errors.Right - you're counting on something that might not
    be true for all databases. MySQL appears to be doing
    an implicit conversion from string to double. Bad
    idea.
    SQL Exception: Columns of type 'DOUBLE' cannothold
    values of type 'CHAR'. In Save Data errorcode30000
    SQL Exception: Columns of type 'DOUBLE' cannothold
    values of type 'CHAR'. In Save Data errorcode30000
    Executed statement INSERT INTO stock
    VALUES('BUDGET500','A1',
    '100.0','50.0','1.0','100.0')
    Executed statement INSERT INTO part
    VALUES('BUDGET500', 'PENTIUM','76.0',
    '86.0','EACH','MP','7','33')Do you use PreparedStatements to escape strings and
    dates for you? If not, you're in for a bumpy ride.
    The only solution I see is giving each subclass of
    Database Interface the individual capabilitywithin
    that class to connect to the database and use
    prepared statements.I would not have a single database interface. Each
    class has its own requirements. How can a single
    class know about all of them? Better to break your
    persistence layer into several interaces, one per
    persistent class.That is what I thought
    >
    Does anyone know if Derby has the capability of
    processing the updates using a similar format as
    shown in my code.I think your code is in trouble, Jim.Probably so, thought a redesign is not so much of a problem now as I am a bit more experienced than when I started out.
    >
    You don't use prepared statements, which would help
    with your portability issues.
    You have SQL embedded in the objects. I'd move it
    out into a separate persistence layer.
    You might want to read about Hibernate, an
    object/relational mapping layer. You've got objects
    and tables. Hibernate tools or Middlegen can
    generate the XML mapping files for you. Once you
    have those, you'll find that Hibernate will make
    porting to another database a lot easier. It can be
    as easy as changing configuration files.
    I'd also look into Spring. It has some great
    plumbing to help you deal with databases and lots of
    other stuff.
    %My main class is as follows;
    package delta.databaseInterface;
    * @author James Charles
    import java.sql.SQLException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.util.Vector;
    import javax.swing.JTable;
    public class DatabaseInterface{
         private String database;
         private String query;
                         private String update;
                private String[][] results = new String[0][0];
         private int columnCount = 0;
         private int rowCount = 0;
         private boolean resultsExist = false;
         Object data[][];
         private JTable table;
         public void setDatabase(String database){
              this.database = database;
         public void setQuery(String query){
              this.query = query;
                public void setUpdate(String update){
              this.update= update;
            public void saveData(){
              try{
              Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
              String sourceURL = new String("jdbc:derby:" + this.database);
              Connection databaseConnection = DriverManager.getConnection(sourceURL);
              Statement statement = databaseConnection.createStatement();
              statement. executeUpdate(this.update);
                    databaseConnection.close();
              } // end of try
              catch(ClassNotFoundException cnfe){
                   System.err.println(cnfe);
              catch(SQLException sqle){
                   System.err.println(sqle + " In Save Data error code" + sqle.getErrorCode());
                             System.out.println("Executed statement " + this.query);
                    catch(InstantiationException ie){
                        System.err.println(ie);
             catch(IllegalAccessException iae){
                        System.err.println(iae);
         public String getDatabase(){
              return this.database;
         public String getQuery(){
              return this.query;
         public void setResults(){           
         try{
              Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
              String sourceURL = new String("jdbc:derby:" + this.database);
              Connection databaseConnection = DriverManager.getConnection(sourceURL);
              Statement statement = databaseConnection.createStatement();
              ResultSet thisResult = statement.executeQuery(this.query);
                    databaseConnection.commit();
              System.out.println("Executed statement");
              convertToArray(thisResult);
              databaseConnection.close();
         } // end of try
         catch(ClassNotFoundException cnfe){
              System.err.println(cnfe);
         catch(SQLException sqle){
              System.err.println(sqle);
         catch(InstantiationException ie){
                        System.err.println(ie);
             catch(IllegalAccessException iae){
                        System.err.println(iae);
         public void convertToArray(ResultSet resultsIn) throws SQLException{
              this.resultsExist = false;
              String[] columnNames = new String[0];
              Vector dataRows = new Vector();
              ResultSetMetaData metadata = resultsIn.getMetaData();
              this.columnCount = metadata.getColumnCount();
              columnNames = new String[this.columnCount];
              for(int i = 0; i < this.columnCount; i++)
                   columnNames[i] = metadata.getColumnLabel(i+1);
              String[] rowData = new String[this.columnCount]; // Stores one row
              while(resultsIn.next()){ // For each row...
                   rowData = new String[this.columnCount]; // create array to hold thedata
                        for(int i = 0; i < this.columnCount; i++)// For each column
                        rowData[i] = resultsIn.getString(i+1); // retrieve the data item
                        dataRows.addElement(rowData); // Store the row in the vector
              this.results= new String[dataRows.size()][this.columnCount];
              this.data= new Object[dataRows.size()][this.columnCount];
              for(int column = 0; column < this.columnCount; column++)
                   for(int row = 0; row < dataRows.size(); row++){
              this.results[row][column] = ((String[])(dataRows.elementAt(row)))[column];
              this.data[row][column] = ((String[])(dataRows.elementAt(row)))[column];
              this.rowCount = dataRows.size();
              try{
                   if  (results[0][0].equals(null)){ this.resultsExist = false;} //ckecks results
                        else {this.resultsExist = true;}
                   catch (ArrayIndexOutOfBoundsException e){
                   System.out.println(e + "in catch");
                   this.resultsExist = false;
                   System.out.println("Value of exists in catch = " + this.resultsExist);
         }// end of set results
         public JTable getTable(Object[] columnNames) {
              table = new JTable(data, columnNames);
              return table;
         public int getColumnCount(){
              return this.columnCount;
         public int getRowCount(){
              return this.rowCount;
         public String getData(int row, int column){
              return this.results[row][column];
         public boolean doResultsExist(){
              return this.resultsExist;
    } // end of database InterfaceI developed this code about a year ago and maybe it is time to simplify it.
    With MySql I could create an instance of Database Interface or use one of its subclasses and perform any function on the database by calling its methods.
    maybe it is time for a redesign!
    thanks
    jim

  • DB quries wrt migration from oim 9.1 to oim 11g (11.1.1.5)

    Hi All,
    We have to do migration from oim9.1 to oim 11g (11.1.1.5) with new DB and AppServers.
    High level Steps are as follows
    1. import the existing OIm9.1 DB to new DB.
    2. Create Additional schemas (SOA,MDS) on new DB.
    3. Install OIm 11g and SOA applications on new servers
    4. Migrate new DB's OIm 9.1 Schema to support oim 11g (by running Oracle_IDM_Home/bin/ua.sh)
    5. Some other releated tasks (As mentioned in the upgrade guide)
    6. Migrate OIM application middlte tier
    7. Other tasks (As mentioned in the upgrade guide)
    Our requirement is
    Step 1, we have to import DevDB data to new tempDB and will proceed with new tempDB for migration.
    Then after, we wanted to import the tempDB to NewDevDB and then wanted to replace newDevDB data(which is imported from tempDB) with QA DB's data (its QA oim 9.1 DB). (We have limitations to take QADB at first time itself, thats why, we are taking Dev DBdata in step 1).
    My questions are
    1. What are the required changes required for Moving oim11g DB to another DB (by dumping the same DB).
    2. After, performing the migration, can we dump only the OIm 9.1 DBdata(QA) to OIm 11g DB? if yes, will it affect the oim 11g DB Schema.
    Please suggest me, or do let me know, if you need any other information.
    Thanks.

    I think, I can consider my Question #1 is as equal to Oracle Identity Manager Database Host and Port Changes, So I can use the steps mentioned in the link http://download.oracle.com/docs/cd/E21764_01/doc.1111/e14308/handlinglcm.htm#CIAJBHHH (Section: 13.1.1 Oracle Identity Manager Database Host and Port Changes). Do we need to do any additional modification with in any configuration files? Please, can any one confirm it.
    And Can any one help on my question #2.
    Edited by: user13285646 on Aug 11, 2011 12:46 PM

  • Migration from PC to Mac without losing application data (savegames etc.)

    Hello everyone,
    I am migrating from from my old Windows PC onto a MacBook Pro, and I'm having difficulties with iTunes and my iOS devices (iPhone 4, iPad 1). Maybe someone here can help me out, I'd be ever so grateful.
    I set up iTunes on my MBP yesterday and logged in to my account. I replaced the empty iTunes Media folder with my old one (which contains all my music, videos and applications) via an external hard drive.
    First problem: it wouldn't import these files into my new library automatically. Just showed me an empty library I think I imported the entire iTunes Media folder manually yesterday via "Add to folder". The status right now (after some experimentation) is old iTunes Media folder copied, but nothing imported (that is, I have an empty library).
    When I connected my iPhone and tried to synch, I first had to authorize the MacBook for the iPhone. So far, so good. However when I tried to synch iTunes warned me that if I synch, all data on the iPhone will be removed and replaced by the data from my new local library (which is, of couse a copy of my old library, but doesn't store application data like savegames).
    I tried to do it via "transfer purchased items from iPhone", which took forever, but yielded the same result: a warning that all data on the iPhone would be erased.
    So the question is: How do I connect my iPhone and iPad to iTunes on my new Mac without losing application data like settings and savegames? And why is this so complicated and intransparent? I should be able to just copy my media, say "authorize this Computer, then add iPhone to the registered devices" and then proceed like nothing ever changed.
    I searched the net until three in the morning yesterday, but couldn't find anything that sounded safe enough to give it a try.
    Thanks in advance and best Regards,
    Nate
    PS: I do have the backup-folders from my old PC on a USB stick - are those going to help?
    Message was edited by: Nathan1980 (Correction)
    Message was edited by: Nathan1980

    I was fighting this battle the past few days myself; but actually it is REALLY easy now. See here:
    http://www.macworld.com/article/146958/2010/03/moveitunes_windowsmac.html
    Then, once iTunes was on the Mac, I did this:
    1. On the Mac rename ...\iTunes\iTunes Library.itl as ...\iTunes\iTunes Library
    2. On the Mac delete ...\iTunes\iTunes Library Genius.itdb (Apparently the PC & Mac versions are not compatible - iTunes will just rebuild it later)
    3. Launch iTunes and immediately press & hold down the Option key until a dialog opens asking you to Choose a library. Navigate to the folder/drive you've copied from the PC and open ...\iTunes\iTunes Library.
    (thanks to turingtest2 for the above steps)
    That was it. Did it yesterday evening. All playlists, libraries, everything copied fine. No problems; no broken links. Perfect.

  • Migration from 8.0.5 to 8.1.7

    Hi everyone,
    I have been trying to migrate our db from 8.0.5 to 8.1.7 on Linux RedHat 6.2 for some time now. Oracle 8.0.5 was already installed and running properly. After shuting down the db, I installed 8.1.7 into a new ORACLE_HOME (/u01/app/oracle/product/8.1.7). The installation went without errors (I did not choose to do the migration during install nor did I installed a default db). After installing the patch (setup_stubs.sh script) I ran the odma (Oracle Data Migration Assistant) but got an error: "An error occured while starting up the database..." I checked the log that came with the error message and it occured when it was trying to open the database i.e. the instance started, but when it came for mounting the database it displayed: ORA-03113: end-of-file on communication channel. I tried to start the db with the svrmgrl and got the same error. The question is:
    Is there an easier way or another way to migrate the database after a successful installation of 8i?
    Or is there anyone knows why I get such an error?
    tks
    joss

    newbie9876324 wrote:
    Hi all
    I want to do data migration from oracle 10.2.0.5 to 8.1.7.4.0. I see there are risks to use exp/imp utility.
    So I thought if I can dump data to CSV and import it to 8.1.7.4 using sql*LOADER .
    Can sql*LOADER do migration from 10gR2 to 8i ?
    Or is there any way to do this ?
    ThankOther than the fundamental flaw in your approach, as already pointed out by other responders, let me address your specific question - "Can sql*LOADER do migration from 10gR2 to 8i ?"
    Think about that for a minute. What kind of file is sqlloader using as input? You already know -- a .csv file.
    And what property or attribute about a csv file would indicate that the data in it came from a particular version of an oracle database (or any database at all?) and so would be subject to any kind of compatibility issues?
    I'm NOT suggesting that you continue with this approach. It is still misguided in multiple ways. I'm just trying to get you to think about the question you asked.

  • Migration from WLI2.0 to WLI2.1 - problems and solutions

    We have experienced a number of issues when migrating from WLI2.0 (no service packs)
    to WLI2.1 - We are only using the WLPI (BPM) part of WLI. We decided to publish
    these issues in case they can be of help to others.
    Problems:
    1. The documentation (http://edocs.bea.com/wlintegration/v2_1/migrate/4zubemig.htm#998197)
    says the migration process works from WLPI 1.2.1 and from WLI 2.0 (SP2, 3, 4).
    What about WLI2.0 with no service packs - I don't see why BEA should have left
    out migration from that platform. We decided to follow the process and see what
    happened.
    2. There is no indication in the documentation of how to run the GUI based migration
    tools on Unix, only for Windows so we had to follow the manual route.
    3. The Manual process refers (http://edocs.bea.com/wlintegration/v2_1/migrate/4zubemig.htm#999969)
    to the DB variable setting scripts. It then says to run "migratedb.sh". None of
    these files have extensions ".sh" - the files that were installed have no extension.
    Obviously that did not stop us running them but the documentation needs correcting.
    4. The migratedb scripts calls "WLI_HOME/setenv.sh" - it is confusing that there
    is a second copy of this file in the bin folder called "setenv". Why are there
    2 copies. Also I note that the one in bin is executable and the other is not.
    All very confusing!!
    5. The migratedb script fails to run because we have not previously run setDomain.
    This is not documented.
    6. Running setDomain on a domain moved from a WLI2.0 installaion fails since it
    does not contain the expected folders. That basically means you cannot migrate
    such a domain. We carried on with the process using the bpmdomain so that we could
    at least migrate our database automatically.
    7. Having run setDomain, we tried migratedb again but it failed because we had
    not run switchdb. Again, this is not documented. We ran switchdb successfully.
    8. Now running migratedb creates a file called "migrate.sh". Unfortunately the
    script migratedb then attempts to run a file called "migrate". This is evidence
    that no-one has ever tested this script at BEA and we are very disconcerted by
    this fact!! We renamed the script and ran migratedb again - this time it ran the
    migrate script.
    9. This still fails with the following errors (when calling migrateCommonRep)
         -v (No such file or directory)
         null
         java.lang.NullPointerException
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:120)
         at com.bea.eci.migration.Migrate.getConnection(Migrate.java:207)
         at com.bea.eci.migration.Migrate.main(Migrate.java:73)
         java.lang.NullPointerException
         at com.bea.eci.migration.Migrate.main(Migrate.java:192)
    10. It also fails because it cannot find "sqlplus" - a fatal problem - we do not
    have sqlplus installed on the same machine as WLI and yet again this requirement
    is not documented. At this point we gave up trying to run the migrate script as
    there seemed to be no route forward.
    The process we took to move from WLI2.0 (WLPI only) was as follows:
    a. Since we had done no changes to filerealm.properties we simply copied the one
    fron bpmdomain into our own domain.
    b. We have been unable to run the step to migrate the common repository (see note
    9). If this is referring to the XML repository then that should not be a problem
    to us as we have not used it.
    c. We moved the "migrate/BPM_20SP3-21.sql" script to an NT machine and ran that
    script on our database. This seems to have successfully updated the database.
    Lastly, having completed the migration process we tried to run the server but
    it fails. This is because the startWeblogic script fails to call checkdomain properly.
    We modified the line to become:
         ". $WLI_HOME/bin/checkdomain"     # the '.' was missing
    Does anyone else have any experiences with this that would help us all?
    Pete

    Pete,
    Please post this to the weblogic.integration.interest and weblogic.integration.developer newsgroups?
    Pete Edwards wrote:
    We have experienced a number of issues when migrating from WLI2.0 (no service packs)
    to WLI2.1 - We are only using the WLPI (BPM) part of WLI. We decided to publish
    these issues in case they can be of help to others.
    Problems:
    1. The documentation (http://edocs.bea.com/wlintegration/v2_1/migrate/4zubemig.htm#998197)
    says the migration process works from WLPI 1.2.1 and from WLI 2.0 (SP2, 3, 4).
    What about WLI2.0 with no service packs - I don't see why BEA should have left
    out migration from that platform. We decided to follow the process and see what
    happened.
    2. There is no indication in the documentation of how to run the GUI based migration
    tools on Unix, only for Windows so we had to follow the manual route.
    3. The Manual process refers (http://edocs.bea.com/wlintegration/v2_1/migrate/4zubemig.htm#999969)
    to the DB variable setting scripts. It then says to run "migratedb.sh". None of
    these files have extensions ".sh" - the files that were installed have no extension.
    Obviously that did not stop us running them but the documentation needs correcting.
    4. The migratedb scripts calls "WLI_HOME/setenv.sh" - it is confusing that there
    is a second copy of this file in the bin folder called "setenv". Why are there
    2 copies. Also I note that the one in bin is executable and the other is not.
    All very confusing!!
    5. The migratedb script fails to run because we have not previously run setDomain.
    This is not documented.
    6. Running setDomain on a domain moved from a WLI2.0 installaion fails since it
    does not contain the expected folders. That basically means you cannot migrate
    such a domain. We carried on with the process using the bpmdomain so that we could
    at least migrate our database automatically.
    7. Having run setDomain, we tried migratedb again but it failed because we had
    not run switchdb. Again, this is not documented. We ran switchdb successfully.
    8. Now running migratedb creates a file called "migrate.sh". Unfortunately the
    script migratedb then attempts to run a file called "migrate". This is evidence
    that no-one has ever tested this script at BEA and we are very disconcerted by
    this fact!! We renamed the script and ran migratedb again - this time it ran the
    migrate script.
    9. This still fails with the following errors (when calling migrateCommonRep)
    -v (No such file or directory)
    null
    java.lang.NullPointerException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:120)
    at com.bea.eci.migration.Migrate.getConnection(Migrate.java:207)
    at com.bea.eci.migration.Migrate.main(Migrate.java:73)
    java.lang.NullPointerException
    at com.bea.eci.migration.Migrate.main(Migrate.java:192)
    10. It also fails because it cannot find "sqlplus" - a fatal problem - we do not
    have sqlplus installed on the same machine as WLI and yet again this requirement
    is not documented. At this point we gave up trying to run the migrate script as
    there seemed to be no route forward.
    The process we took to move from WLI2.0 (WLPI only) was as follows:
    a. Since we had done no changes to filerealm.properties we simply copied the one
    fron bpmdomain into our own domain.
    b. We have been unable to run the step to migrate the common repository (see note
    9). If this is referring to the XML repository then that should not be a problem
    to us as we have not used it.
    c. We moved the "migrate/BPM_20SP3-21.sql" script to an NT machine and ran that
    script on our database. This seems to have successfully updated the database.
    Lastly, having completed the migration process we tried to run the server but
    it fails. This is because the startWeblogic script fails to call checkdomain properly.
    We modified the line to become:
    ". $WLI_HOME/bin/checkdomain" # the '.' was missing
    Does anyone else have any experiences with this that would help us all?
    Pete--
    Developer Relations Engineer
    BEA Support

Maybe you are looking for

  • Access for the Public / Site problems

    What is the best way to give access to the Public & still keep the private sections / courses, etc. private? According to the docs, the All System credential's access permission should be updated to "Download" for the public to see anything. If I sel

  • Is there Java 6 for Mac as well?

    I am not so sure if i m asking this in the right place. is there a section dedicated for java 6? but i really like to know, if there's Java 6 beta for Mac as well. thanks.

  • How to remove white background from a jpeg ?

    Hi, i have an all black website as can be found here : http://www.cyclonecupshaker.co.uk and i am having issues with the standard ways of tracing an image. For some reason there is always some white specks that obviously stand out on a black backgrou

  • Leave request dumping java.lang.IndexOutOfBoundsException: Index: 0,Size:0

    Hi all, I'm sending this thread on behalf my colleague Vishnupriya. He is facing an issue when clicking on Leave Request link it throws an exception: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 They have recently installed Business Package

  • Actions won't play after update

    I just updated to PS CC 2014.  I uninstalled and reinstalled my actions to troubleshoot because they wont play when clicked on.  I also tried restarting my computer with no luck.  Does anyone know what I can do to fix this?  Thank you!