Is there a reason why you are using CURRENT_SCN_ATTRIBUTE while you are
getting a phoenix connection? Is it because you want to query data at a
point of time? If yes, you probably want to check that the create time
stamp of the table MYTEST1 <= 1417597200000L. If you don't want any
snapshot like queries, then *not* using CURRENT_SCN_ATTRIBUTE is the way to
go.

On Wed, Dec 3, 2014 at 11:03 PM, su...@certusnet.com.cn <
su...@certusnet.com.cn> wrote:

> Hi,
> The main cause is that you put inappropriate props key value for the
> parameter.
> What properties would you expect to utilize at the phoenix connection time
> ?
>
> Thanks,
> Sun
>
> ------------------------------
> ------------------------------
>
> CertusNet
>
>
>
> *发件人:* chenwenhui <c77...@163.com>
> *发送时间:* 2014-12-04 13:49
> *收件人:* user <user@phoenix.apache.org>
> *主题:* Phoenix4.2.1 against HBase0.98.6 encountered a strange problem when
> using connection with props
> The main code fragment is as follow:
>         final Properties props = new Properties();
>         final long ts = 1417597200000L;
>         props.put(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts));
>         Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
>         final Connection con =
> DriverManager.getConnection("jdbc:phoenix:192.168.15.48", props);
>         stmt = con.createStatement();
>         stmt.executeUpdate("upsert into mytest1 values(3,'abc')");
>         con.commit();
>         con.close();
> It will report the following exception:
> Exception in thread "main"
> org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table
> undefined. tableName=MYTEST1
> at
> org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:325)
> at
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:215)
> at
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:209)
> at
> org.apache.phoenix.compile.FromCompiler.getResolverForMutation(FromCompiler.java:185)
> at
> org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:246)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:478)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:469)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:270)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:263)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:261)
> at
> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1043)
> at com.bitauto.phoenix.FirstTest.main(FirstTest.java:40)
>
> But the table named MYTEST1 indeed exists, and if using connection without
> props, i.e.
> Connection con = DriverManager.getConnection("jdbc:phoenix:192.168.15.48";
> all things will become  okay.
>
> Any ideas can be appreciated!
>
>
>

Reply via email to