[
https://issues.apache.org/jira/browse/PHOENIX-3564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Taylor resolved PHOENIX-3564.
-----------------------------------
Resolution: Duplicate
Duplicate of PHOENIX-3563.
> Initialize transaction manager client after opening HConnection
> ---------------------------------------------------------------
>
> Key: PHOENIX-3564
> URL: https://issues.apache.org/jira/browse/PHOENIX-3564
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: Thomas D'Silva
>
> We should call after the HConnection has successfully been opened here in
> ConnectionQueryServicesImpl:
> {code}
> private void openConnection() throws SQLException {
> try {
> boolean transactionsEnabled = props.getBoolean(
> QueryServices.TRANSACTIONS_ENABLED,
> QueryServicesOptions.DEFAULT_TRANSACTIONS_ENABLED);
> // only initialize the tx service client if needed
> if (transactionsEnabled) {
> initTxServiceClient();
> }
> this.connection =
> HBaseFactoryProvider.getHConnectionFactory().createConnection(this.config);
> } catch (IOException e) {
> throw new
> SQLExceptionInfo.Builder(SQLExceptionCode.CANNOT_ESTABLISH_CONNECTION)
> .setRootCause(e).build().buildException();
> }
> if (this.connection.isClosed()) { // TODO: why the heck doesn't this
> throw above?
> throw new
> SQLExceptionInfo.Builder(SQLExceptionCode.CANNOT_ESTABLISH_CONNECTION).build().buildException();
> }
> }
> {code}
> This will prevent multiple instantiations of TephraZKClientService and
> prevent many Zookeeper connections from being opened if an HConnection cannot
> be established.
> We should also call TephraZKClientService.stop() in
> ConnectionQueryServicesImpl.close(). Although this doesn't appear to close
> the Zookeeper connection, it probably should (see TEPHRA-207).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)