Hello Sequoia People!
When trying to connect to the seqouia controller
(PHP->mysqli-connect()->libmysequoia->seqouia)
I get the following error:
ERROR sequoia.controller.recoverylog Recovery log was unable to
update request completion status:
com.mysql.jdbc.ServerPreparedStatement[58] - UPDATE RECOVERY SET
exec_status='F',update_count=0,exec_time=0 WHERE log_id=-1
This may be linked to the Bug fixed in
https://forge.continuent.org/jira/browse/SEQUOIA-833
The table RECOVERY contains only nonnegative numbers for the field
log_id:
mysql> select * from recovery.RECOVERY;
+--------+--------+--------------------------------+------------+----------------+----------------+------------+-------------+-----------+--------------+
| log_id | vlogin | sql2 | sql2_param |
auto_conn_tran | transaction_id | request_id | exec_status |
exec_time | update_count |
+--------+--------+--------------------------------+------------+----------------+----------------+------------+-------------+-----------+--------------+
| 1 | user | show fields from bestelldaten; | |
A | 0 | 0 | F |
0 | 0 |
| 2 | user | describe aml1 | |
A | 0 | 3 | S |
9 | 9 |
+--------+--------+--------------------------------+------------+----------------+----------------+------------+-------------+-----------+--------------+
2 rows in set (0.00 sec)
Same behavior under sequoia 3.0Beta1.
Best Regards
Volker
Logfile:
ctrl1:/usr/local/lib/sequoia# ./bin/controller.sh
15:47:40,269 INFO controller.core.Controller Sequoia controller (2.10)
15:47:40,334 INFO controller.core.Controller Loading configuration
file: /usr/local/lib/sequoia-2.10-bin/config/controller/controller.xml
15:47:40,550 INFO controller.core.Controller JMX is enabled
15:47:40,571 INFO controller.core.Controller Starting JMX server on
host: 10.2.0.16
15:47:41,049 INFO controller.backup.BackupManager Registering
backuper mysql to handle format MySQL raw dump
15:47:41,073 INFO backend.DatabaseBackend.DB1 Adding connection
manager for virtual user "user"
15:47:41,080 INFO backend.DatabaseBackend.DB2 Adding connection
manager for virtual user "user"
15:47:41,571 INFO sequoia.controller.recoverylog Creating recovery
log table: RECOVERY
15:47:41,573 INFO sequoia.controller.recoverylog Creating checkpoint
table: CHECKPOINT
15:47:41,590 INFO sequoia.controller.recoverylog Creating backend
table: BACKEND
15:47:41,591 INFO sequoia.controller.recoverylog Creating dump
table: DUMP
15:47:41,744 INFO controller.RequestManager.myDB Request manager
will parse requests with the following granularity: TABLE
15:47:41,756 INFO controller.virtualdatabase.myDB Unknown last state
for backend DB1. Leaving node in disabled state.
15:47:41,758 INFO controller.virtualdatabase.myDB Unknown last state
for backend DB2. Leaving node in disabled state.
15:47:41,758 INFO controller.core.Controller Adding VirtualDatabase
myDB
15:47:41,792 INFO controller.core.Controller Waiting for connections
on 0.0.0.0:25322
15:47:41,809 INFO controller.core.Controller Controller started on
2006.11.06 45 at 03:47:41 PM UTC
15:47:41,809 INFO controller.core.Controller Controller
10.2.0.16:25322 ready, listening to requests ...
15:48:41,654 INFO controller.RequestManager.myDB Starting backup of
backend DB1
15:48:43,343 INFO backup.backupers.NativeCommandExec Command
"mysqldump --routines --add-drop-database -h 10.2.0.32 --port=3306
-uctrl_user --password=schnecke --databases myDB" logged 0 errors and
terminated with exitcode 0
15:48:43,362 INFO controller.RequestManager.myDB Backup has completed.
15:48:56,154 INFO backend.DatabaseBackend.DB1 Detected backend as:
MySQL
15:48:58,062 INFO controller.RequestManager.myDB Setting new virtual
database schema.
15:48:58,115 INFO controller.recoverylog.RecoverThread Starting
recovery
15:48:58,122 INFO controller.recoverylog.RecoverThread Recovery
completed
15:48:58,875 INFO controller.recoverylog.RecoverThread Database
backend DB1 is now enabled
15:49:18,383 INFO backup.backupers.NativeCommandExec Command "mysql
-h 10.2.0.33 --port=3306 -uctrl_user --password=schnecke myDB" logged
0 errors and terminated with exitcode 0
15:49:18,423 INFO controller.RequestManager.myDB Recovery of backend
DB2 done.
15:49:30,878 INFO backend.DatabaseBackend.DB2 Detected backend as:
MySQL
15:49:31,175 INFO controller.RequestManager.myDB Virtual database
schema merged with new schema.
15:49:32,220 INFO controller.recoverylog.RecoverThread Starting
recovery
15:49:32,522 INFO controller.recoverylog.RecoverThread Recovery
completed
15:49:33,000 INFO controller.recoverylog.RecoverThread Database
backend DB2 is now enabled
15:52:37,256 ERROR sequoia.controller.recoverylog Recovery log was
unable to update request completion status:
com.mysql.jdbc.ServerPreparedStatement[58] - UPDATE RECOVERY SET
exec_status='F',update_count=0,exec_time=0 WHERE log_id=-1
Exception in thread "VirtualDatabaseWorkerThread-myDB"
java.lang.NullPointerException
at
org.continuent.sequoia.controller.scheduler.AbstractScheduler.scheduleOpenPersistentConnection(AbstractScheduler.java:777)
at
org.continuent.sequoia.controller.requestmanager.RequestManager.openPersistentConnection(RequestManager.java:461)
at
org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase.openPersistentConnection(VirtualDatabase.java:1043)
at
org.continuent.sequoia.controller.virtualdatabase.VirtualDatabaseWorkerThread.run(VirtualDatabaseWorkerThread.java:336)
1
Config-File:
<?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">
<Monitoring>
<SQLMonitoring defaultMonitoring="off">
<SQLMonitoringRule queryPattern="^select"
caseSensitive="false" applyToSkeleton ="false" monitoring="on"/>
</SQLMonitoring>
</Monitoring>
<Backup>
<Backuper backuperName="mysql"
className="org.continuent.sequoia.controller.backup.backupers.MySQLBackuper"/>
</Backup>
<AuthenticationManager>
<Admin>
<User username="admin" password=""/>
</Admin>
<VirtualUsers>
<VirtualLogin vLogin="user" vPassword=""/>
</VirtualUsers>
</AuthenticationManager>
<DatabaseBackend name="DB1" driver="com.mysql.jdbc.Driver"
driverPath="/usr/share/java/mysql-3.1.11.jar"
url="jdbc:mysql://10.2.0.32:3306/myDB"
connectionTestStatement="select 1">
<ConnectionManager vLogin="user" rLogin="ctrl_user"
rPassword="schnecke">
<VariablePoolConnectionManager initPoolSize="10" minPoolSize="5"
maxPoolSize="50" idleTimeout="30" waitTimeout="10"/>
</ConnectionManager>
</DatabaseBackend>
<DatabaseBackend name="DB2" driver="com.mysql.jdbc.Driver"
driverPath="/usr/share/java/mysql-3.1.11.jar"
url="jdbc:mysql://10.2.0.33:3306/myDB"
connectionTestStatement="select 1">
<ConnectionManager vLogin="user" rLogin="ctrl_user"
rPassword="schnecke">
<VariablePoolConnectionManager initPoolSize="10" minPoolSize="5"
maxPoolSize="50" idleTimeout="30" waitTimeout="10"/>
</ConnectionManager>
</DatabaseBackend>
<RequestManager>
<RequestScheduler>
<RAIDb-1Scheduler level="passThrough"/>
</RequestScheduler>
<RequestCache>
<MetadataCache/>
<ParsingCache/>
<!-- <ResultCache granularity="table"/> -->
</RequestCache>
<LoadBalancer>
<RAIDb-1>
<WaitForCompletion policy="first"/>
<RAIDb-1-LeastPendingRequestsFirst/>
</RAIDb-1>
</LoadBalancer>
<RecoveryLog driver="com.mysql.jdbc.Driver"
driverPath="/usr/share/java/mysql-3.1.11.jar"
url="jdbc:mysql://localhost:3306/recovery" login="ctrl_user"
password="schnecke"> $
<RecoveryLogTable tableName="RECOVERY" logIdColumnType="BIGINT
NOT NULL"
vloginColumnType="TEXT NOT NULL"
sqlColumnName="sql2"
sqlColumnType="TEXT NOT NULL"
sqlParamColumnType="TEXT NOT NULL"
transactionIdColumnType="BIGINT NOT NULL"
extraStatementDefinition=",PRIMARY KEY (log_id)"/>
<CheckpointTable tableName="CHECKPOINT"
checkpointNameColumnType="VARCHAR(32) NOT NULL"/>
<BackendTable tableName="BACKEND"
databaseNameColumnType="TEXT NOT NULL"
backendNameColumnType="TEXT NOT NULL"
checkpointNameColumnType="TEXT NOT NULL"/>
<DumpTable tableName="DUMP" dumpNameColumnType="TEXT NOT NULL"
dumpDateColumnType="TIMESTAMP"
dumpPathColumnType="TEXT NOT NULL"
dumpFormatColumnType="TEXT NOT NULL"
checkpointNameColumnType="TEXT NOT NULL"
backendNameColumnType="TEXT NOT NULL"
tablesColumnType="TEXT NOT NULL"/>
</RecoveryLog>
</RequestManager>
</VirtualDatabase>
</SEQUOIA>