Ola galera !Tenho um sistema Desktop em produção, e cada classe tem um Main, refiro-me as telas de Cadastros e etc …
- Então, compramos um Servidor DELL e resolvi instalar Linux (Ubuntu Server 10.04).
- A conexao ficou lenta.
- Implementei um pool de conexão na primeira [color=red]tela do sistema[/color], portanto estando com a conexao disponivel,
- [color=blue]Transfiro esta conexão[/color] para cada tela de Cadastros, Consultas, Processamento e Relatorios, etc …
Até aqui o sistema estar muito rapido ! …
[color=orange]- Implementei o pool Apache, BasicDataSource: import org.apache.commons.dbcp.BasicDataSource
adicionei - commons-collections.jar , commons-pool.jar e commons-dbcp.jar ao CLASSPATH.
[/color]Eu ainda falto configurar melhor o pool !
Porque QUANDO o usuario da uma PAUSA, o pool de conexao entra em pausa, MODO DE ESPERA !!!
e demora uns 8 segundos para ativar a conexão quando o usuario retorna as digitar, ou consultar etc …
então esta ESPERA tem que MELHORAR ou acabar.COMO POSSO RESOLVER ESTA QUESTÃO ?
ALGUEM TEM OUTRA SUGESTÃO ?
FIZ A OPÇÃO CERTA ?
PENSEI QUE SERIA UM POOL IGUAL AO DO TOMCAT !.. SEPARADO !.. ? HEHEHEobrigado !
TimeOut do pool de conexao Desktop [RESOLVIDO]
4 Respostas
Alguem !!
resolvi da seguinte forma …
criei uma thead que fica consultando o banco, para ter sempre ação e não parar.
entao o administrador do banco não para.
CONCLUIDO, O MYSQL PENSA QUE ESTAMOS TRABALHANDO !! hehehe
resolvi da seguinte forma …criei uma thead que fica consultando o banco, para ter sempre ação e não parar.
entao o administrador do banco não para.
CONCLUIDO, O MYSQL PENSA QUE ESTAMOS TRABALHANDO !! hehehe
É meio xunxo né, o certo devia mudar a configuração no MySQL para não “pausar”.
Tenho um problema parecido…
Meu programa DESKTOP com SWING quando executo localhost, conecta quase na hora, e quando acesso via rede com uma máquina só para o Mysql demora exatamente 30 segundo…
Alguem sabe porque?
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/proagro", "root","");
connection = DriverManager.getConnection("jdbc:mysql://proagro:3306/proagro", "uuu","sss");
com a de cima vai na hora, e com a de baixo demora…
Thnks
Ola
nao encontrei o link referente …
da uma olhada neste exemplo … ver se ajuda …
tenha cuidado nas variaveis … que estao definidas no seu SO.
recomento que faça um copia do seu my.cnf
arquivo: my.cnf
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[safe_mysqld]
err-log = /var/log/mysql/mysql.err
[mysqld]
server-id=10
log-bin=/var/log/mysql/mysql-bin.log
binlog-do-db=pop
binlog-ignore-db=mailstats,mysql,pop.bak,radius,radius.bak,test
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
log = /var/log/mysql.log
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-locking
key-buffer define quanto de memória será armazenado para
gravar dados de consultas do MySQL. Quanto maior a quantidade
de memória disponível, melhor será o desempenho do servidor
set-variable = key_buffer=312M
set-variable = max_allowed_packet=1M
table_cache é muito importante, este número deve ser o dobro
do número definido pela variável max_connections
set-variable = table_cache=20000
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
set-variable = thread_concurrency=8
max_connections vai definir quantos sub-processos e
consequentemente quantas conexões seu MySQL suportará
simultaneamente. Por incrível que pareça, quanto maior este
número, menor será o load do seu server. Tente restringir este
para um número baixo e você verá que loucura está fazendo
set-variable = max_connections=10000
set-variable = net_write_timeout=30
set-variable = connect_timeout=2
set-variable = wait_timeout=30
Read the manual if you want to enable InnoDB!
skip-innodb
[mysqldump]
quick
set-variable = max_allowed_packet=1M
[mysql]
[isamchk]
set-variable = key_buffer=64M # era 16M
