Home » Eclipse Projects » Dali » Generate Entities from Tables not working
Generate Entities from Tables not working [message #435461] |
Fri, 13 February 2009 16:02 |
Karl Stenerud Messages: 2 Registered: July 2009 |
Junior Member |
|
|
I've just installed Dali 2.1 in eclipse 3.4.1 and I can't get the
"Generate entities from tables" function to work.
I have a database defined (I can see it in the Data Source Explorer, and I
can browse through the catalogs, schemas, tables etc) but when I try to
run the entity generator tool, it brings up a database connection dialog.
When I select my connection, it won't let me select a schema (it tells me
I must have an active connection to select a schema, but the connection
button is greyed out).
If I go back to the data source explorer and disconnect from the database,
the "connect" button will be selectable, but when I connect, I still can't
select a schema.
Dali is obviously able to see the schema because I can browse to it from
the data source explorer, so why can't the entity generator tool see it?
|
|
|
Re: Generate Entities from Tables not working [message #435463 is a reply to message #435461] |
Mon, 16 February 2009 14:55 |
Neil Hauge Messages: 475 Registered: July 2009 |
Senior Member |
|
|
Karl,
Are you using PostgreSQL? If so, I think you may have run into bug 259534
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=259534.
We have a fix for this coming out soon in 2.1 maintenance. There isn't a
good workaround for this issue, so rolling back to Dali 2.0.3 and waiting
for 2.1.1 might be your best option.
Neil
Karl Stenerud wrote:
> I've just installed Dali 2.1 in eclipse 3.4.1 and I can't get the
> "Generate entities from tables" function to work.
> I have a database defined (I can see it in the Data Source Explorer, and I
> can browse through the catalogs, schemas, tables etc) but when I try to
> run the entity generator tool, it brings up a database connection dialog.
> When I select my connection, it won't let me select a schema (it tells me
> I must have an active connection to select a schema, but the connection
> button is greyed out).
> If I go back to the data source explorer and disconnect from the database,
> the "connect" button will be selectable, but when I connect, I still can't
> select a schema.
> Dali is obviously able to see the schema because I can browse to it from
> the data source explorer, so why can't the entity generator tool see it?
|
|
|
Re: Generate Entities from Tables not working [message #435468 is a reply to message #435463] |
Tue, 10 March 2009 21:02 |
Bill Blalock Messages: 119 Registered: July 2009 Location: Alabama |
Senior Member |
|
|
I seem to be having a similar problem with DB2 for iSeries. The symptoms
match what Karl Stenerud described.
DB2 (any flavor) is no longer listed in "Connect Profile Types" list so I
used "Generic JDBC" and specified the JTOpen as400.jar file.
In the Data Source Explorer I can drill down through the system to the
schema I want. Everything works there.
Generate Entity from Table won't work because the schema's aren't listed.
If I could I'd override with the specific schema that I want but that
won't work either.
I looked over bug ID 259534. The problem could be is that i5 schemas
reported are the i5 "library names." An i5 "library name" allows the
characters @, #, $ as well as underscore. These non-standard characters
are shown in in the "data soure explorer" list of schemas.
I'd appreciate any suggestion to work around this.
So far I haven't come up with a any properties to specify to JDBC to limit
the schema which generate entities see. The "default schema filter" works
fine for the data source explorer but doesn't help the problem with
"generate entities".
Thanks all
Neil Hauge wrote:
> Karl,
> Are you using PostgreSQL? If so, I think you may have run into bug 259534
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=259534.
> We have a fix for this coming out soon in 2.1 maintenance. There isn't a
> good workaround for this issue, so rolling back to Dali 2.0.3 and waiting
> for 2.1.1 might be your best option.
> Neil
> Karl Stenerud wrote:
>> I've just installed Dali 2.1 in eclipse 3.4.1 and I can't get the
>> "Generate entities from tables" function to work.
>> I have a database defined (I can see it in the Data Source Explorer, and I
>> can browse through the catalogs, schemas, tables etc) but when I try to
>> run the entity generator tool, it brings up a database connection dialog.
>> When I select my connection, it won't let me select a schema (it tells me
>> I must have an active connection to select a schema, but the connection
>> button is greyed out).
>> If I go back to the data source explorer and disconnect from the database,
>> the "connect" button will be selectable, but when I connect, I still can't
>> select a schema.
>> Dali is obviously able to see the schema because I can browse to it from
>> the data source explorer, so why can't the entity generator tool see it?
|
|
|
Re: Generate Entities from Tables not working [message #435469 is a reply to message #435468] |
Wed, 11 March 2009 18:07 |
Neil Hauge Messages: 475 Registered: July 2009 |
Senior Member |
|
|
Bill,
It sounds like you need to get the DB2 Enablement plugins from DTP, which
you could do via the Ganymede update site. This should bring back the DB2
options in the connection wizard. I'm not sure if this will fix your
problem, but we should probably start there.
Neil
Bill Blalock wrote:
> I seem to be having a similar problem with DB2 for iSeries. The symptoms
> match what Karl Stenerud described.
> DB2 (any flavor) is no longer listed in "Connect Profile Types" list so I
> used "Generic JDBC" and specified the JTOpen as400.jar file.
> In the Data Source Explorer I can drill down through the system to the
> schema I want. Everything works there.
> Generate Entity from Table won't work because the schema's aren't listed.
> If I could I'd override with the specific schema that I want but that
> won't work either.
> I looked over bug ID 259534. The problem could be is that i5 schemas
> reported are the i5 "library names." An i5 "library name" allows the
> characters @, #, $ as well as underscore. These non-standard characters
> are shown in in the "data soure explorer" list of schemas.
> I'd appreciate any suggestion to work around this.
> So far I haven't come up with a any properties to specify to JDBC to limit
> the schema which generate entities see. The "default schema filter" works
> fine for the data source explorer but doesn't help the problem with
> "generate entities".
> Thanks all
> Neil Hauge wrote:
>> Karl,
>> Are you using PostgreSQL? If so, I think you may have run into bug 259534
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=259534.
>> We have a fix for this coming out soon in 2.1 maintenance. There isn't a
>> good workaround for this issue, so rolling back to Dali 2.0.3 and waiting
>> for 2.1.1 might be your best option.
>> Neil
>> Karl Stenerud wrote:
>>> I've just installed Dali 2.1 in eclipse 3.4.1 and I can't get the
>>> "Generate entities from tables" function to work.
>>> I have a database defined (I can see it in the Data Source Explorer, and I
>>> can browse through the catalogs, schemas, tables etc) but when I try to
>>> run the entity generator tool, it brings up a database connection dialog.
>>> When I select my connection, it won't let me select a schema (it tells me
>>> I must have an active connection to select a schema, but the connection
>>> button is greyed out).
>>> If I go back to the data source explorer and disconnect from the database,
>>> the "connect" button will be selectable, but when I connect, I still can't
>>> select a schema.
>>> Dali is obviously able to see the schema because I can browse to it from
>>> the data source explorer, so why can't the entity generator tool see it?
|
|
| |
Re: Generate Entities from Tables not working [message #435473 is a reply to message #435470] |
Mon, 16 March 2009 23:05 |
Brian Vosburgh Messages: 137 Registered: July 2009 |
Senior Member |
|
|
Bill,
I'm sorry you're suffering through this; but Dali's interface with the DTP model
has been a constant challenge for us. The challenge is amplified by the need to
test on all the various database servers and the various DTP "adapters" for
those databases. Unfortunately, we are unable to test across *all* the various
permutations. Our problem is there is no "standard" method for interacting with
the contents of the DTP metadata model. Depending on the database and the
specific adapter, some models have catalogs, some models have schemas, and some
models have both. This is reasonable for a UI (like the Data Source Explorer)
where the user simply pokes around the tree until s/he finds something useful.
This is not so reasonable when you have to navigate the model programmatically
and find things in expected places. On top of that, Dali has to determine the
"default" catalog and/or schema for the particular database. Not pretty.
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
If the DTP model does not match any of these names, we use a "default" adapter
that expects the DTP model to have catalogs (which, I think, DB2 does not have;
but the DTP metadata might...). This might be the cause of your problems, since
Dali would be looking for a "default" catalog (a catalog with the same name as
the user name) and, not finding it, not be able to find any schemas in the
non-existent catalog.
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. :-)
Also, hopefully, we will fix, or allow workarounds to, some of these sorts of
problems when we add UI support for catalogs[1].
Brian Vosburgh
[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=266535
Bill Blalock wrote:
> Neil Hauge wrote:
>
>> Bill,
>
>> It sounds like you need to get the DB2 Enablement plugins from DTP,
>> which you could do via the Ganymede update site. This should bring
>> back the DB2 options in the connection wizard. I'm not sure if this
>> will fix your problem, but we should probably start there.
>
>> Neil
>
> Thanks for your time Neil!
>
> No joy -- In a nut shell I loaded Dali R-2.1.11 in a fresh Eclipse. The
> DB2 enhancements are available but Dali can't run the Build entity from
> Table nor validate against the data base connection.
>
> See the gorry details below.
>
>
>> get the DB2 Enablement plugins from DTP
>
> I tried that and ended up disabling JPA in my working Eclipse. No
> errors in log but it no longer has a JPA perspective.
> Okay. Hmmm. Tried something else... This post mentioned the R-2.1.11
> so I built a new Eclipse following the directions on
> http://download.eclipse.org/webtools/downloads/drops/R2.1/R- 2.1.1-20090226062131/
>
>
> Since this is all latest and greated I downloaded Eclipselink 1.1RC
>
> I created a new workspace.
>
> This one has a JPA perspective and it had the DB2 options in connection
> wizard.
> Hurray!!
>
> But I get the same behavior of the JPA Tools create Entity from Tables
> is not showing any schema.
>
> Boo!!!!!!!!!!!!
>
> I manually built Entities.
>
> After I build the Entites JPA has a bunch of errors when the data base
> is connected, Schema cannot be resolved and Column cannot be resolved.
>
> I can disconnect the database, compile and run the tests successfully
> with these Entites. The Entities and persistence.xml works.
>
> This isn't new for for R-2.1.11, I saw same thing before. I am assuming
> these error are part of the same symptom, JPA being unable to get to the
> databases to read the schemas and validate the tables.
>
> Thanks
> Bill Blalock
>
>
>
>
>
>
|
|
|
Re: Generate Entities from Tables not working [message #435474 is a reply to message #435473] |
Tue, 17 March 2009 18:30 |
Bill Blalock Messages: 119 Registered: July 2009 Location: Alabama |
Senior Member |
|
|
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.getDef aultCatalog(DTPDatabaseWrapper.java:475)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.buildDefaultC atalog(DTPDatabaseWrapper.java:257)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCat alog(DTPDatabaseWrapper.java:251)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCat alog(DTPDatabaseWrapper.java:1)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseD efaultDbCatalog(GenericJpaProject.java:283)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseD efaultCatalog(GenericJpaProject.java:277)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDefaultCa talog(GenericJpaProject.java:273)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.buildDefaultCatalog(AbstractPersistenceUnit.ja va:1056)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.initializePersistenceUnitDefaults(AbstractPers istenceUnit.java:776)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.initialize(AbstractPersistenceUnit.java:735)
at
org.eclipse.jpt.eclipselink.core.internal.context.persistenc e.EclipseLinkPersistenceUnit. <init>(EclipseLinkPersistenceUnit.java:78)
at
org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFact ory.buildPersistenceUnit(EclipseLinkJpaFactory.java:129)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.createPersistenceUnit(GenericPersistence.java:155)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.initializePersistenceUnits(GenericPersistence.java: 128)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.initialize(GenericPersistence.java:122)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence. <init>(GenericPersistence.java:43)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldPersistence(GenericJpaFactory.java:303)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml.buildPersistence(GenericPersistenceXml.java:161)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml.initialize(GenericPersistenceXml.java:120)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml. <init>(GenericPersistenceXml.java:44)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldPersistenceXml(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.bui ldRootContextNode(GenericJpaFactory.java:282)
at
org.eclipse.jpt.core.internal.GenericJpaProject.buildRootCon textNode(GenericJpaProject.java:200)
at
org.eclipse.jpt.core.internal.GenericJpaProject.<init>(GenericJpaProject.java:159)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldJpaProject(GenericJpaFactory.java:259)
at
org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProj ectHolder.buildJpaProject(GenericJpaModel.java:417)
at
org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProj ectHolder.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(JptCorePlug in.java:156)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.jpaPro ject(PersistenceEditor.java:303)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPer sistenceUnitPages(PersistenceEditor.java:119)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPag es(PersistenceEditor.java:109)
at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEdito r.java:146)
at
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:310)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:661)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:428)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:594)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:30 6)
at
org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:180)
at
org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:270)
at
org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
at
org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:473)
at
org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1256)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1209)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:16 08)
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(Editor SashContainer.java:63)
at
org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
at
org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
at
org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:779)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:678)
at
org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:639)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2817)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2729)
at
org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPag e.java:2721)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.j ava:2673)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2668)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2652)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.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.openInE ditor(EditorUtility.java:318)
at
org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInE ditor(EditorUtility.java:160)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:22 8)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:20 7)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchR un(SelectionDispatchAction.java:274)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(Selec tionDispatchAction.java:250)
at
org.eclipse.jdt.internal.ui.navigator.OpenAndExpand.run(Open AndExpand.java:50)
at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.jav a:221)
at
org.eclipse.ui.internal.navigator.CommonNavigatorManager$3.o pen(CommonNavigatorManager.java:184)
at
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredV iewer.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:17 5)
at
org.eclipse.jface.viewers.StructuredViewer.fireOpen(Structur edViewer.java:818)
at
org.eclipse.jface.viewers.StructuredViewer.handleOpen(Struct uredViewer.java:1079)
at org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewe r.java:372)
at
org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Stru cturedViewer.java:1183)
at
org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrate gy.java:263)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.ja va:257)
at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate gy.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.ja va:3823)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3422)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 00)
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(Work bench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.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(EclipseS tarter.java:386)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.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)
|
|
|
Re: Generate Entities from Tables not working [message #435498 is a reply to message #435474] |
Wed, 18 March 2009 17:25 |
Brian Vosburgh Messages: 137 Registered: July 2009 |
Senior Member |
|
|
Bill,
the Dali code surrounding all this DTP stuff has changed a lot over the last few
months; so you might encounter different problems (or maybe no problems at all
:) ) if you try out a more current release (e.g. WTP 3.1 M6 is set to be
released soon).
Anyway, if you would like to research what Dali is doing with your DB2
connection, you can look at whether we have a "vendor" defined for it by
debugging the call to VendorRepository.getVendor(String). This will tell you (1)
what your DTP DB2 "adapter" says its name is and (2) whether Dali has a vendor
defined with a matching name.
Are you using a vanilla Eclipse JEE workspace? Or are you using additional
plug-ins? Do these plug-ins provide the DB2 adapter for DTP? If you are
interested in working on a DB2 interface, it would be more of an extension of
DTP than an extension of Dali. Dali simply uses the metadata provided by the DTP
metadata model; sometimes successfully, sometimes not. :-)
Brian Vosburgh
Bill Blalock wrote:
> 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.getDef aultCatalog(DTPDatabaseWrapper.java:475)
>
> at
> org.eclipse.jpt.db.internal.DTPDatabaseWrapper.buildDefaultC atalog(DTPDatabaseWrapper.java:257)
>
> at
> org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCat alog(DTPDatabaseWrapper.java:251)
>
> at
> org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCat alog(DTPDatabaseWrapper.java:1)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseD efaultDbCatalog(GenericJpaProject.java:283)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseD efaultCatalog(GenericJpaProject.java:277)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.getDefaultCa talog(GenericJpaProject.java:273)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.buildDefaultCatalog(AbstractPersistenceUnit.ja va:1056)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.initializePersistenceUnitDefaults(AbstractPers istenceUnit.java:776)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.initialize(AbstractPersistenceUnit.java:735)
>
> at
> org.eclipse.jpt.eclipselink.core.internal.context.persistenc e.EclipseLinkPersistenceUnit. <init>(EclipseLinkPersistenceUnit.java:78)
>
> at
> org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFact ory.buildPersistenceUnit(EclipseLinkJpaFactory.java:129)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.createPersistenceUnit(GenericPersistence.java:155)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.initializePersistenceUnits(GenericPersistence.java: 128)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.initialize(GenericPersistence.java:122)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence. <init>(GenericPersistence.java:43)
>
> at
> org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldPersistence(GenericJpaFactory.java:303)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml.buildPersistence(GenericPersistenceXml.java:161)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml.initialize(GenericPersistenceXml.java:120)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml. <init>(GenericPersistenceXml.java:44)
>
> at
> org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldPersistenceXml(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.bui ldRootContextNode(GenericJpaFactory.java:282)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.buildRootCon textNode(GenericJpaProject.java:200)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.<init>(GenericJpaProject.java:159)
>
> at
> org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldJpaProject(GenericJpaFactory.java:259)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProj ectHolder.buildJpaProject(GenericJpaModel.java:417)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProj ectHolder.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(JptCorePlug in.java:156)
> at
> org.eclipse.jpt.ui.internal.editors.PersistenceEditor.jpaPro ject(PersistenceEditor.java:303)
>
> at
> org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPer sistenceUnitPages(PersistenceEditor.java:119)
>
> at
> org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPag es(PersistenceEditor.java:109)
>
> at
> org.eclipse.ui.forms.editor.FormEditor.createPages(FormEdito r.java:146)
> at
> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:310)
>
> at
> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:661)
>
> at
> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:428)
>
> at
> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:594)
>
> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:30 6)
> at
> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:180)
>
> at
> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:270)
>
> at
> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>
> at
> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:473)
>
> at
> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1256)
>
> at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1209)
> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:16 08)
> 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(Editor SashContainer.java:63)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>
> at
> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:779)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:678)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:639)
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2817)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2729)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPag e.java:2721)
> at
> org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.j ava:2673)
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2668)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2652)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.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.openInE ditor(EditorUtility.java:318)
>
> at
> org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInE ditor(EditorUtility.java:160)
>
> at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:22 8)
> at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:20 7)
> at
> org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchR un(SelectionDispatchAction.java:274)
>
> at
> org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(Selec tionDispatchAction.java:250)
>
> at
> org.eclipse.jdt.internal.ui.navigator.OpenAndExpand.run(Open AndExpand.java:50)
>
> at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.jav a:221)
> at
> org.eclipse.ui.internal.navigator.CommonNavigatorManager$3.o pen(CommonNavigatorManager.java:184)
>
> at
> org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredV iewer.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:17 5)
> at
> org.eclipse.jface.viewers.StructuredViewer.fireOpen(Structur edViewer.java:818)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.handleOpen(Struct uredViewer.java:1079)
>
> at
> org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewe r.java:372)
> at
> org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Stru cturedViewer.java:1183)
>
> at
> org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrate gy.java:263)
> at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.ja va:257)
> at
> org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate gy.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.ja va:3823)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3422)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2384)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 00)
> 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(Work bench.java:490)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.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(EclipseS tarter.java:386)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.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)
>
>
>
>
|
|
| | | | | | | | | | | | | | | | |
Re: Generate Entities from Tables not working [message #514742 is a reply to message #435461] |
Tue, 16 February 2010 14:17 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
I reported this problem with the Galileo version to DTP around 6 months ago. At that time there were a lot of bugs outstanding for SQL Server and DTP, and all I got was that DTP team was lacking manpower to solve this problem, so they would fix it presumably in the 1.7.2 version.
Now I realise this is more a Dali matter than DTP's. However, the problem continues, no matter I'm using SR1 release of Galileo and Dali Java Persistence Tools 2.2.1.v200908270220. In fact, using jTDS one may even list the schemas in the SQL Server database and create the entities, but the Java output is surrounded by quotes in the bean's variables names, who have also escape backslash characters, and thus the code generated is quite useless and little legible.
If you use the standard SQL Server JDBC you don't get lists of schemas or anything else. My SQL Server version is 2000 (quite old); if you substitute the JDBC driver for that belonging to SQL Server 2005, the only schema you get is your own, for SQL Server 2005 began using schemas rather than user names for this function.
So, this seems to be a generalised problem. On Ganymede Dali version, it works fine with either the MSSQL 2000 or jTDS JDBC drivers.
Please fix this asap, for I cannot migrate to Galileo and thus I have no support for using Facelets in my code, which I really want to use for it will ease my job greatly!!! Thanks in advance.
|
|
|
Re: Generate Entities from Tables not working [message #517037 is a reply to message #514742] |
Thu, 25 February 2010 20:13 |
Brian Vosburgh Messages: 137 Registered: July 2009 |
Senior Member |
|
|
Guillermo,
I'm not sure I understand your problem exactly.
When you create your DTP Connection Profile, what Connection Profile Type do you use? SQL Server?
Once you have created your Connection Profile and connected to your database server, do you see your databases and tables in the DTP Data Source Explorer?
Have you changed your project default catalog and schema (via the Project Properties dialog -> Java Persistence)? Are any catalogs or schemata listed in the drop-down lists in the Connection section of the Java Persistence properties page? The list of catalogs on this page should match the databases listed in the Data Source Explorer. (I'm not sure where the schemata can be found via DTP....)
Minus any bugs, Dali is simply displaying the catalogs and schemata provided by DTP. This is problematic because of the variety of DTP driver implementations.
Unfortunately, I don't have a MS SQL Server to test against; but I do have a Sybase Adaptive Server (which is very similar), and I can see the catalogs and schemata fine with that release of Dali.
Also, the reason you are seeing quoted identifiers when using jTDS is probably because Dali does not recognize the name of the vendor returned by DTP in that situation. Which DTP Connection Profile Type do you use? Are you using lowercase letters in your table and column names? By default, if Dali does not recognize the vendor, it will treat names according to the SQL Standard, which expects non-delimited identifiers to be folded to uppercase. As a result, any non-uppercase identifiers must be delimited.
Brian
|
|
|
Re: Generate Entities from Tables not working [message #538867 is a reply to message #514742] |
Tue, 08 June 2010 20:25 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
Guillermo Aldunate wrote on Tue, 16 February 2010 09:17 | I reported this problem with the Galileo version to DTP around 6 months ago. At that time there were a lot of bugs outstanding for SQL Server and DTP, and all I got was that DTP team was lacking manpower to solve this problem, so they would fix it presumably in the 1.7.2 version.
Now I realise this is more a Dali matter than DTP's. However, the problem continues, no matter I'm using SR1 release of Galileo and Dali Java Persistence Tools 2.2.1.v200908270220. In fact, using jTDS one may even list the schemas in the SQL Server database and create the entities, but the Java output is surrounded by quotes in the bean's variables names, who have also escape backslash characters, and thus the code generated is quite useless and little legible.
If you use the standard SQL Server JDBC you don't get lists of schemas or anything else. My SQL Server version is 2000 (quite old); if you substitute the JDBC driver for that belonging to SQL Server 2005, the only schema you get is your own, for SQL Server 2005 began using schemas rather than user names for this function.
So, this seems to be a generalised problem. On Ganymede Dali version, it works fine with either the MSSQL 2000 or jTDS JDBC drivers.
Please fix this asap, for I cannot migrate to Galileo and thus I have no support for using Facelets in my code, which I really want to use for it will ease my job greatly!!! Thanks in advance.
|
|
|
|
Re: Generate Entities from Tables not working [message #538869 is a reply to message #514742] |
Tue, 08 June 2010 20:26 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
Guillermo Aldunate wrote on Tue, 16 February 2010 09:17 | I reported this problem with the Galileo version to DTP around 6 months ago. At that time there were a lot of bugs outstanding for SQL Server and DTP, and all I got was that DTP team was lacking manpower to solve this problem, so they would fix it presumably in the 1.7.2 version.
Now I realise this is more a Dali matter than DTP's. However, the problem continues, no matter I'm using SR1 release of Galileo and Dali Java Persistence Tools 2.2.1.v200908270220. In fact, using jTDS one may even list the schemas in the SQL Server database and create the entities, but the Java output is surrounded by quotes in the bean's variables names, who have also escape backslash characters, and thus the code generated is quite useless and little legible.
If you use the standard SQL Server JDBC you don't get lists of schemas or anything else. My SQL Server version is 2000 (quite old); if you substitute the JDBC driver for that belonging to SQL Server 2005, the only schema you get is your own, for SQL Server 2005 began using schemas rather than user names for this function.
So, this seems to be a generalised problem. On Ganymede Dali version, it works fine with either the MSSQL 2000 or jTDS JDBC drivers.
Please fix this asap, for I cannot migrate to Galileo and thus I have no support for using Facelets in my code, which I really want to use for it will ease my job greatly!!! Thanks in advance.
|
|
|
|
Re: Generate Entities from Tables not working [message #538875 is a reply to message #517037] |
Tue, 08 June 2010 20:46 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
Hello Brian, sorry but I didn't get your answer before. All I can say is things haven't improved regarding SQL Server 2000 and DTP.I "upgraded" to Galileo 3.5SR2 and it continues not to work. When you define a connection using MS SQL Server (with the same JDBC drivers and definitions I use with Eclipse 3.4.2, or Ganymede, which works fine), you may not see any tables other than those defined under your user defined under SQL Server.
It's funny, because in the meantime I developed an application using IBM DB2 LUW (that supports schemas and all those gadgets a true relational database should support) and it is working fine. I had no problems whatsoever to recognise and work with all sorts of database objects.
It seems to me that between the 2000 and 2005 versions of MS SQL Server there was a change in the way the schemas were addressed. Whereas in the 2000 version there were no schemas (only users), in 2005 and newer versions the schema facility was implemented (in fact, if you use the JDBC driver for 2005 with 2000 in Ganymede, it will work but it will give you the same problem I'm reporting here, which is equivalent to say that it doesn't work).
If you use the jTDS driver with both Ganymede and Galileo, you get exactly the same behaviour as with MS SQL Server 2000 JDBC driver.
Please reopen this issue and try to solve it for we are still using Ganymede and it lacks many features from Galileo we would like to have available.
Best regards, Guillermo
|
|
| |
Re: Generate Entities from Tables not working [message #614914 is a reply to message #435461] |
Mon, 16 February 2009 14:55 |
Neil Hauge Messages: 475 Registered: July 2009 |
Senior Member |
|
|
Karl,
Are you using PostgreSQL? If so, I think you may have run into bug 259534
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=259534
We have a fix for this coming out soon in 2.1 maintenance. There isn't a
good workaround for this issue, so rolling back to Dali 2.0.3 and waiting
for 2.1.1 might be your best option.
Neil
Karl Stenerud wrote:
> I've just installed Dali 2.1 in eclipse 3.4.1 and I can't get the
> "Generate entities from tables" function to work.
> I have a database defined (I can see it in the Data Source Explorer, and I
> can browse through the catalogs, schemas, tables etc) but when I try to
> run the entity generator tool, it brings up a database connection dialog.
> When I select my connection, it won't let me select a schema (it tells me
> I must have an active connection to select a schema, but the connection
> button is greyed out).
> If I go back to the data source explorer and disconnect from the database,
> the "connect" button will be selectable, but when I connect, I still can't
> select a schema.
> Dali is obviously able to see the schema because I can browse to it from
> the data source explorer, so why can't the entity generator tool see it?
|
|
|
Re: Generate Entities from Tables not working [message #614924 is a reply to message #435463] |
Tue, 10 March 2009 21:02 |
Bill Blalock Messages: 119 Registered: July 2009 Location: Alabama |
Senior Member |
|
|
I seem to be having a similar problem with DB2 for iSeries. The symptoms
match what Karl Stenerud described.
DB2 (any flavor) is no longer listed in "Connect Profile Types" list so I
used "Generic JDBC" and specified the JTOpen as400.jar file.
In the Data Source Explorer I can drill down through the system to the
schema I want. Everything works there.
Generate Entity from Table won't work because the schema's aren't listed.
If I could I'd override with the specific schema that I want but that
won't work either.
I looked over bug ID 259534. The problem could be is that i5 schemas
reported are the i5 "library names." An i5 "library name" allows the
characters @, #, $ as well as underscore. These non-standard characters
are shown in in the "data soure explorer" list of schemas.
I'd appreciate any suggestion to work around this.
So far I haven't come up with a any properties to specify to JDBC to limit
the schema which generate entities see. The "default schema filter" works
fine for the data source explorer but doesn't help the problem with
"generate entities".
Thanks all
Neil Hauge wrote:
> Karl,
> Are you using PostgreSQL? If so, I think you may have run into bug 259534
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=259534
> We have a fix for this coming out soon in 2.1 maintenance. There isn't a
> good workaround for this issue, so rolling back to Dali 2.0.3 and waiting
> for 2.1.1 might be your best option.
> Neil
> Karl Stenerud wrote:
>> I've just installed Dali 2.1 in eclipse 3.4.1 and I can't get the
>> "Generate entities from tables" function to work.
>> I have a database defined (I can see it in the Data Source Explorer, and I
>> can browse through the catalogs, schemas, tables etc) but when I try to
>> run the entity generator tool, it brings up a database connection dialog.
>> When I select my connection, it won't let me select a schema (it tells me
>> I must have an active connection to select a schema, but the connection
>> button is greyed out).
>> If I go back to the data source explorer and disconnect from the database,
>> the "connect" button will be selectable, but when I connect, I still can't
>> select a schema.
>> Dali is obviously able to see the schema because I can browse to it from
>> the data source explorer, so why can't the entity generator tool see it?
|
|
|
Re: Generate Entities from Tables not working [message #614927 is a reply to message #435468] |
Wed, 11 March 2009 18:07 |
Neil Hauge Messages: 475 Registered: July 2009 |
Senior Member |
|
|
Bill,
It sounds like you need to get the DB2 Enablement plugins from DTP, which
you could do via the Ganymede update site. This should bring back the DB2
options in the connection wizard. I'm not sure if this will fix your
problem, but we should probably start there.
Neil
Bill Blalock wrote:
> I seem to be having a similar problem with DB2 for iSeries. The symptoms
> match what Karl Stenerud described.
> DB2 (any flavor) is no longer listed in "Connect Profile Types" list so I
> used "Generic JDBC" and specified the JTOpen as400.jar file.
> In the Data Source Explorer I can drill down through the system to the
> schema I want. Everything works there.
> Generate Entity from Table won't work because the schema's aren't listed.
> If I could I'd override with the specific schema that I want but that
> won't work either.
> I looked over bug ID 259534. The problem could be is that i5 schemas
> reported are the i5 "library names." An i5 "library name" allows the
> characters @, #, $ as well as underscore. These non-standard characters
> are shown in in the "data soure explorer" list of schemas.
> I'd appreciate any suggestion to work around this.
> So far I haven't come up with a any properties to specify to JDBC to limit
> the schema which generate entities see. The "default schema filter" works
> fine for the data source explorer but doesn't help the problem with
> "generate entities".
> Thanks all
> Neil Hauge wrote:
>> Karl,
>> Are you using PostgreSQL? If so, I think you may have run into bug 259534
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=259534
>> We have a fix for this coming out soon in 2.1 maintenance. There isn't a
>> good workaround for this issue, so rolling back to Dali 2.0.3 and waiting
>> for 2.1.1 might be your best option.
>> Neil
>> Karl Stenerud wrote:
>>> I've just installed Dali 2.1 in eclipse 3.4.1 and I can't get the
>>> "Generate entities from tables" function to work.
>>> I have a database defined (I can see it in the Data Source Explorer, and I
>>> can browse through the catalogs, schemas, tables etc) but when I try to
>>> run the entity generator tool, it brings up a database connection dialog.
>>> When I select my connection, it won't let me select a schema (it tells me
>>> I must have an active connection to select a schema, but the connection
>>> button is greyed out).
>>> If I go back to the data source explorer and disconnect from the database,
>>> the "connect" button will be selectable, but when I connect, I still can't
>>> select a schema.
>>> Dali is obviously able to see the schema because I can browse to it from
>>> the data source explorer, so why can't the entity generator tool see it?
|
|
| |
Re: Generate Entities from Tables not working [message #614938 is a reply to message #435470] |
Mon, 16 March 2009 23:05 |
Brian Vosburgh Messages: 137 Registered: July 2009 |
Senior Member |
|
|
Bill,
I'm sorry you're suffering through this; but Dali's interface with the DTP model
has been a constant challenge for us. The challenge is amplified by the need to
test on all the various database servers and the various DTP "adapters" for
those databases. Unfortunately, we are unable to test across *all* the various
permutations. Our problem is there is no "standard" method for interacting with
the contents of the DTP metadata model. Depending on the database and the
specific adapter, some models have catalogs, some models have schemas, and some
models have both. This is reasonable for a UI (like the Data Source Explorer)
where the user simply pokes around the tree until s/he finds something useful.
This is not so reasonable when you have to navigate the model programmatically
and find things in expected places. On top of that, Dali has to determine the
"default" catalog and/or schema for the particular database. Not pretty.
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
If the DTP model does not match any of these names, we use a "default" adapter
that expects the DTP model to have catalogs (which, I think, DB2 does not have;
but the DTP metadata might...). This might be the cause of your problems, since
Dali would be looking for a "default" catalog (a catalog with the same name as
the user name) and, not finding it, not be able to find any schemas in the
non-existent catalog.
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. :-)
Also, hopefully, we will fix, or allow workarounds to, some of these sorts of
problems when we add UI support for catalogs[1].
Brian Vosburgh
[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=266535
Bill Blalock wrote:
> Neil Hauge wrote:
>
>> Bill,
>
>> It sounds like you need to get the DB2 Enablement plugins from DTP,
>> which you could do via the Ganymede update site. This should bring
>> back the DB2 options in the connection wizard. I'm not sure if this
>> will fix your problem, but we should probably start there.
>
>> Neil
>
> Thanks for your time Neil!
>
> No joy -- In a nut shell I loaded Dali R-2.1.11 in a fresh Eclipse. The
> DB2 enhancements are available but Dali can't run the Build entity from
> Table nor validate against the data base connection.
>
> See the gorry details below.
>
>
>> get the DB2 Enablement plugins from DTP
>
> I tried that and ended up disabling JPA in my working Eclipse. No
> errors in log but it no longer has a JPA perspective.
> Okay. Hmmm. Tried something else... This post mentioned the R-2.1.11
> so I built a new Eclipse following the directions on
> http://download.eclipse.org/webtools/downloads/drops/R2.1/R- 2.1.1-20090226062131/
>
>
> Since this is all latest and greated I downloaded Eclipselink 1.1RC
>
> I created a new workspace.
>
> This one has a JPA perspective and it had the DB2 options in connection
> wizard.
> Hurray!!
>
> But I get the same behavior of the JPA Tools create Entity from Tables
> is not showing any schema.
>
> Boo!!!!!!!!!!!!
>
> I manually built Entities.
>
> After I build the Entites JPA has a bunch of errors when the data base
> is connected, Schema cannot be resolved and Column cannot be resolved.
>
> I can disconnect the database, compile and run the tests successfully
> with these Entites. The Entities and persistence.xml works.
>
> This isn't new for for R-2.1.11, I saw same thing before. I am assuming
> these error are part of the same symptom, JPA being unable to get to the
> databases to read the schemas and validate the tables.
>
> Thanks
> Bill Blalock
>
>
>
>
>
>
|
|
|
Re: Generate Entities from Tables not working [message #614941 is a reply to message #435473] |
Tue, 17 March 2009 18:30 |
Bill Blalock Messages: 119 Registered: July 2009 Location: Alabama |
Senior Member |
|
|
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.getDef aultCatalog(DTPDatabaseWrapper.java:475)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.buildDefaultC atalog(DTPDatabaseWrapper.java:257)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCat alog(DTPDatabaseWrapper.java:251)
at
org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCat alog(DTPDatabaseWrapper.java:1)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseD efaultDbCatalog(GenericJpaProject.java:283)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseD efaultCatalog(GenericJpaProject.java:277)
at
org.eclipse.jpt.core.internal.GenericJpaProject.getDefaultCa talog(GenericJpaProject.java:273)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.buildDefaultCatalog(AbstractPersistenceUnit.ja va:1056)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.initializePersistenceUnitDefaults(AbstractPers istenceUnit.java:776)
at
org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.initialize(AbstractPersistenceUnit.java:735)
at
org.eclipse.jpt.eclipselink.core.internal.context.persistenc e.EclipseLinkPersistenceUnit. <init>(EclipseLinkPersistenceUnit.java:78)
at
org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFact ory.buildPersistenceUnit(EclipseLinkJpaFactory.java:129)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.createPersistenceUnit(GenericPersistence.java:155)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.initializePersistenceUnits(GenericPersistence.java: 128)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.initialize(GenericPersistence.java:122)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence. <init>(GenericPersistence.java:43)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldPersistence(GenericJpaFactory.java:303)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml.buildPersistence(GenericPersistenceXml.java:161)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml.initialize(GenericPersistenceXml.java:120)
at
org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml. <init>(GenericPersistenceXml.java:44)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldPersistenceXml(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.bui ldRootContextNode(GenericJpaFactory.java:282)
at
org.eclipse.jpt.core.internal.GenericJpaProject.buildRootCon textNode(GenericJpaProject.java:200)
at
org.eclipse.jpt.core.internal.GenericJpaProject.<init>(GenericJpaProject.java:159)
at
org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldJpaProject(GenericJpaFactory.java:259)
at
org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProj ectHolder.buildJpaProject(GenericJpaModel.java:417)
at
org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProj ectHolder.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(JptCorePlug in.java:156)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.jpaPro ject(PersistenceEditor.java:303)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPer sistenceUnitPages(PersistenceEditor.java:119)
at
org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPag es(PersistenceEditor.java:109)
at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEdito r.java:146)
at
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:310)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:661)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:428)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:594)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:30 6)
at
org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:180)
at
org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:270)
at
org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
at
org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:473)
at
org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1256)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1209)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:16 08)
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(Editor SashContainer.java:63)
at
org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
at
org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
at
org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:779)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:678)
at
org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:639)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2817)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2729)
at
org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPag e.java:2721)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.j ava:2673)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2668)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2652)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.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.openInE ditor(EditorUtility.java:318)
at
org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInE ditor(EditorUtility.java:160)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:22 8)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:20 7)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchR un(SelectionDispatchAction.java:274)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(Selec tionDispatchAction.java:250)
at
org.eclipse.jdt.internal.ui.navigator.OpenAndExpand.run(Open AndExpand.java:50)
at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.jav a:221)
at
org.eclipse.ui.internal.navigator.CommonNavigatorManager$3.o pen(CommonNavigatorManager.java:184)
at
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredV iewer.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:17 5)
at
org.eclipse.jface.viewers.StructuredViewer.fireOpen(Structur edViewer.java:818)
at
org.eclipse.jface.viewers.StructuredViewer.handleOpen(Struct uredViewer.java:1079)
at org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewe r.java:372)
at
org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Stru cturedViewer.java:1183)
at
org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrate gy.java:263)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.ja va:257)
at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate gy.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.ja va:3823)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3422)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 00)
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(Work bench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.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(EclipseS tarter.java:386)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.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)
|
|
|
Re: Generate Entities from Tables not working [message #615746 is a reply to message #435474] |
Wed, 18 March 2009 17:25 |
Brian Vosburgh Messages: 137 Registered: July 2009 |
Senior Member |
|
|
Bill,
the Dali code surrounding all this DTP stuff has changed a lot over the last few
months; so you might encounter different problems (or maybe no problems at all
:) ) if you try out a more current release (e.g. WTP 3.1 M6 is set to be
released soon).
Anyway, if you would like to research what Dali is doing with your DB2
connection, you can look at whether we have a "vendor" defined for it by
debugging the call to VendorRepository.getVendor(String). This will tell you (1)
what your DTP DB2 "adapter" says its name is and (2) whether Dali has a vendor
defined with a matching name.
Are you using a vanilla Eclipse JEE workspace? Or are you using additional
plug-ins? Do these plug-ins provide the DB2 adapter for DTP? If you are
interested in working on a DB2 interface, it would be more of an extension of
DTP than an extension of Dali. Dali simply uses the metadata provided by the DTP
metadata model; sometimes successfully, sometimes not. :-)
Brian Vosburgh
Bill Blalock wrote:
> 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.getDef aultCatalog(DTPDatabaseWrapper.java:475)
>
> at
> org.eclipse.jpt.db.internal.DTPDatabaseWrapper.buildDefaultC atalog(DTPDatabaseWrapper.java:257)
>
> at
> org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCat alog(DTPDatabaseWrapper.java:251)
>
> at
> org.eclipse.jpt.db.internal.DTPDatabaseWrapper.getDefaultCat alog(DTPDatabaseWrapper.java:1)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseD efaultDbCatalog(GenericJpaProject.java:283)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.getDatabaseD efaultCatalog(GenericJpaProject.java:277)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.getDefaultCa talog(GenericJpaProject.java:273)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.buildDefaultCatalog(AbstractPersistenceUnit.ja va:1056)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.initializePersistenceUnitDefaults(AbstractPers istenceUnit.java:776)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.AbstractPe rsistenceUnit.initialize(AbstractPersistenceUnit.java:735)
>
> at
> org.eclipse.jpt.eclipselink.core.internal.context.persistenc e.EclipseLinkPersistenceUnit. <init>(EclipseLinkPersistenceUnit.java:78)
>
> at
> org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFact ory.buildPersistenceUnit(EclipseLinkJpaFactory.java:129)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.createPersistenceUnit(GenericPersistence.java:155)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.initializePersistenceUnits(GenericPersistence.java: 128)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence.initialize(GenericPersistence.java:122)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistence. <init>(GenericPersistence.java:43)
>
> at
> org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldPersistence(GenericJpaFactory.java:303)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml.buildPersistence(GenericPersistenceXml.java:161)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml.initialize(GenericPersistenceXml.java:120)
>
> at
> org.eclipse.jpt.core.internal.context.persistence.GenericPer sistenceXml. <init>(GenericPersistenceXml.java:44)
>
> at
> org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldPersistenceXml(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.bui ldRootContextNode(GenericJpaFactory.java:282)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.buildRootCon textNode(GenericJpaProject.java:200)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaProject.<init>(GenericJpaProject.java:159)
>
> at
> org.eclipse.jpt.core.internal.platform.GenericJpaFactory.bui ldJpaProject(GenericJpaFactory.java:259)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProj ectHolder.buildJpaProject(GenericJpaModel.java:417)
>
> at
> org.eclipse.jpt.core.internal.GenericJpaModel$DefaultJpaProj ectHolder.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(JptCorePlug in.java:156)
> at
> org.eclipse.jpt.ui.internal.editors.PersistenceEditor.jpaPro ject(PersistenceEditor.java:303)
>
> at
> org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPer sistenceUnitPages(PersistenceEditor.java:119)
>
> at
> org.eclipse.jpt.ui.internal.editors.PersistenceEditor.addPag es(PersistenceEditor.java:109)
>
> at
> org.eclipse.ui.forms.editor.FormEditor.createPages(FormEdito r.java:146)
> at
> org.eclipse.ui.part.MultiPageEditorPart.createPartControl(Mu ltiPageEditorPart.java:310)
>
> at
> org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:661)
>
> at
> org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:428)
>
> at
> org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:594)
>
> at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:30 6)
> at
> org.eclipse.ui.internal.presentations.PresentablePart.setVis ible(PresentablePart.java:180)
>
> at
> org.eclipse.ui.internal.presentations.util.PresentablePartFo lder.select(PresentablePartFolder.java:270)
>
> at
> org.eclipse.ui.internal.presentations.util.LeftToRightTabOrd er.select(LeftToRightTabOrder.java:65)
>
> at
> org.eclipse.ui.internal.presentations.util.TabbedStackPresen tation.selectPart(TabbedStackPresentation.java:473)
>
> at
> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:1256)
>
> at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:1209)
> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:16 08)
> 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(Editor SashContainer.java:63)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorA reaHelper.java:217)
>
> at
> org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAre aHelper.java:207)
>
> at
> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:779)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:678)
>
> at
> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:639)
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2817)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2729)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPag e.java:2721)
> at
> org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.j ava:2673)
> at
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2668)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2652)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.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.openInE ditor(EditorUtility.java:318)
>
> at
> org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInE ditor(EditorUtility.java:160)
>
> at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:22 8)
> at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:20 7)
> at
> org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchR un(SelectionDispatchAction.java:274)
>
> at
> org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(Selec tionDispatchAction.java:250)
>
> at
> org.eclipse.jdt.internal.ui.navigator.OpenAndExpand.run(Open AndExpand.java:50)
>
> at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.jav a:221)
> at
> org.eclipse.ui.internal.navigator.CommonNavigatorManager$3.o pen(CommonNavigatorManager.java:184)
>
> at
> org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredV iewer.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:17 5)
> at
> org.eclipse.jface.viewers.StructuredViewer.fireOpen(Structur edViewer.java:818)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.handleOpen(Struct uredViewer.java:1079)
>
> at
> org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewe r.java:372)
> at
> org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Stru cturedViewer.java:1183)
>
> at
> org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrate gy.java:263)
> at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.ja va:257)
> at
> org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate gy.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.ja va:3823)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3422)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2384)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 00)
> 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(Work bench.java:490)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.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(EclipseS tarter.java:386)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.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)
>
>
>
>
|
|
| | | | | | | | | | | | | | | | |
Re: Generate Entities from Tables not working [message #618858 is a reply to message #435461] |
Tue, 16 February 2010 14:17 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
I reported this problem with the Galileo version to DTP around 6 months ago. At that time there were a lot of bugs outstanding for SQL Server and DTP, and all I got was that DTP team was lacking manpower to solve this problem, so they would fix it presumably in the 1.7.2 version.
Now I realise this is more a Dali matter than DTP's. However, the problem continues, no matter I'm using SR1 release of Galileo and Dali Java Persistence Tools 2.2.1.v200908270220. In fact, using jTDS one may even list the schemas in the SQL Server database and create the entities, but the Java output is surrounded by quotes in the bean's variables names, who have also escape backslash characters, and thus the code generated is quite useless and little legible.
If you use the standard SQL Server JDBC you don't get lists of schemas or anything else. My SQL Server version is 2000 (quite old); if you substitute the JDBC driver for that belonging to SQL Server 2005, the only schema you get is your own, for SQL Server 2005 began using schemas rather than user names for this function.
So, this seems to be a generalised problem. On Ganymede Dali version, it works fine with either the MSSQL 2000 or jTDS JDBC drivers.
Please fix this asap, for I cannot migrate to Galileo and thus I have no support for using Facelets in my code, which I really want to use for it will ease my job greatly!!! Thanks in advance.
|
|
|
Re: Generate Entities from Tables not working [message #618859 is a reply to message #618858] |
Thu, 25 February 2010 20:13 |
Brian Vosburgh Messages: 137 Registered: July 2009 |
Senior Member |
|
|
Guillermo,
I'm not sure I understand your problem exactly.
When you create your DTP Connection Profile, what Connection Profile Type do you use? SQL Server?
Once you have created your Connection Profile and connected to your database server, do you see your databases and tables in the DTP Data Source Explorer?
Have you changed your project default catalog and schema (via the Project Properties dialog -> Java Persistence)? Are any catalogs or schemata listed in the drop-down lists in the Connection section of the Java Persistence properties page? The list of catalogs on this page should match the databases listed in the Data Source Explorer. (I'm not sure where the schemata can be found via DTP....)
Minus any bugs, Dali is simply displaying the catalogs and schemata provided by DTP. This is problematic because of the variety of DTP driver implementations.
Unfortunately, I don't have a MS SQL Server to test against; but I do have a Sybase Adaptive Server (which is very similar), and I can see the catalogs and schemata fine with that release of Dali.
Also, the reason you are seeing quoted identifiers when using jTDS is probably because Dali does not recognize the name of the vendor returned by DTP in that situation. Which DTP Connection Profile Type do you use? Are you using lowercase letters in your table and column names? By default, if Dali does not recognize the vendor, it will treat names according to the SQL Standard, which expects non-delimited identifiers to be folded to uppercase. As a result, any non-uppercase identifiers must be delimited.
Brian
|
|
|
Re: Generate Entities from Tables not working [message #619278 is a reply to message #618858] |
Tue, 08 June 2010 20:25 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
Guillermo Aldunate wrote on Tue, 16 February 2010 09:17
> I reported this problem with the Galileo version to DTP around 6 months ago. At that time there were a lot of bugs outstanding for SQL Server and DTP, and all I got was that DTP team was lacking manpower to solve this problem, so they would fix it presumably in the 1.7.2 version.
>
> Now I realise this is more a Dali matter than DTP's. However, the problem continues, no matter I'm using SR1 release of Galileo and Dali Java Persistence Tools 2.2.1.v200908270220. In fact, using jTDS one may even list the schemas in the SQL Server database and create the entities, but the Java output is surrounded by quotes in the bean's variables names, who have also escape backslash characters, and thus the code generated is quite useless and little legible.
>
> If you use the standard SQL Server JDBC you don't get lists of schemas or anything else. My SQL Server version is 2000 (quite old); if you substitute the JDBC driver for that belonging to SQL Server 2005, the only schema you get is your own, for SQL Server 2005 began using schemas rather than user names for this function.
>
> So, this seems to be a generalised problem. On Ganymede Dali version, it works fine with either the MSSQL 2000 or jTDS JDBC drivers.
>
> Please fix this asap, for I cannot migrate to Galileo and thus I have no support for using Facelets in my code, which I really want to use for it will ease my job greatly!!! Thanks in advance.
|
|
|
Re: Generate Entities from Tables not working [message #619281 is a reply to message #618858] |
Tue, 08 June 2010 20:26 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
Guillermo Aldunate wrote on Tue, 16 February 2010 09:17
> I reported this problem with the Galileo version to DTP around 6 months ago. At that time there were a lot of bugs outstanding for SQL Server and DTP, and all I got was that DTP team was lacking manpower to solve this problem, so they would fix it presumably in the 1.7.2 version.
>
> Now I realise this is more a Dali matter than DTP's. However, the problem continues, no matter I'm using SR1 release of Galileo and Dali Java Persistence Tools 2.2.1.v200908270220. In fact, using jTDS one may even list the schemas in the SQL Server database and create the entities, but the Java output is surrounded by quotes in the bean's variables names, who have also escape backslash characters, and thus the code generated is quite useless and little legible.
>
> If you use the standard SQL Server JDBC you don't get lists of schemas or anything else. My SQL Server version is 2000 (quite old); if you substitute the JDBC driver for that belonging to SQL Server 2005, the only schema you get is your own, for SQL Server 2005 began using schemas rather than user names for this function.
>
> So, this seems to be a generalised problem. On Ganymede Dali version, it works fine with either the MSSQL 2000 or jTDS JDBC drivers.
>
> Please fix this asap, for I cannot migrate to Galileo and thus I have no support for using Facelets in my code, which I really want to use for it will ease my job greatly!!! Thanks in advance.
|
|
|
Re: Generate Entities from Tables not working [message #619284 is a reply to message #618859] |
Tue, 08 June 2010 20:46 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
Hello Brian, sorry but I didn't get your answer before. All I can say is things haven't improved regarding SQL Server 2000 and DTP.I "upgraded" to Galileo 3.5SR2 and it continues not to work. When you define a connection using MS SQL Server (with the same JDBC drivers and definitions I use with Eclipse 3.4.2, or Ganymede, which works fine), you may not see any tables other than those defined under your user defined under SQL Server.
It's funny, because in the meantime I developed an application using IBM DB2 LUW (that supports schemas and all those gadgets a true relational database should support) and it is working fine. I had no problems whatsoever to recognise and work with all sorts of database objects.
It seems to me that between the 2000 and 2005 versions of MS SQL Server there was a change in the way the schemas were addressed. Whereas in the 2000 version there were no schemas (only users), in 2005 and newer versions the schema facility was implemented (in fact, if you use the JDBC driver for 2005 with 2000 in Ganymede, it will work but it will give you the same problem I'm reporting here, which is equivalent to say that it doesn't work).
If you use the jTDS driver with both Ganymede and Galileo, you get exactly the same behaviour as with MS SQL Server 2000 JDBC driver.
Please reopen this issue and try to solve it for we are still using Ganymede and it lacks many features from Galileo we would like to have available.
Best regards, Guillermo :evil:
|
|
| |
Re: Generate Entities from Tables not working [message #638122 is a reply to message #619286] |
Wed, 10 November 2010 01:46 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
Hello, it's me again. This time I have moved to Helios, and things are even worse. I can access SQL Server tables via logging in with my user in the SQL Server manager, and connect to every application using the database. As it was before, if I configure the SQL Server JDBC driver under Ganymede (Eclipse 3.4.2), everything works fine and I can see all users (say schemas) that the database has defined. I even downloaded JDBC driver 3.0 and it works fine under Ganymede, as it does jTDS and also the good old MS SQL Server 2000 driver.
But when trying to do the same thing under Eclipse 3.6 (Helios) JPA, there's no way to make it work. You can see a schema with your user name and nothing else. I would need to see dbo schema, and it doesn't work. No matter you may specify the schema name under the Java Persistence facet; it doesn't work.
I believe this problem has been around for too long, and it impairs the ability to develop applications with Eclipse. Since the same problem happens when trying to configure a database connection via the Database Development perspective, I shall infer that the problem is DTP and not Dali. The question is ¿why it does work well under Ganymede DTP and not under Helios DTP? (by the way, it didn't work either under Galileo DTP...)
Thanks in advance, Guillermo
|
|
| | |
Re: Generate Entities from Tables not working [message #639988 is a reply to message #638855] |
Thu, 18 November 2010 15:44 |
Guillermo Aldunate Messages: 15 Registered: February 2010 |
Junior Member |
|
|
Hello Neil. My puzzling only increases at this time. I defined a new connection using the Open Source MS SQL Server driver jTDS under Helios, connected to the DBM using the Data Source Explorer, and everything worked OK. I could see all schemas (say, users, because it's SQL Server 2000), and Dali would let me select both database and schema, what I had done before with no success with the same configuration!!!
However, when trying to use Microsoft JDBC driver (in both the native SQL Server 2000 version or the JDBC 3.0 version), the problem is still the same as described.
Please note that in the attached MS Word file, the images were from Eclipse Helios using jTDS driver. So it didn't work well from the beginning.
The point is, I don't know for how long this will continue to work well. Also, there's no way of making the MS drivers work, since they show the same behaviour than before.
Please contact me should you need any further information or some action to be performed by me. Thank you very much for your reply.
|
|
|
Goto Forum:
Current Time: Wed Sep 25 12:26:17 GMT 2024
Powered by FUDForum. Page generated in 0.16126 seconds
|