client behavior after server crash

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

client behavior after server crash

dsetrakyan
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.
Reply | Threaded
Open this post in threaded view
|

Re: client behavior after server crash

Sergi
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 <[hidden email]>:

> 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.
>
Reply | Threaded
Open this post in threaded view
|

Re: client behavior after server crash

dsetrakyan
On Thu, Jul 23, 2015 at 12:29 AM, Sergi Vladykin <[hidden email]>
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 <[hidden email]>:
>
> > 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.
> >
>