Issue Details (XML | Word | Printable)

Key: JDBC-600
Type: Bug Bug
Status: Closed Closed
Resolution: Cannot Reproduce
Priority: Major Major
Assignee: Mark Rotteveel
Reporter: Mark Rotteveel
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Jaybird JDBC Driver

Shutdown immediately followed by validate results in exception

Created: 25/Nov/19 03:28 PM   Updated: 25/Jul/20 11:15 AM
Component/s: Services API
Affects Version/s: Jaybird 3.0.7
Fix Version/s: None


 Description  « Hide
As reported on Firebird-support (2019-11-25, thread "Why I cannot use firebird services to validate a remote database"):

I was trying to shutdown a Firebird 2.1 using the Jaybird 3.x to validate the database.

I wasn't abble to shutdown it like "gfix -shut multi -force 0 remote_server_host:database"

So, when I perform the validate using the jaybird service I got this:

java.sql.SQLException: bad parameters on attach or create database; secondary server attachments cannot validate databases [SQLState:HY000, ISC error code:335544325]
at org.firebirdsql.gds.ng.FbExceptionBuilder$Type$1.createSQLException(FbExceptionBuilder.java:498)
at org.firebirdsql.gds.ng.FbExceptionBuilder.toFlatSQLException(FbExceptionBuilder.java:299)
at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readStatusVector(AbstractWireOperations.java:135)
at org.firebirdsql.gds.ng.wire.AbstractWireOperations.processOperation(AbstractWireOperations.java:199)
at org.firebirdsql.gds..ng.wire.AbstractWireOperations.readSingleResponse(AbstractWireOperations.java:166)
at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readResponse(AbstractWireOperations.java:150)
at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readGenericResponse(AbstractWireOperations.java:252)
at org.firebirdsql.gds.ng.wire.AbstractFbWireService.readGenericResponse(AbstractFbWireService.java:138)
at org.firebirdsql.gds.ng.wire.version10.V10Service.startServiceAction(V10Service.java:212)
at org.firebirdsql.management.FBServiceManager.executeServicesOperation(FBServiceManager.java:280)
at org.firebirdsql.management.FBMaintenanceManager.validateDatabase(FBMaintenanceManager.java:239)
at br.com.jjw.besser.atualizador.client.utils.firebird.FirebirdMaintenanceHelper.validate(FirebirdMaintenanceHelper.java:209)
at br.com.jjw.besser.atualizador.client.utils.firebird.FirebirdMaintenanceHelper.main(FirebirdMaintenanceHelper.java:261)
Caused by: org.firebirdsql.jdbc.FBSQLExceptionInfo: bad parameters on attach or create database

But, if I use the gfix command: gfix -shut multi -force 0 remote:database the validation performs!

Workaround/solution is to add a 1 second sleep between shutdown and validate:

The problem was the "time" between perform the SHUTDOWN and the VALIDATION.

I just add a 1 second "sleep" between the shutdown and validate, and it works!

FBMaintenanceManager mgr = ...... ;
mgr.shutdownDatabase(FBMaintenanceManager.SHUTDOWN_FORCE, 0);
Thread.sleep(1000); // holy sleep
mgr.validateDatabase(FBMaintenanceManager.VALIDATE_READ_ONLY);

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
There are no subversion log entries for this issue yet.