kannengi
Elite Observer

Projektimport Fehler bei read-only Datenbanklayer

Hallo Community,

ich versuche gerade von FS 5.1 auf 5.2 upzudaten und der empfohlene Weg ist ja über Projektexport/-import.

Jetzt habe ich ein Projekt mit einer externen angebundenen Datenbank. Der entsprechende (Standard-)Layer ist in den Projekteigenschaften als

schreibgeschützt und "kein schema-sync" gekennzeichnet.

Beim Import des Projekts bekomme ich folgende Exception:

19.10.2015 16:57:03.633 Skipping schema import, layer 'mssql_standard_pdb3_extern' is either not syncable or read only

19.10.2015 16:57:03.649 Unable to sync schema - de.espirit.or.SchemaException: com.microsoft.sqlserver.jdbc.SQLServerException: Der Benutzer besitzt nicht die Berechtigung zum Ausführen dieser Aktion.

FSVersion=5.2.103.69886#4704;JDK=1.8.0_31 64bit Oracle Corporation;OS=Windows Server 2008 R2 6.1 amd64;Date=19.10.2015 16:57:03

de.espirit.or.SchemaException: com.microsoft.sqlserver.jdbc.SQLServerException: Der Benutzer besitzt nicht die Berechtigung zum Ausführen dieser Aktion.

    at de.espirit.or.impl.generic.GenericSchemaSynchronizer.createSchema(GenericSchemaSynchronizer.java:249)

    at de.espirit.or.impl.generic.GenericSchemaSynchronizer.updateDB(GenericSchemaSynchronizer.java:131)

    at de.espirit.or.impl.schema.SchemaImpl.updateDBTables(SchemaImpl.java:433)

    at de.espirit.or.impl.AbstractSessionHandler.syncSchemaWithDB(AbstractSessionHandler.java:1064)

    at de.espirit.or.impl.AbstractSessionHandler.syncSchemaWithDB(AbstractSessionHandler.java:75)

    at de.espirit.firstspirit.content.ContentManagerImpl$TemporalSessionHandler.syncSchemaWithDB(ContentManagerImpl.java:1389)

    at de.espirit.firstspirit.content.ContentManagerImpl.syncSchema(ContentManagerImpl.java:742)

    at de.espirit.firstspirit.server.export.importhandler.SchemaConfigHandler.analyse(SchemaConfigHandler.java:187)

    at de.espirit.firstspirit.server.export.ProjectImporter.call(ProjectImporter.java:357)

    at de.espirit.firstspirit.server.export.ProjectImporter.call(ProjectImporter.java:66)

    at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:415)

    at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:396)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:572)

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:425)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

    at java.lang.Thread.run(Thread.java:745)

    at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:38)

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Der Benutzer besitzt nicht die Berechtigung zum Ausführen dieser Aktion.

    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)

    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1635)

    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:865)

    at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:762)

    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:6276)

    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1793)

    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:184)

    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:159)

    at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:735)

    at de.espirit.or.impl.generic.GenericSchemaSynchronizer.createSchema(GenericSchemaSynchronizer.java:246)

    ... 20 more

Auf dem Zielserver sind in der Datenbank die Tabellen vorhanden und in der entsprechenden Standard-Layerkonfiguration ein read-only User eingetragen.

Anscheinend versucht FS aber doch,irgendetwas zu synchronisieren.

Der Import bricht ab.

Zum testen habe ich auch mal versucht, in der Layerkonfiguration einen schreibberechtigten Benutzer einzutragen, es kommt jedoch die gleiche Exception!

Das Verhalten überrascht mich und entspricht nicht der Aussage von Herrn Höbbel in https://community.e-spirit.com/message/2667 .

Als Lösung würde mir jetzt nur einfallen, das entsprechende Datenquellenschema aus dem Projekt herauszulösen,

das Projekt nochmal zu exportieren, dann importieren und dann das Schema wieder manuell einbinden.

Nicht so elegant natürlich.

Hätte jemand eine bessere Idee? Ist es vielleicht ein Bug? Ev. nur bei MS-SQL?

Vielen Dank und Gruß,

Benny Kannengießer

// re-lounge.com

0 Kudos
0 Replies