[jira] [Updated] (ROCKETMQ-242) mqclient can not fetch nameSrvAddr periodly

2017-07-28 Thread Eason Chen (JIRA)

 [ 
https://issues.apache.org/jira/browse/ROCKETMQ-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eason Chen updated ROCKETMQ-242:

Description: 
when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=

{panel:title=My title}
Some text with a title
{panel}


  was:
when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=


{code:java}
public void start() throws MQClientException {

synchronized (this) {
switch (this.serviceState) {
case CREATE_JUST:
this.serviceState = ServiceState.START_FAILED;
// If not specified,looking address from name server
   *{color:red} if (null == this.clientConfig.getNamesrvAddr()) 
{

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}{color}*
// Start request-response channel
this.mQClientAPIImpl.start();
// Start various schedule tasks
this.startScheduledTask();
// Start pull service
this.pullMessageService.start();
// Start rebalance service
this.rebalanceService.start();
// Start push service

this.defaultMQProducer.getDefaultMQProducerImpl().start(false);
log.info("the client factory [{}] start OK", this.clientId);
this.serviceState = ServiceState.RUNNING;
break;
case RUNNING:
break;
case SHUTDOWN_ALREADY:
break;
case START_FAILED:
throw new MQClientException("The Factory object[" + 
this.getClientId() + "] has been created before, and failed.", null);
default:
break;
}
}
}

private void startScheduledTask() {
  *{color:red} if (null == this.clientConfig.getNamesrvAddr()) {{color}*
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {

@Override
public void run() {
try {

MQClientInstance.this.mQClientAPIImpl.fetchNameServerAddr();
} catch (Exception e) {
log.error("ScheduledTask fetchNameServerAddr 
exception", e);
}
}
}, 1000 * 10, 1000 * 60 * 2, TimeUnit.MILLISECONDS);
}
{code}




> mqclient can not fetch nameSrvAddr periodly
> ---
>
> Key: ROCKETMQ-242
> URL: https://issues.apache.org/jira/browse/ROCKETMQ-242
> Project: Apache RocketMQ
>  Issue Type: Bug
>  Components: rocketmq-client
>Affects Versions: 4.0.0-incubating, 4.1.0-incubating
> Environment: test and production
>Reporter: Eason Chen
>Assignee: Xiaorui Wang
> Fix For: 4.2.0-incubating
>
>
> when mqclientinstance start, it getNameSrvAddr once by bellow code:
>  if (null == this.clientConfig.getNamesrvAddr()) {
> 
> this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
> }
> but in startScheduledTask(),it will not start the schedule task if 
> namesrvAddr is not null
> code=
> {panel:title=My title}
> Some text with a title
> {panel}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (ROCKETMQ-242) mqclient can not fetch nameSrvAddr periodly

2017-07-28 Thread Eason Chen (JIRA)

 [ 
https://issues.apache.org/jira/browse/ROCKETMQ-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eason Chen updated ROCKETMQ-242:

Description: 
when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=


{code:java}
public void start() throws MQClientException {

synchronized (this) {
switch (this.serviceState) {
case CREATE_JUST:
this.serviceState = ServiceState.START_FAILED;
// If not specified,looking address from name server
   *{color:red} if (null == this.clientConfig.getNamesrvAddr()) 
{

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}{color}*
// Start request-response channel
this.mQClientAPIImpl.start();
// Start various schedule tasks
this.startScheduledTask();
// Start pull service
this.pullMessageService.start();
// Start rebalance service
this.rebalanceService.start();
// Start push service

this.defaultMQProducer.getDefaultMQProducerImpl().start(false);
log.info("the client factory [{}] start OK", this.clientId);
this.serviceState = ServiceState.RUNNING;
break;
case RUNNING:
break;
case SHUTDOWN_ALREADY:
break;
case START_FAILED:
throw new MQClientException("The Factory object[" + 
this.getClientId() + "] has been created before, and failed.", null);
default:
break;
}
}
}

private void startScheduledTask() {
  *{color:red} if (null == this.clientConfig.getNamesrvAddr()) {{color}*
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {

@Override
public void run() {
try {

MQClientInstance.this.mQClientAPIImpl.fetchNameServerAddr();
} catch (Exception e) {
log.error("ScheduledTask fetchNameServerAddr 
exception", e);
}
}
}, 1000 * 10, 1000 * 60 * 2, TimeUnit.MILLISECONDS);
}
{code}



  was:
when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=

{panel:title=My title}
Some text with a title
{panel}



> mqclient can not fetch nameSrvAddr periodly
> ---
>
> Key: ROCKETMQ-242
> URL: https://issues.apache.org/jira/browse/ROCKETMQ-242
> Project: Apache RocketMQ
>  Issue Type: Bug
>  Components: rocketmq-client
>Affects Versions: 4.0.0-incubating, 4.1.0-incubating
> Environment: test and production
>Reporter: Eason Chen
>Assignee: Xiaorui Wang
> Fix For: 4.2.0-incubating
>
>
> when mqclientinstance start, it getNameSrvAddr once by bellow code:
>  if (null == this.clientConfig.getNamesrvAddr()) {
> 
> this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
> }
> but in startScheduledTask(),it will not start the schedule task if 
> namesrvAddr is not null
> code=
> {code:java}
> public void start() throws MQClientException {
> synchronized (this) {
> switch (this.serviceState) {
> case CREATE_JUST:
> this.serviceState = ServiceState.START_FAILED;
> // If not specified,looking address from name server
>*{color:red} if (null == 
> this.clientConfig.getNamesrvAddr()) {
> 
> this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
> }{color}*
> // Start request-response channel
> this.mQClientAPIImpl.start();
> // Start various schedule tasks
> this.startScheduledTask();
> // Start pull service
>

[jira] [Updated] (ROCKETMQ-242) mqclient can not fetch nameSrvAddr periodly

2017-07-28 Thread Eason Chen (JIRA)

 [ 
https://issues.apache.org/jira/browse/ROCKETMQ-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eason Chen updated ROCKETMQ-242:

Description: 
when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=


{code:java}
public void start() throws MQClientException {

synchronized (this) {
switch (this.serviceState) {
case CREATE_JUST:
this.serviceState = ServiceState.START_FAILED;
// If not specified,looking address from name server
   *{color:red} if (null == this.clientConfig.getNamesrvAddr()) 
{

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}{color}*
// Start request-response channel
this.mQClientAPIImpl.start();
// Start various schedule tasks
this.startScheduledTask();
// Start pull service
this.pullMessageService.start();
// Start rebalance service
this.rebalanceService.start();
// Start push service

this.defaultMQProducer.getDefaultMQProducerImpl().start(false);
log.info("the client factory [{}] start OK", this.clientId);
this.serviceState = ServiceState.RUNNING;
break;
case RUNNING:
break;
case SHUTDOWN_ALREADY:
break;
case START_FAILED:
throw new MQClientException("The Factory object[" + 
this.getClientId() + "] has been created before, and failed.", null);
default:
break;
}
}
}

private void startScheduledTask() {
  *{color:red} if (null == this.clientConfig.getNamesrvAddr()) {{color}*
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {

@Override
public void run() {
try {

MQClientInstance.this.mQClientAPIImpl.fetchNameServerAddr();
} catch (Exception e) {
log.error("ScheduledTask fetchNameServerAddr 
exception", e);
}
}
}, 1000 * 10, 1000 * 60 * 2, TimeUnit.MILLISECONDS);
}
{code}



  was:


when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=
{code:java}
public void start() throws MQClientException {

synchronized (this) {
switch (this.serviceState) {
case CREATE_JUST:
this.serviceState = ServiceState.START_FAILED;
// If not specified,looking address from name server
   *{color:red} if (null == this.clientConfig.getNamesrvAddr()) 
{

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}{color}*
// Start request-response channel
this.mQClientAPIImpl.start();
// Start various schedule tasks
this.startScheduledTask();
// Start pull service
this.pullMessageService.start();
// Start rebalance service
this.rebalanceService.start();
// Start push service

this.defaultMQProducer.getDefaultMQProducerImpl().start(false);
log.info("the client factory [{}] start OK", this.clientId);
this.serviceState = ServiceState.RUNNING;
break;
case RUNNING:
break;
case SHUTDOWN_ALREADY:
break;
case START_FAILED:
throw new MQClientException("The Factory object[" + 
this.getClientId() + "] has been created before, and failed.", null);
default:
break;
}
}
}

private void startScheduledTask() {
  *{color:red} if (null == this.clientConfig.getNamesrvAddr()) {{color}*
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {

   

[jira] [Updated] (ROCKETMQ-242) mqclient can not fetch nameSrvAddr periodly

2017-07-28 Thread Eason Chen (JIRA)

 [ 
https://issues.apache.org/jira/browse/ROCKETMQ-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eason Chen updated ROCKETMQ-242:

Description: 


when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=
{code:java}
public void start() throws MQClientException {

synchronized (this) {
switch (this.serviceState) {
case CREATE_JUST:
this.serviceState = ServiceState.START_FAILED;
// If not specified,looking address from name server
   *{color:red} if (null == this.clientConfig.getNamesrvAddr()) 
{

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}{color}*
// Start request-response channel
this.mQClientAPIImpl.start();
// Start various schedule tasks
this.startScheduledTask();
// Start pull service
this.pullMessageService.start();
// Start rebalance service
this.rebalanceService.start();
// Start push service

this.defaultMQProducer.getDefaultMQProducerImpl().start(false);
log.info("the client factory [{}] start OK", this.clientId);
this.serviceState = ServiceState.RUNNING;
break;
case RUNNING:
break;
case SHUTDOWN_ALREADY:
break;
case START_FAILED:
throw new MQClientException("The Factory object[" + 
this.getClientId() + "] has been created before, and failed.", null);
default:
break;
}
}
}

private void startScheduledTask() {
  *{color:red} if (null == this.clientConfig.getNamesrvAddr()) {{color}*
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {

@Override
public void run() {
try {

MQClientInstance.this.mQClientAPIImpl.fetchNameServerAddr();
} catch (Exception e) {
log.error("ScheduledTask fetchNameServerAddr 
exception", e);
}
}
}, 1000 * 10, 1000 * 60 * 2, TimeUnit.MILLISECONDS);
}
{code}

  was:
when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=
{code}
public void start() throws MQClientException {

synchronized (this) {
switch (this.serviceState) {
case CREATE_JUST:
this.serviceState = ServiceState.START_FAILED;
// If not specified,looking address from name server
   *{color:red} if (null == this.clientConfig.getNamesrvAddr()) 
{

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}{color}*
// Start request-response channel
this.mQClientAPIImpl.start();
// Start various schedule tasks
this.startScheduledTask();
// Start pull service
this.pullMessageService.start();
// Start rebalance service
this.rebalanceService.start();
// Start push service

this.defaultMQProducer.getDefaultMQProducerImpl().start(false);
log.info("the client factory [{}] start OK", this.clientId);
this.serviceState = ServiceState.RUNNING;
break;
case RUNNING:
break;
case SHUTDOWN_ALREADY:
break;
case START_FAILED:
throw new MQClientException("The Factory object[" + 
this.getClientId() + "] has been created before, and failed.", null);
default:
break;
}
}
}

private void startScheduledTask() {
  *{color:red} if (null == this.clientConfig.getNamesrvAddr()) {{color}*
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {


[jira] [Updated] (ROCKETMQ-242) mqclient can not fetch nameSrvAddr periodly

2017-07-28 Thread Eason Chen (JIRA)

 [ 
https://issues.apache.org/jira/browse/ROCKETMQ-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eason Chen updated ROCKETMQ-242:

Description: 
when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=
{code}
public void start() throws MQClientException {

synchronized (this) {
switch (this.serviceState) {
case CREATE_JUST:
this.serviceState = ServiceState.START_FAILED;
// If not specified,looking address from name server
   *{color:red} if (null == this.clientConfig.getNamesrvAddr()) 
{

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}{color}*
// Start request-response channel
this.mQClientAPIImpl.start();
// Start various schedule tasks
this.startScheduledTask();
// Start pull service
this.pullMessageService.start();
// Start rebalance service
this.rebalanceService.start();
// Start push service

this.defaultMQProducer.getDefaultMQProducerImpl().start(false);
log.info("the client factory [{}] start OK", this.clientId);
this.serviceState = ServiceState.RUNNING;
break;
case RUNNING:
break;
case SHUTDOWN_ALREADY:
break;
case START_FAILED:
throw new MQClientException("The Factory object[" + 
this.getClientId() + "] has been created before, and failed.", null);
default:
break;
}
}
}

private void startScheduledTask() {
  *{color:red} if (null == this.clientConfig.getNamesrvAddr()) {{color}*
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {

@Override
public void run() {
try {

MQClientInstance.this.mQClientAPIImpl.fetchNameServerAddr();
} catch (Exception e) {
log.error("ScheduledTask fetchNameServerAddr 
exception", e);
}
}
}, 1000 * 10, 1000 * 60 * 2, TimeUnit.MILLISECONDS);
}
{code}

  was:
when mqclientinstance start, it getNameSrvAddr once by bellow code:
 if (null == this.clientConfig.getNamesrvAddr()) {

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}

but in startScheduledTask(),it will not start the schedule task if namesrvAddr 
is not null

code=

public void start() throws MQClientException {

synchronized (this) {
switch (this.serviceState) {
case CREATE_JUST:
this.serviceState = ServiceState.START_FAILED;
// If not specified,looking address from name server
   *{color:red} if (null == this.clientConfig.getNamesrvAddr()) 
{

this.clientConfig.setNamesrvAddr(this.mQClientAPIImpl.fetchNameServerAddr());
}{color}*
// Start request-response channel
this.mQClientAPIImpl.start();
// Start various schedule tasks
this.startScheduledTask();
// Start pull service
this.pullMessageService.start();
// Start rebalance service
this.rebalanceService.start();
// Start push service

this.defaultMQProducer.getDefaultMQProducerImpl().start(false);
log.info("the client factory [{}] start OK", this.clientId);
this.serviceState = ServiceState.RUNNING;
break;
case RUNNING:
break;
case SHUTDOWN_ALREADY:
break;
case START_FAILED:
throw new MQClientException("The Factory object[" + 
this.getClientId() + "] has been created before, and failed.", null);
default:
break;
}
}
}

private void startScheduledTask() {
  *{color:red} if (null == this.clientConfig.getNamesrvAddr()) {{color}*
this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {