Hi, Not sure if this is the same problem but I found that by adding the postgres JDBC driver to the classpath of all sequoia controllers the client recieves the message straight away. I traced this problem back in the sequoia 2.4 days to be related to the fact that the group software couldn't serialize the SQLException to transmit accross the cluster because it couldn't load the exeception class and thus caused a runtime error on the remote controller...
-----Original Message-----
From: [EMAIL PROTECTED] on behalf of Leander Koornneef
Sent: Tue 20/03/2007 5:56 PM
To: Sequoia general mailing list
Cc:
Subject: Re: [Sequoia] Administer the cluster-environment
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.DistributedCo
mmit): 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.DistributedCo
mmit): 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.DistributedSt
atementExecuteQuery): 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.DistributedSt
atementExecuteQuery): 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.getSQLExcep
tion(SQLExceptionFactory.java:88)
at
org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.checkTaskCo
mpletion(RAIDb1.java:936)
at
org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.execBroadca
stReadRequest(RAIDb1.java:223)
at
org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.statementEx
ecuteQuery(RAIDb1.java:158)
at
org.continuent.sequoia.controller.requestmanager.RequestManager.statemen
tExecuteQuery(RequestManager.java:592)
at
org.continuent.sequoia.controller.requestmanager.distributed.Distributed
RequestManager.execLocalStatementExecuteQuery
(DistributedRequestManager.java:1351)
at
org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedSt
atementExecuteQuery.executeScheduledRequest
(DistributedStatementExecuteQuery.java:93)
at
org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedRe
quest.handleMessageMultiThreaded(DistributedRequest.java:157)
at
org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualData
base.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.NotifyComplet
ion): 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.NotifyComplet
ion): 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
<<winmail.dat>>
_______________________________________________ Sequoia mailing list [email protected] https://forge.continuent.org/mailman/listinfo/sequoia
