You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Dmitriy Setrakyan <ds...@apache.org> on 2015/07/22 19:53:50 UTC

client behavior after server crash

Igniters,

What should be the current client behavior after it has successfully
connected to the server, but then all server nodes have crashed?

Will all the client APIs throw an IgniteClientDisconnectedException? If
yes, then I don't think that our query API works the same way, as I get an
SQL schema exception in this case (see below).

Sergi, I know that SQL falls under your jurisdiction. Can you advise?

-----
Exception in thread "main" class org.apache.ignite.IgniteException: Failed
to set schema for DB connection for thread [schema=words]
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForSpace(IgniteH2Indexing.java:195)
at
org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:423)
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$2.iterator(IgniteH2Indexing.java:777)
at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:59)
at
org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:71)
at demo.streaming.QueryWords.main(QueryWords.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to set
schema for DB connection for thread [schema=words]
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForThread(IgniteH2Indexing.java:226)
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForSpace(IgniteH2Indexing.java:192)
... 10 more
Caused by: org.h2.jdbc.JdbcSQLException: Schema "words" not found; SQL
statement:
SET SCHEMA "words" [90079-175]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
at org.h2.message.DbException.get(DbException.java:172)
at org.h2.message.DbException.get(DbException.java:149)
at org.h2.engine.Database.getSchema(Database.java:1609)
at org.h2.command.dml.Set.update(Set.java:364)
at org.h2.command.CommandContainer.update(CommandContainer.java:79)
at org.h2.command.Command.executeUpdate(Command.java:253)
at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:128)
at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:113)
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForThread(IgniteH2Indexing.java:218)
... 11 more

Process finished with exit code 1
---------

D.

Re: client behavior after server crash

Posted by Dmitriy Setrakyan <ds...@apache.org>.
On Thu, Jul 23, 2015 at 12:29 AM, Sergi Vladykin <se...@gmail.com>
wrote:

> I'm sure the current exception is wrong, but what happens for other cache
> operations (like get/put) when all the server nodes got stopped? I believe
> the behavior must be consistent.
>

As I mentioned below, I believe that IgniteClientDisconnectedException is
thrown. I think the query logic should also throw the same exception.
Please take a look at this exception - it has a Future inside it which
completes upon client successfully connecting back.


>
> Sergi
>
> 2015-07-22 20:53 GMT+03:00 Dmitriy Setrakyan <ds...@apache.org>:
>
> > Igniters,
> >
> > What should be the current client behavior after it has successfully
> > connected to the server, but then all server nodes have crashed?
> >
> > Will all the client APIs throw an IgniteClientDisconnectedException? If
> > yes, then I don't think that our query API works the same way, as I get
> an
> > SQL schema exception in this case (see below).
> >
> > Sergi, I know that SQL falls under your jurisdiction. Can you advise?
> >
> > -----
> > Exception in thread "main" class org.apache.ignite.IgniteException:
> Failed
> > to set schema for DB connection for thread [schema=words]
> > at
> >
> >
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForSpace(IgniteH2Indexing.java:195)
> > at
> >
> >
> org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:423)
> > at
> >
> >
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$2.iterator(IgniteH2Indexing.java:777)
> > at
> >
> >
> org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:59)
> > at
> >
> >
> org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:71)
> > at demo.streaming.QueryWords.main(QueryWords.java:35)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> > at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > at java.lang.reflect.Method.invoke(Method.java:483)
> > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
> > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to set
> > schema for DB connection for thread [schema=words]
> > at
> >
> >
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForThread(IgniteH2Indexing.java:226)
> > at
> >
> >
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForSpace(IgniteH2Indexing.java:192)
> > ... 10 more
> > Caused by: org.h2.jdbc.JdbcSQLException: Schema "words" not found; SQL
> > statement:
> > SET SCHEMA "words" [90079-175]
> > at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
> > at org.h2.message.DbException.get(DbException.java:172)
> > at org.h2.message.DbException.get(DbException.java:149)
> > at org.h2.engine.Database.getSchema(Database.java:1609)
> > at org.h2.command.dml.Set.update(Set.java:364)
> > at org.h2.command.CommandContainer.update(CommandContainer.java:79)
> > at org.h2.command.Command.executeUpdate(Command.java:253)
> > at
> org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:128)
> > at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:113)
> > at
> >
> >
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForThread(IgniteH2Indexing.java:218)
> > ... 11 more
> >
> > Process finished with exit code 1
> > ---------
> >
> > D.
> >
>

Re: client behavior after server crash

Posted by Sergi Vladykin <se...@gmail.com>.
I'm sure the current exception is wrong, but what happens for other cache
operations (like get/put) when all the server nodes got stopped? I believe
the behavior must be consistent.

Sergi

2015-07-22 20:53 GMT+03:00 Dmitriy Setrakyan <ds...@apache.org>:

> Igniters,
>
> What should be the current client behavior after it has successfully
> connected to the server, but then all server nodes have crashed?
>
> Will all the client APIs throw an IgniteClientDisconnectedException? If
> yes, then I don't think that our query API works the same way, as I get an
> SQL schema exception in this case (see below).
>
> Sergi, I know that SQL falls under your jurisdiction. Can you advise?
>
> -----
> Exception in thread "main" class org.apache.ignite.IgniteException: Failed
> to set schema for DB connection for thread [schema=words]
> at
>
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForSpace(IgniteH2Indexing.java:195)
> at
>
> org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:423)
> at
>
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$2.iterator(IgniteH2Indexing.java:777)
> at
>
> org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:59)
> at
>
> org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:71)
> at demo.streaming.QueryWords.main(QueryWords.java:35)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:483)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to set
> schema for DB connection for thread [schema=words]
> at
>
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForThread(IgniteH2Indexing.java:226)
> at
>
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForSpace(IgniteH2Indexing.java:192)
> ... 10 more
> Caused by: org.h2.jdbc.JdbcSQLException: Schema "words" not found; SQL
> statement:
> SET SCHEMA "words" [90079-175]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
> at org.h2.message.DbException.get(DbException.java:172)
> at org.h2.message.DbException.get(DbException.java:149)
> at org.h2.engine.Database.getSchema(Database.java:1609)
> at org.h2.command.dml.Set.update(Set.java:364)
> at org.h2.command.CommandContainer.update(CommandContainer.java:79)
> at org.h2.command.Command.executeUpdate(Command.java:253)
> at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:128)
> at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:113)
> at
>
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForThread(IgniteH2Indexing.java:218)
> ... 11 more
>
> Process finished with exit code 1
> ---------
>
> D.
>