I'm doing some tests with carob and libodbsequoia, and I got the
follow problem:
First, 1 controller (without Distribution Message) and 2 backends.
try to execute a insert that will fail in all backends (violate
duplicate primary key);
DEBUG: (RoundRobinConnectPolicy::getController) Selected
controller[0]:voyager6:25322
INFO: (Connection::initConnection) Authenticating with controller
voyager6:25322
DEBUG: (JavaSocket::Create) Creating socket...
DEBUG: (JavaSocket::Create) Socket created.
DEBUG: (JavaSocket::connectTo) Connecting...
INFO: (JavaSocket::connectTo) Connection to voyager6:25322 succeeded
DEBUG: (Connection::statementExecute) Sending request INSERT INTO usuario
(nomeusuario, loginweb, senhaweb, frota_idfrota, ativo)
VALUES
('Leandro Borges', 'lpborges', 'lpborges', '2', 'TRUE')
DEBUG: (Connection::close) Deleting statements created by this connection
DEBUG: (Connection::closeSocket) Closing socket to controller
DEBUG: (closeSocket) Socket closed.
DEBUG: (JavaSocket::~JavaSocket) About to close socket...
I got the error, and it's all OK.
Now the same test with 2 controllers with 2 backends each:
WARN: (env.cpp:SQLSetEnvAttr(ODBC_VERSION, 2, )) now faking ODBC version 2
DEBUG: (RoundRobinConnectPolicy::getController) Selected
controller[0]:genesis6:25322
INFO: (Connection::initConnection) Authenticating with controller
genesis6:25322
DEBUG: (JavaSocket::Create) Creating socket...
DEBUG: (JavaSocket::Create) Socket created.
DEBUG: (JavaSocket::connectTo) Connecting...
INFO: (JavaSocket::connectTo) Connection to genesis6:25322 succeeded
DEBUG: (Connection::statementExecute) Sending request INSERT INTO usuario
(nomeusuario, loginweb, senhaweb, frota_idfrota, ativo)
VALUES
('Leandro Borges', 'lpborges', 'lpborges', '2', 'TRUE')
The applications hangs here, the ODBC don't receive the response from
controller, in the sequoia log I got:
2006-07-20 09:28:07,732 ERROR controller.loadbalancer.RAIDb1 write request
562949953421341 failed:
Backend rastreador2 - BackendWorkerThread for backend 'rast_apollo'
with RAIDb level:1 failed (ERROR: duplicate key violates unique
constraint "usuario_frota_idfrota_key")
Backend rastreador2 - BackendWorkerThread for backend
'rast_voyager' with RAIDb level:1 failed (ERROR: duplicate key violates
unique constraint "usuario_frota_idfrota_key")
2006-07-20 09:28:07,732 WARN controller.RequestManager.rastreador2
SQLException while executing distributed write request
write request 562949953421341 failed:
Backend rastreador2 - BackendWorkerThread for backend 'rast_apollo'
with RAIDb level:1 failed (ERROR: duplicate key violates unique
constraint "usuario_frota_idfrota_key")
Backend rastreador2 - BackendWorkerThread for backend
'rast_voyager' with RAIDb level:1 failed (ERROR: duplicate key violates
unique constraint "usuario_frota_idfrota_key")
java.sql.SQLException: write request 562949953421341 failed:
Backend rastreador2 - BackendWorkerThread for backend 'rast_apollo'
with RAIDb level:1 failed (ERROR: duplicate key violates unique
constraint "usuario_frota_idfrota_key")
Backend rastreador2 - BackendWorkerThread for backend
'rast_voyager' with RAIDb level:1 failed (ERROR: duplicate key violates
unique constraint "usuario_frota_idfrota_key")
at
org.continuent.sequoia.common.exceptions.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:88)
at
org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.checkTaskCompletion(RAIDb1.java:939)
at
org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.execWriteRequest(RAIDb1.java:344)
at
org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.statementExecuteUpdate(RAIDb1.java:250)
at
org.continuent.sequoia.controller.requestmanager.RequestManager.loadBalanceStatementExecuteUpdate(RequestManager.java:909)
at
org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedStatementExecuteUpdate.executeScheduledRequest(DistributedStatementExecuteUpdate.java:87)
at
org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedRequest.handleMessageMultiThreaded(DistributedRequest.java:157)
at
org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualDatabase.handleMessageMultiThreaded(DistributedVirtualDatabase.java:331)
at
org.continuent.hedera.adapters.MulticastRequestAdapterThread.run(MulticastRequestAdapterThread.java:99).
Than all my others (C++ and Tomcat) applications begins to hangs when
execute some stored procedures without received response from controllers.
I don't know if this is a libodbsequoia or sequoia issue, but thanks
for any help.
Leandro Borges.
_______________________________________________________
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora!
http://br.mobile.yahoo.com/mailalertas/
_______________________________________________
Carob mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob