Search the FirstSpirit Knowledge Base
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
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
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
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
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
Hallo Marian,
dein Hinweis war super.
Wir haben den Treiber aktualisiert und nun klappt es.
Danke und Grüße
Petra