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>

Attachment: full_cluster.log
Description: full_cluster.log

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to