Pessoa esta aparecendo o seguinte erro no controlador de paineis
INFO: Painel cadastrado: [Painel: 10.63.15.101:8888 - Servico: (3)]
25/05/2012 16:00:50 br.gov.dataprev.controladorpainel.PainelDAO inserirNoBanco
SEVERE: Falha inserindo painel no banco. Motivo: ERRO: inserção ou atualização em tabela "paineis" viola restrição de chave estrangeira "paineis_ibfk_1"
Detalhe: Chave (id_uni)=(3) não está presente na tabela "unidades".
org.postgresql.util.PSQLException: ERRO: inserção ou atualização em tabela "paineis" viola restrição de chave estrangeira "paineis_ibfk_1"
Detalhe: Chave (id_uni)=(3) não está presente na tabela "unidades".
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1608)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1343)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:304)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at br.gov.dataprev.controladorpainel.PainelDAO.inserirNoBanco(PainelDAO.java:119)
at br.gov.dataprev.controladorpainel.PainelDAO.salvar(PainelDAO.java:52)
at br.gov.dataprev.controladorpainel.Painel.salvar(Painel.java:133)
at br.gov.dataprev.controladorpainel.GerenciadorPaineis.cadastrarPainel(GerenciadorPaineis.java:168)
at br.gov.dataprev.controladorpainel.GerenciadorPaineis.cadastrarPainel(GerenciadorPaineis.java:132)
at br.gov.dataprev.controladorpainel.recebidos.CadastroPainelMsg.processa(CadastroPainelMsg.java:75)
at br.gov.dataprev.controladorpainel.recebidos.ClienteMsg.run(ClienteMsg.java:73)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
segue a o meu server.conf
# Define a classe do Driver SQL a ser usado.
# O Driver deve ser adequado ao RDMBS em uso.
# PostgreSQL -> org.postgresql.Driver
jdbcDriver = org.postgresql.Driver
# Define a URL JDBC
# Exemplo: jdbc:<rdbms>://<host>/<database>
jdbcUrl = jdbc:postgresql://127.0.0.1/sgalivre
# Define o usuario do SQL
jdbcUser = postgres
# Define o password do login SQL
jdbcPass = buch03
# URL do Servidor Web
# Define a URL que irá retornar a lista de Unidades
# Essa URL é enviada para o painel, que a utiliza para obter a lista de unidades
# Não utilizar endereço de loopback (l27.0.0.1)
urlUnidades = http://10.63.15.101/sgalivre/painel/get_unidades.php
# URL do Servidor Web
# Define a URL que irá retornar a lista de Serviços
# Essa URL é enviada para o painel, que a utiliza para obter a lista de serviços a partir de uma unidade
# O token %unidade_id% é substituido no cliente pela unidade selecionada
# Não utilizar endereço localhost, nem 127.0.0.1
urlServicos = http://10.63.15.101/sgalivre/painel/get_servicos.php?id_uni=%id_unidade%
# Intervalo de consulta (em milésimos de segundo)
# Define o intervalo de consultas SQL em busca de novas senhas
# Um intervalo muito grande aumenta o tempo de resposta e pode permitir que uma quantidade grande de senhas
# acumule, causando um pico de processamento.
# Um intervalo muito pequeno pode causar impacto na performance do banco devido ao excesso de consultas.
intervaloConsulta = 100
# Tempo limite (em segundos) que um Painel será considerado como inativo caso nao faça contato.
# Os painéis enviam sinais de vida baseados nesse intervalo.
# Um painel continua recebendo mensagens até ser dado como inativo.
timeoutPainel = 600
# Tempo limite (em segundos) que um Painel será considerado inexistente, e será removido da memória do Controlador e do Banco de Dados.
# Esta tarefa permite a liberação de recursos da maquina executando o controlador de paineis e impede o acumulo de lixo na tabela.
# Caso o Painel de Senhas na unidade esteja ativo, ou seja, iniciado antes deste tempo limite não será removido.
# padrão: 345600 segundos (96 horas)
removerPaineisIntervalo = 345600
# Horario(HH:MM:SS) no formato 24 horas em que o controlador de paineis irá executar a tarefa de limpeza de paineis inativos
# Esta tarefa passa por todos paineis e remove aqueles que estao inativos por tempo superior a <removerPaineisIntervalo>
# É altamente recomendado que esta tarefa execute em um horário de ociosidade do sistema.
removerPaineisHora = 23:50:00
Autor: rodrigo buch garcia