Hi,
My configuration is Sequoia 2.10. My example is 1 controller, 2
backends, and a recovery db all running HSQLDB
I want to add an additional backend DB on the fly.
I can successfully backup, dump, clone, restore, and enable an
additional DB backend. However, once I do a write (i.e. create an
Account object from a client app) the new DB becomes immediately
disabled, doesn't get updated, and gives the following error message
(while the other backends continue successfully). Please help as it is
critical that I be able to add new replicated databases on the fly. It
appears Sequoia is confused by the Octopus dump SQL output although the
files look okay. I have also attached my config files.
Thanks,
Jared
log:
2006-10-24 11:14:59,792 INFO backup.backupers.OctopusBackuper Starting
restore of backend localhost17 from checkpoint jdump
2006-10-24 11:15:13,335 INFO controller.RequestManager.myDB Recovery of
backend localhost17 done.
2006-10-24 11:17:23,996 ERROR controller.RequestManager.myDB Failed to
merge current schema because of Unable to merge table
[FRIENDLY_UNIT_MISSIONS]: column 'MISSIONS_ID' definition mismatch.
java.sql.SQLException: Unable to merge table [FRIENDLY_UNIT_MISSIONS]:
column 'MISSIONS_ID' definition mismatch
at
org.continuent.sequoia.common.sql.schema.DatabaseTable.merge(DatabaseTab
le.java:330)
at
org.continuent.sequoia.common.sql.schema.DatabaseSchema.mergeSchema(Data
baseSchema.java:616)
at
org.continuent.sequoia.controller.requestmanager.RequestManager.mergeDat
abaseSchema(RequestManager.java:3021)
at
org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase.getAnd
CheckBackend(VirtualDatabase.java:2061)
at
org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase.enable
BackendFromCheckpoint(VirtualDatabase.java:1674)
at
org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase.enable
BackendFromCheckpoint(VirtualDatabase.java:1728)
at
org.continuent.sequoia.controller.virtualdatabase.management.VirtualData
base.enableBackendFromCheckpoint(VirtualDatabase.java:134)
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 com.sun.jmx.mbeanserver.StandardMetaDataImpl.invoke(Unknown
Source)
at javax.management.StandardMBean.invoke(Unknown Source)
at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(Unknown
Source)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(Unknown Source)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown
Source)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
at
org.continuent.sequoia.controller.jmx.ChainedMBeanServer.invoke(ChainedM
BeanServer.java:318)
at
org.continuent.sequoia.controller.jmx.AuthenticatingMBeanServer.invoke(A
uthenticatingMBeanServer.java:127)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown
Source)
at
javax.management.remote.rmi.RMIConnectionImpl.access$100(Unknown Source)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Un
known Source)
at java.security.AccessController.doPrivileged(Native Method)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unkn
own Source)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown
Source)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
Source)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2006-10-24 11:17:23,996 INFO controller.recoverylog.RecoverThread
Starting recovery
2006-10-24 11:17:24,480 ERROR controller.recoverylog.RecoverThread
Recovery process failed to replay transaction 1: request
StatementExecuteUpdateTask from transaction 1 (insert into ACCOUNTS
(name, password, administrator, planner, monitor, controller, rwd, rsd,
observer, fcc, loginDateTime, loginCount, locked, ACCOUNT_ID) values (?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, null)/<!%S|Account name:
0.6897476928776669|!%><!%S|0.9405246962194339|!%><!%0|true|!%><!%0|false
|!%><!%0|false|!%><!%0|false|!%><!%0|false|!%><!%0|false|!%><!%0|false|!
%><!%0|false|!%><!%L|0|!%><!%I|0|!%><!%0|false|!%>) (Backend myDB -
BackendWorkerThread for backend 'localhost17' with RAIDb level:1 failed
(Attempt to insert null into a non-nullable column: column: ACCOUNT_ID
table: ACCOUNTS in statement [insert into ACCOUNTS (name, password,
administrator, planner, monitor, controller, rwd, rsd, observer, fcc,
loginDateTime, loginCount, locked, ACCOUNT_ID) values (?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, null)]))
2006-10-24 11:17:24,496 INFO sequoia.controller.connection 5
connections freed on "jdbc:hsqldb:hsql://127.0.0.1:9017"
2006-10-24 11:17:24,652 ERROR sequoia.controller.scheduler Unexpected
negative suspendedWrites in AbstractScheduler.resumeWrites()
2006-10-24 11:17:24,652 ERROR sequoia.controller.scheduler Unexpected
negative suspendedTransactions in
AbstractScheduler.resumeNewTransactions()
2006-10-24 11:17:24,652 ERROR sequoia.controller.scheduler Unexpected
negative suspendedPersistentConnections in
AbstractScheduler.resumeNewPersistentConnections()
2006-10-24 11:17:24,683 INFO controller.recoverylog.RecoverThread
Recovery completed
2006-10-24 11:17:24,683 WARN controller.virtualdatabase.myDB Virtual
database myDB failed to enable database backend localhost17 from
checkpoint (because of : java.sql.SQLException: Recovery process failed
to replay transaction 1: request StatementExecuteUpdateTask from
transaction 1 (insert into ACCOUNTS (name, password, administrator,
planner, monitor, controller, rwd, rsd, observer, fcc, loginDateTime,
loginCount, locked, ACCOUNT_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, null)/<!%S|Account name:
0.6897476928776669|!%><!%S|0.9405246962194339|!%><!%0|true|!%><!%0|false
|!%><!%0|false|!%><!%0|false|!%><!%0|false|!%><!%0|false|!%><!%0|false|!
%><!%0|false|!%><!%L|0|!%><!%I|0|!%><!%0|false|!%>) (Backend myDB -
BackendWorkerThread for backend 'localhost17' with RAIDb level:1 failed
(Attempt to insert null into a non-nullable column: column: ACCOUNT_ID
table: ACCOUNTS in statement [insert into ACCOUNTS (name, password,
administrator, planner, monitor, controller, rwd, rsd, observer, fcc,
loginDateTime, loginCount, locked, ACCOUNT_ID) values (?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, null)])))
java.sql.SQLException: Recovery process failed to replay transaction 1:
request StatementExecuteUpdateTask from transaction 1 (insert into
ACCOUNTS (name, password, administrator, planner, monitor, controller,
rwd, rsd, observer, fcc, loginDateTime, loginCount, locked, ACCOUNT_ID)
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, null)/<!%S|Account name:
0.6897476928776669|!%><!%S|0.9405246962194339|!%><!%0|true|!%><!%0|false
|!%><!%0|false|!%><!%0|false|!%><!%0|false|!%><!%0|false|!%><!%0|false|!
%><!%0|false|!%><!%L|0|!%><!%I|0|!%><!%0|false|!%>) (Backend myDB -
BackendWorkerThread for backend 'localhost17' with RAIDb level:1 failed
(Attempt to insert null into a non-nullable column: column: ACCOUNT_ID
table: ACCOUNTS in statement [insert into ACCOUNTS (name, password,
administrator, planner, monitor, controller, rwd, rsd, observer, fcc,
loginDateTime, loginCount, locked, ACCOUNT_ID) values (?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, null)]))
at
org.continuent.sequoia.controller.recoverylog.RecoverThread.recover(Reco
verThread.java:482)
at
org.continuent.sequoia.controller.recoverylog.RecoverThread.run(RecoverT
hread.java:183)
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE SEQUOIA-CONTROLLER PUBLIC "-//Continuent//DTD SEQUOIA-CONTROLLER 2.10//EN" "http://sequoia.continuent.org/dtds/sequoia-controller-2.10.dtd"> <SEQUOIA-CONTROLLER> <Controller ipAddress="127.0.0.1" port="25322"> <Report hideSensitiveData="false" enableFileLogging="true"/> <JmxSettings> <!-- <RmiJmxAdaptor username="jmxuser" password="jmxpassword" port="1090"/> --> <RmiJmxAdaptor port="1090"/> </JmxSettings> <VirtualDatabase configFile="J_hsqldb-raidb1.xml" virtualDatabaseName="myDB" autoEnableBackends="force" checkpointName="Initial_empty_recovery_log"/> </Controller> </SEQUOIA-CONTROLLER>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE SEQUOIA PUBLIC "-//Continuent//DTD SEQUOIA 2.10//EN" "http://sequoia.continuent.org/dtds/sequoia-2.10.dtd"> <SEQUOIA> <VirtualDatabase name="myDB"> <Distribution> <MessageTimeouts/> </Distribution> <!-- <Backup> <Backuper backuperName="mybackuper" className="org.continuent.sequoia.controller.backup.backupers.HSQLDB_Backuper" options="zip=true"/> </Backup> --> <Backup> <Backuper backuperName="Octopus" className="org.continuent.sequoia.controller.backup.backupers.OctopusBackuper" options="zip=false"/> </Backup> <AuthenticationManager> <Admin> <User username="admin" password="" /> </Admin> <VirtualUsers> <VirtualLogin vLogin="user" vPassword="" /> </VirtualUsers> </AuthenticationManager> <DatabaseBackend name="localhost" driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9011" connectionTestStatement="call now()"> <ConnectionManager vLogin="user" rLogin="TEST" rPassword=""> <VariablePoolConnectionManager initPoolSize="10" minPoolSize="5" maxPoolSize="50" idleTimeout="30" waitTimeout="10"/> </ConnectionManager> </DatabaseBackend> <DatabaseBackend name="localhost2" driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9012" connectionTestStatement="call now()"> <ConnectionManager vLogin="user" rLogin="TEST" rPassword=""> <VariablePoolConnectionManager initPoolSize="10" minPoolSize="5" maxPoolSize="50" idleTimeout="30" waitTimeout="10"/> </ConnectionManager> </DatabaseBackend> <RequestManager> <RequestScheduler> <RAIDb-1Scheduler level="passThrough" /> </RequestScheduler> <LoadBalancer> <RAIDb-1> <WaitForCompletion policy="first"/> <RAIDb-1-LeastPendingRequestsFirst/> </RAIDb-1> </LoadBalancer> <RecoveryLog driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9013" login="TEST" password=""> <RecoveryLogTable tableName="RECOVERY" logIdColumnType="BIGINT NOT NULL" vloginColumnType="VARCHAR NOT NULL" sqlColumnType="VARCHAR NOT NULL" extraStatementDefinition=",PRIMARY KEY (log_id)"/> <CheckpointTable tableName="CHECKPOINT" checkpointNameColumnType="VARCHAR NOT NULL"/> <BackendTable tableName="BACKEND" databaseNameColumnType="VARCHAR NOT NULL" backendNameColumnType="VARCHAR NOT NULL" checkpointNameColumnType="VARCHAR NOT NULL"/> <DumpTable tableName="DUMP" dumpNameColumnType="VARCHAR NOT NULL" dumpDateColumnType="TIMESTAMP" dumpPathColumnType="VARCHAR NOT NULL" dumpFormatColumnType="VARCHAR NOT NULL" checkpointNameColumnType="VARCHAR NOT NULL" backendNameColumnType="VARCHAR NOT NULL" tablesColumnType="VARCHAR NOT NULL"/> </RecoveryLog> </RequestManager> </VirtualDatabase> </SEQUOIA>
full_cluster.log
Description: full_cluster.log
_______________________________________________ Sequoia mailing list [email protected] https://forge.continuent.org/mailman/listinfo/sequoia
