TimeOut do pool de conexao Desktop [RESOLVIDO]

4 respostas
Lindberg

Lindberg:
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 !.. ? HEHEHE

obrigado !

ref: http://www.compute-rs.com/pt/conselho-924710.htm

4 Respostas

Lindberg

Alguem !!

Lindberg

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

rcipriani

Lindberg:
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

Lindberg

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

:stuck_out_tongue:

[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

Criado 22 de maio de 2010
Ultima resposta 13 de set. de 2010
Respostas 4
Participantes 2