Chamar metodo que carrega a base de dados com progress bar Primefaces

Ja estou na parte final do meu projeto, mas preciso de uma area de
controle que carregue minha base, tenho esse metodo funcionando
quando executo ele em modo java aplication.

Gostaria de criar um visual o qual tera uma progress bar motrando a execução
do método.

segue o codigo da minha visao

<html xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"  
    xmlns:p="http://primefaces.org/ui">  
  
    <h:head>  
  			<title> Carregar DCTF</title>
  			<meta http-equiv="refresh" content="#{session.maxInactiveInterval};url=./../../index.html" />
  			
  			<script type="text/javascript">  
				    function start() {  
				        startButton1.disable();  
				        window['progress'] = setInterval(function() { 
				            var oldValue = pbClient.getValue(), newValue = oldValue + 10;  
				  	            pbClient.setValue(pbClient.getValue() + 10);  
				            if(newValue == 100) {  
				                clearInterval(window['progress']);  
				            }  
				        }, 1000);  
				    }  
				  
				    function cancel() {  
				        clearInterval(window['progress']);  
				        pbClient.setValue(0);  
				        startButton1.enable();  
				    }  
			</script>  
  			
    </h:head>  
      
    <h:body >  
    	
	    	<p:layout fullPage="true">
	    	
	    			<p:layoutUnit position="center">
		   			<h:form>
		   				 <div id="top" align="center" style="height:25%"></div>
		   				<div align="center">		
		   						<p:panel header="teste" style="width:50%;">	
		   							<h:outputText value="Deseja atualizar a Base de dados ?" />
		   							<br/>
		   							<br/>
		   							<div align="center">
		   								<p:commandButton value="Carregar" action="#{carregarDCTFControle.carregar()}" label="Carregar a DCTF"            
                                                                   onclick="start()" update="teste" type="button" widgetVar="startButton1"/>
		   							</div>
		   						 <br/>
		   						 <br/>		
								 <p:progressBar id="progressBarClient" widgetVar="pbClient" style="width:300px"/> 
		   						</p:panel>
		   			
		   				</div>	
		   				
	    				
	    			</h:form>	
	    			</p:layoutUnit>
	    	</p:layout>
	    	<p:growl id="teste" showDetail="true"/>		  
    </h:body>  
</html>  

minha duvida é em qual momento eu devo chamar o método, se ele como java aplication funciona normalmente,
pensei em chamar o método em um actionListener ou em um action nada acontece.
se chama ele em um onclick, ele dispara sem eu clicar

segue o bean

package controle.motor;


import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import dao.FiscallucropressDAO;
import modelo.Fiscallucropress;
import motor.GerarDCTF;

@ManagedBean(name="carregarDCTFControle")
@SessionScoped
public class CarregarDCTFControle {
	//obj pata manipular os metodos
	private GerarDCTF gerarDCTF = new GerarDCTF();
	
	//objdao para gerar lista
	private FiscallucropressDAO fiscalDao = new FiscallucropressDAO();
	
	//lista 
	private List<Fiscallucropress> lista = new ArrayList<Fiscallucropress>();
	
	//data inicial
	
	private int ano;
	
	public void getDataSistemaInicial(){
		
		GregorianCalendar calendar = new GregorianCalendar();
		this.ano = calendar.get(GregorianCalendar.YEAR);
	}
	
	public String carregar(){
		getDataSistemaInicial();
		for(int i=1;i<13;i++){
			lista = fiscalDao.listarMesAno(i, this.ano);
			try{
				gerarDCTF.separaMesTrimestre(lista);
			}catch (NullPointerException e) {
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro",e.toString()));
				
			}
			
		}
		return null;
		
	}
	
	public static void main(String args[]){
		new CarregarDCTFControle().carregar();
	}
	
}

ele apenas chama os métodos que ja estão funcionando

alguma ideia???

Ninguem???

Poxa galera ajuda aeee

Desisto, criei um .jar que executa no servidor