Hewera-Harz
Returning Observer

Fehler bei Datenquelle nach Projektimport und Wechsel des Datenbanklayers

Jump to solution

Hallo,

ich habe auf unserem Server unter Servereigenschaften/Datenbanken einen neuen Layer angelegt.

# mysql_myspirit

jdbc.DRIVER=com.mysql.jdbc.Driver

jdbc.PASSWORD=**********

jdbc.URL=jdbc:mysql://myspirit

jdbc.USER=cms

jdbc.layerclass=de.espirit.or.impl.mysql.MySQLLayer

>> Die Verbindung ist erfolgreich

Der User hat folgende Rechte: Select, Insert, Update, Delete, File, Create, Alter, Index und Drop

Dann habe ich ein Projekt importiert, das seine Datenquellendaten über einen Derby Layer verwaltet.

Beim Import habe ich den Layer auf den MySQL Layer gewechselt. Das hat auch geklappt. Das Projekt hat ein eigenes Schema und darin die Tabellen angelegt.

Dann habe ich das neue Projekt aufgerufen und bekomme bei den Datenquellen nun folgenden Fehler:

Client Version: 5.2.426.74523
Java Version: 1.8.0_92 Oracle Corporation

FSVersion=5.2.426.74523#3437;JDK=1.8.0_92 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=02.12.2016 11:44:18
de.espirit.or.QueryException: Error code: 1064, state: 42000

at de.espirit.or.impl.AbstractSessionHandler.fetchByKeys(AbstractSessionHandler.java:217)
at de.espirit.firstspirit.content.ContentManagerImpl$TemporalSessionHandler.fetchByKeys(ContentManagerImpl.java:1217)
at de.espirit.firstspirit.content.ContentManagerImpl.fetchByKeys(ContentManagerImpl.java:557)
at sun.reflect.GeneratedMethodAccessor6813.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:67)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:139)
at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:73)
at de.espirit.firstspirit.server.io.MessageWorker.run(MessageWorker.java:31)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:634)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:600)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:436)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:55)
Caused by: java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=2' at line 1
at sun.reflect.GeneratedConstructorAccessor1038.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)
at com.mysql.jdbc.StatementImpl.executeSimpleNonQuery(StatementImpl.java:1595)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2268)
at de.espirit.or.impl.AbstractSessionHandler.fetchByKeys(AbstractSessionHandler.java:186)
at de.espirit.firstspirit.content.ContentManagerImpl$TemporalSessionHandler.fetchByKeys(ContentManagerImpl.java:1217)
at de.espirit.firstspirit.content.ContentManagerImpl.fetchByKeys(ContentManagerImpl.java:557)
at sun.reflect.GeneratedMethodAccessor6813.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:67)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:139)
at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:73)
at de.espirit.firstspirit.server.io.MessageWorker.run(MessageWorker.java:31)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:634)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:600)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:436)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:479)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:58)
at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:53)
at de.espirit.firstspirit.server.$Proxy37.fetchByKeys(Unknown Source)
at de.espirit.firstspirit.store.access.templatestore.SessionHandlerImpl.fetchByKeys(SessionHandlerImpl.java:75)
at de.espirit.or.impl.AbstractSession$EntityListImpl.fetch(AbstractSession.java:1120)
at de.espirit.or.impl.AbstractSession$EntityListImpl.fetch(AbstractSession.java:1083)
at de.espirit.common.util.AbstractLazyList.loadIndex(AbstractLazyList.java:197)
at de.espirit.common.util.AbstractLazyList.get(AbstractLazyList.java:169)
at de.espirit.or.impl.AbstractSession$EntityListImpl.get(AbstractSession.java:1108)
at de.espirit.or.impl.AbstractSession$EntityListImpl.get(AbstractSession.java:1083)
at de.espirit.firstspirit.store.access.contentstore.DatasetList.get(DatasetList.java:49)
at de.espirit.firstspirit.store.access.contentstore.DatasetList.get(DatasetList.java:15)
at de.espirit.firstspirit.ui.views.swing.contentstore.table.ContentTableModel.getValueAt(ContentTableModel.java:90)
at javax.swing.JTable.getValueAt(JTable.java:2717)
at de.espirit.firstspirit.ui.views.swing.contentstore.ContentView.getSelectedDatasets(ContentView.java:875)
at de.espirit.firstspirit.ui.views.swing.contentstore.ContentView.access$3000(ContentView.java:135)
at de.espirit.firstspirit.ui.views.swing.contentstore.ContentView$DatasetSelectionAware.getSelection(ContentView.java:953)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.GuiContent.getSelection(GuiContent.java:251)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.GuiContent.getSelectedDatasets(GuiContent.java:280)
at de.espirit.firstspirit.client.action.ShowUsagesAction.getElement(ShowUsagesAction.java:79)
at de.espirit.firstspirit.client.action.ShowUsagesAction.calculateEnabled(ShowUsagesAction.java:70)
at de.espirit.firstspirit.store.gui.StoreAction._calculateEnabled(StoreAction.java:127)
at de.espirit.firstspirit.store.gui.StoreAction.updateEnabledState(StoreAction.java:94)
at de.espirit.firstspirit.store.gui.StoreAction.setStoreNodes(StoreAction.java:87)
at de.espirit.firstspirit.client.action.ActionManagerImpl$4.run(ActionManagerImpl.java:329)
at de.espirit.firstspirit.client.gui.util.GuiUtil$RunnableWrapper.run(GuiUtil.java:1964)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

Kann mir bitte jemand einen Hinweis geben, woran das liegen könnte?

Danke und Grüße

Petra Hewera-Harz

0 Kudos
1 Solution

Accepted Solutions

Hallo Petra,

Die Fehlermeldung kommt nicht von FirstSpirit, sondern von MySQL. Passt denn der MySQL-Treiber zur aktuell verwendeten MySQL-Version? Siehe auch: http://bugs.mysql.com/bug.php?id=66659. Dort scheint jemand einen veralteten MySQL-Treiber verwendet zu haben und hat genau diese Fehlermeldung bekommen. Das fällt leider in Deinen bzw. euren Zuständigkeitsbereich, da das eine fehlerhafte Konfiguration der MySQL-Verbindung ist. Der MySQL-Treiber wird nicht von e-Spirit mitausgeliefert, den muss bei euch jemand nachträglich installiert haben.Siehe Administrationshandbuch, Kapitel 4.8 ff.

Grüße Marian

View solution in original post

0 Kudos
4 Replies
marza
I'm new here

Hallo Petra,

da scheint ein SQL-Syntax-Problem mit Deiner externen MySQL-Datenbank vorzuliegen, denn in Deinem Stacktrace versteckt sich folgendes:

Caused by: java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=2' at line 1

Hilft Dir das weiter?

Grüße Marian

0 Kudos

Hallo Marian,

das hilft mir leider nicht weiter.

Ich selber erstelle ja gar kein SQL Statement.

ich habe jetzt mal über das FirstSpirit Projekt unter Vorlagen eine neues Schema und eine neue Tabellenvorlage erstellt. Das klappt und auch auf dem Datenbankserver wird eine neues Schema und eine neue Tabelle erzeugt. Dann gehen ich zu den Datenquellen und versuche eine Datenquelle auf Basis der Tabellenvorlage anzulegen. Diese wird angelegt, aber darauf zugreifen kann ich dann nicht, ab dann wird der schon aufgeführte Fehler angezeigt.

Die Datenquelle verursacht bei der Anzeige durch ein von ihr abgesetztes Select Statement dann wohl diesen Fehler bzw. der Fehler resultiert daraus. Kannst du nicht anhand des Error Codes mehr erkennen?

Error code: 1064, state: 42000

Grüße

Petra

0 Kudos

Hallo Petra,

Die Fehlermeldung kommt nicht von FirstSpirit, sondern von MySQL. Passt denn der MySQL-Treiber zur aktuell verwendeten MySQL-Version? Siehe auch: http://bugs.mysql.com/bug.php?id=66659. Dort scheint jemand einen veralteten MySQL-Treiber verwendet zu haben und hat genau diese Fehlermeldung bekommen. Das fällt leider in Deinen bzw. euren Zuständigkeitsbereich, da das eine fehlerhafte Konfiguration der MySQL-Verbindung ist. Der MySQL-Treiber wird nicht von e-Spirit mitausgeliefert, den muss bei euch jemand nachträglich installiert haben.Siehe Administrationshandbuch, Kapitel 4.8 ff.

Grüße Marian

0 Kudos

Hallo Marian,

dein Hinweis war super.

Wir haben den Treiber aktualisiert und nun klappt es.

Danke und Grüße

Petra

0 Kudos