[ 
https://issues.apache.org/jira/browse/PHOENIX-956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13984603#comment-13984603
 ] 

James Taylor commented on PHOENIX-956:
--------------------------------------

FWIW, the model we're considering would be to tweak the cluster connection 
caching we do to be per "user" per "cluster" per JVM. We currently do not 
consider the "user" information in the JDBC connection string, but it would be 
easy to modify. In that way, at connection time, you'd use the appropriate 
"user", for example "long-running-user" vs "short-running-user" in which case 
you'd have two HConnections to the cluster from your client.

> Connection properties ignored
> -----------------------------
>
>                 Key: PHOENIX-956
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-956
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.0.0
>         Environment: Win 7
>            Reporter: Cristian Armaselu
>            Assignee: Samarth Jain
>
> Connection opened as:
>             Properties connectionProperties = new Properties();
>             
> connectionProperties.setProperty(QueryServices.MAX_MUTATION_SIZE_ATTRIB,"10000000");
>             
> connectionProperties.setProperty(QueryServices.IMMUTABLE_ROWS_ATTRIB,"10000000");
>             connection = 
> DriverManager.getConnection("jdbc:phoenix:ulvdtlchd01:2181",connectionProperties);
> Executing:
> preparedStatement = connection.prepareStatement("upsert into 
> cristi_test(id,name,other) values(?,?,?)");
> for (int i = 0; i < 10000000; i++) {
>                 preparedStatement.setString(1, "AAAA" + i);
>                 preparedStatement.setString(2, "BBBB" + i);
>                 preparedStatement.setString(3, "cccc" + i);
>                 preparedStatement.execute();
> }
> Getting:
> java.lang.IllegalArgumentException: MutationState size of 500001 is bigger 
> than max allowed size of 500000
>       at 
> org.apache.phoenix.execute.MutationState.throwIfTooBig(MutationState.java:114)
>       at org.apache.phoenix.execute.MutationState.join(MutationState.java:163)
>       at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:227)
>       at 
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:185)
>       at 
> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:146)
>       at 
> org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:151)
> Because:
> In PhoenixConnection constructor :
> this.info = info == null ? new Properties() : new Properties(info);
> info passed to the constructor is size 3
> the above is not copying the properties so the below is executed
>         if (this.info.isEmpty() && tenantId == null) {
>             this.services = services;
> since this.info.isEmpty() is true
> That means the passed info connection properties are ignored and not wrapped 
> in the DelegateConnectionQueryServices which follows the other branch of the 
> if above



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to