Thanks for your informative reply Brian:
Currently, Dali has a number of database-specific adapters that allow
us to
know
what to expect from the various databases. These adapters are keyed by
the vendor name returned by the DTP model. Currently, we have 3 nearly
identical adapters for DB2 with the following names:
DB2 UDB
DB2 UDB iSeries
DB2 UDB zSeries
DB2 UDB iSeries -- that is me!!!
If the DTP model does not match any of these names, we use a "default"
adapter....
That may be the problem, the DTP model my iSeries (i5 as it is now
called, ver 5, release 4 of the OS) may not match what Dali expects for
DB2 UDB iSeries and falls through to the default.
If you would like to help us out, you could debug the Dali code and
determine
what Dali has screwed up for your particular configuration. :-)
I'd be happy to help out! I have extened the eclipselink DB2Platform
class for the iSeries and contributed it. Tell me what to do. I can
also test against an IBM iSeries V5R4 for you.
I set up a separate Eclipse with the latest for these test, see previous
post.
Also, hopefully, we will fix, or allow workarounds to, some of these
sorts
of
problems when we add UI support for catalogs[1].
Is there anyway to tell Dali "hey use this adapter" instead of letting
it guess? Perhaps a property in persistence.xml?
I have to specify the database to eclipselink when I am not using
Dali(eclipselink.target-database) so coding a property isn't a hardship.
Regards
Bill Blalock
PS When opening persistence.xml with the database connection open I'll
get errors. No error when the connection is closed.
This is the stack trace in the detail view which is opened instead of
the persistence.xml editor. I've included them incase they are related
(first set of messages are from DTPDatabaseWrappers you mentioned).
java.lang.UnsupportedOperationException
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper$Vendor.getDefaultCatalog(DTPDatabaseWrapper.java:475)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.buildDefaultCatalog(DTPDatabaseWrapper.java:257)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCatalog(DTPDatabaseWrapper.java:251)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCatalog(DTPDatabaseWrapper.java:1)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseDefaultDbCatalog(GenericJpaProject.java:283)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseDefaultCatalog(GenericJpaProject.java:277)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDefaultCatalog(GenericJpaProject.java:273)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPersistenceUnit.buildDefaultCatalog(AbstractPersistenceUnit.java:1056)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPersistenceUnit.initializePersistenceUnitDefaults(AbstractPersistenceUnit.java:776)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPersistenceUnit.initialize(AbstractPersistenceUnit.java:735)
at
org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit.<init>(EclipseLinkPersistenceUnit.java:78)
at
org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory.buildPersistenceUnit(EclipseLinkJpaFactory.java:129)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPersistence.createPersistenceUnit(GenericPersistence.java:155)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPersistence.initializePersistenceUnits(GenericPersistence.java:128)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPersistence.initialize(GenericPersistence.java:122)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPersistence.<init>(GenericPersistence.java:43)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.buildPersistence(GenericJpaFactory.java:303)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPersistenceXml.buildPersistence(GenericPersistenceXml.java:161)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPersistenceXml.initialize(GenericPersistenceXml.java:120)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPersistenceXml.<init>(GenericPersistenceXml.java:44)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.buildPersistenceXml(GenericJpaFactory.java:299)
at
org.eclipse.jpt.core.internal.context.GenericRootContextNode.buildPersistenceXml(GenericRootContextNode.java:178)
at
org.eclipse.jpt.core.internal.context.GenericRootContextNode.<init>(GenericRootContextNode.java:60)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.buildRootContextNode(GenericJpaFactory.java:282)
at
org.eclipse.jpt.core.internal.GenericJpaProject.buildRootContextNode(GenericJpaProject.java:200)
at
org.eclipse.jpt.core.internal.GenericJpaProject.<init>(GenericJpaProject.java:159)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.buildJpaProject(GenericJpaFactory.java:259)
at
org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProjectHolder.buildJpaProject(GenericJpaModel.java:417)
at
org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProjectHolder.jpaProject(GenericJpaModel.java:405)
at
org.eclipse.jpt.core.internal.GenericJpaModel.getJpaProject(GenericJpaModel.java:75)
at
org.eclipse.jpt.core.internal.JpaModelManager.getJpaProject(JpaModelManager.java:178)
at
org.eclipse.jpt.core.JptCorePlugin.getJpaProject(JptCorePlugin.java:156)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.jpaProject(PersistenceEditor.java:303)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPersistenceUnitPages(PersistenceEditor.java:119)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPages(PersistenceEditor.java:109)
at
org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:146)
at
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:310)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:661)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:428)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:306)
at
org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
at
org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
at
org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at
org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
at
org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1209)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1608)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:499)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:485)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112)
at
org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63)
at
org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217)
at
org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207)
at
org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:779)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:678)
at
org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:639)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2817)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2729)
at
org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2721)
at
org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2673)
at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2668)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2652)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2643)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:646)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:605)
at
org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:318)
at
org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:160)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:228)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:207)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:274)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:250)
at
org.eclipse.jdt.internal.ui.navigator.OpenAndExpand.run(OpenAndExpand.java:50)
at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.java:221)
at
org.eclipse.ui.internal.navigator.CommonNavigatorManager$3.open(CommonNavigatorManager.java:184)
at
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:880)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at
org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818)
at
org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079)
at
org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewer.java:372)
at
org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1183)
at
org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:263)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:257)
at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:297)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)