Ok, i will debug it too, maybe i've the same problem.... i'll report my request later

Leander Koornneef schrieb:

On 20-mrt-2007, at 7:55, Christopher Hartung wrote:

Hi there,

i've several questions/problems to administer our test-cluster-environment.
First at all, i browsed the docs but i didn't find anything.
So here we are ;)

1. If a sql-statement is incorrect (Like in postgres using "" instead of '') the cluster throws an exception in the log (which is correct) but then the client program hang, so i've to kill the client program hardly.
How can i resolv something like this?

I can confirm this issue, but like to add that the cllient/console does not
actually hang, but is waiting for some sort ot timeout, which takes
exactly one minute. This is the org.continuent.hedera.* log at level DEBUG:

=================
09:35:04,356 adapters Sending message 162430 to 2 members.
09:35:04,357 adapters Replying to Member(address=/10.0.30.50:10000, uid=10.0.30.50:10000) for message 184663 09:35:04,359 adapters Replying to Member(address=/10.0.30.40:10000, uid=10.0.30.40:10000) for message 162430
09:35:04,365 adapters PullPushAdapter: Error while reading from channel
org.continuent.appia.core.message.MessageException: Trying to read an unknown object from message. at org.continuent.appia.core.message.Message.popObject(Message.java:1254) at org.continuent.hedera.channel.AppiaReliableGroupChannel.receive(AppiaReliableGroupChannel.java:292) at org.continuent.hedera.adapters.PullPushAdapter.run(PullPushAdapter.java:166)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: org.postgresql.util.PSQLException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:585) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at org.continuent.appia.core.message.Message.popObject(Message.java:1250)
        ... 3 more
09:35:04,366 adapters Replying to Member(address=/10.0.30.50:10000, uid=10.0.30.50:10000) for message 184664
09:35:04,368 adapters PullPushAdapter: Error while reading from channel
org.continuent.appia.core.message.MessageException: Trying to read an unknown object from message. at org.continuent.appia.core.message.Message.popObject(Message.java:1254) at org.continuent.hedera.channel.AppiaReliableGroupChannel.receive(AppiaReliableGroupChannel.java:292) at org.continuent.hedera.adapters.PullPushAdapter.run(PullPushAdapter.java:166)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: org.postgresql.util.PSQLException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:585) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at org.continuent.appia.core.message.Message.popObject(Message.java:1250)
        ... 3 more
09:35:04,374 adapters Replying to Member(address=/10.0.30.50:10000, uid=10.0.30.50:10000) for message 184665 09:35:04,379 adapters Replying to Member(address=/10.0.30.50:10000, uid=10.0.30.50:10000) for message 184666
=================


This is the DEBUG log of org.continuent.sequoia.controller.virtualdatabase
and org.continuent.sequoia.controller.RequestManager:

=================
2007-03-20 09:35:04,356 DEBUG controller.virtualdatabase.unicorn handleMessageSingleThreaded (class org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedCommit): Commit transaction 562949
953537558
2007-03-20 09:35:04,356 DEBUG controller.RequestManager.unicorn Broadcasting request select * from user_role where username =... to all controllers (Member(address=/10.0.30.40:10000, uid=10.0.30.40:10000) ->[Member(address=/10.0.30.40:10000, uid=10.0.30.40:10000), Member(address=/10.0.30.50:10000, uid=10.0.30.50:10000)]) 2007-03-20 09:35:04,356 DEBUG controller.virtualdatabase.unicorn handleMessageMultiThreaded (class org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedCommit): Commit transaction 5629499
53537558
2007-03-20 09:35:04,357 DEBUG controller.RequestManager.unicorn Commit transaction 562949953537558 2007-03-20 09:35:04,357 DEBUG controller.virtualdatabase.unicorn handleMessageSingleThreaded (class org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedStatementExecuteQuery): S 126223 0
select * from user_role where username = "Julia"/
2007-03-20 09:35:04,357 DEBUG controller.virtualdatabase.unicorn db01: Scheduling distributedRequest 126223 from Member(address=/10.0.30.40:10000, uid=10.0.30.40:10000) 2007-03-20 09:35:04,358 DEBUG controller.virtualdatabase.unicorn handleMessageMultiThreaded (class org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedStatementExecuteQuery): S 126223 0
select * from user_role where username = "Julia"/
2007-03-20 09:35:04,358 DEBUG controller.virtualdatabase.unicorn db01: Executing distributedRequest 126223 from Member(address=/10.0.30.40:10000, uid=10.0.30.40:10000) 2007-03-20 09:35:04,358 DEBUG controller.RequestManager.unicorn Scheduling read Request (126223): select * from user_role where username =... 2007-03-20 09:35:04,358 DEBUG controller.RequestManager.unicorn Load balancing read request (126223): select * from user_role where username =... 2007-03-20 09:35:04,359 WARN controller.RequestManager.unicorn Failed to execute request select * from user_role where username =... because of (read request 126223 failed: Backend unicorn - BackendWorkerThread for backend 'db01' with RAIDb level:1 failed (ERROR: column "Julia" does not exist)
)
2007-03-20 09:35:04,359 WARN controller.RequestManager.unicorn SQLException while executing remote read request.
java.sql.SQLException: read request 126223 failed:
Backend unicorn - BackendWorkerThread for backend 'db01' with RAIDb level:1 failed (ERROR: column "Julia" does not exist)

at org.continuent.sequoia.common.exceptions.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:88) at org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.checkTaskCompletion(RAIDb1.java:936) at org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.execBroadcastReadRequest(RAIDb1.java:223) at org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.statementExecuteQuery(RAIDb1.java:158) at org.continuent.sequoia.controller.requestmanager.RequestManager.statementExecuteQuery(RequestManager.java:592) at org.continuent.sequoia.controller.requestmanager.distributed.DistributedRequestManager.execLocalStatementExecuteQuery(DistributedRequestManager.java:1351) at org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedStatementExecuteQuery.executeScheduledRequest(DistributedStatementExecuteQuery.java:93) at org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedRequest.handleMessageMultiThreaded(DistributedRequest.java:157) at org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualDatabase.handleMessageMultiThreaded(DistributedVirtualDatabase.java:335) at org.continuent.hedera.adapters.MulticastRequestAdapterThread.run(MulticastRequestAdapterThread.java:102)
<SNIP>
2007-03-20 09:36:04,360 DEBUG controller.RequestManager.unicorn Request select * from user_role where username =... completed. 2007-03-20 09:36:04,360 WARN controller.RequestManager.unicorn Request 126223 failed on controller Member(address=/10.0.30.40:10000, uid=10.0.30.40:10000) (org.continuent.hedera.adapters.TimeoutException
)
2007-03-20 09:36:04,360 WARN controller.RequestManager.unicorn Request 126223 failed on controller Member(address=/10.0.30.50:10000, uid=10.0.30.50:10000) (org.continuent.hedera.adapters.TimeoutException
)
2007-03-20 09:36:04,361 DEBUG controller.virtualdatabase.unicorn handleMessageSingleThreaded (class org.continuent.sequoia.controller.virtualdatabase.protocol.NotifyCompletion): Notify failure of request:
select * from user_role where username = "Julia"/
2007-03-20 09:36:04,361 DEBUG controller.virtualdatabase.unicorn db01: Scheduling distributedRequest 126223 from Member(address=/10.0.30.40:10000, uid=10.0.30.40:10000) 2007-03-20 09:36:04,361 DEBUG controller.virtualdatabase.unicorn handleMessageMultiThreaded (class org.continuent.sequoia.controller.virtualdatabase.protocol.NotifyCompletion): Notify failure of request:
select * from user_role where username = "Julia"/
2007-03-20 09:36:04,361 DEBUG controller.virtualdatabase.unicorn db01: Executing distributedRequest 126223 from Member(address=/10.0.30.40:10000, uid=10.0.30.40:10000) 2007-03-20 09:36:04,362 WARN controller.RequestManager.unicorn Request select * from user_role where username =... failed (Internal exception org.continuent.hedera.adapters.TimeoutException) 2007-03-20 09:36:04,362 WARN controller.virtualdatabase.unicorn Request '126223' failed (Internal exception org.continuent.hedera.adapters.TimeoutException)
=================

You can see that the query to both backends actually takes only milliseconds, but the reply to the client is not sent until after the TimeoutException occurs.

Leander


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

Reply via email to