Problemas com Multi Threads SQL Server

Pessoal,

Tenho um processo que roda com multithreads, ele roda normal quando a carga não é muito grande. Mas quando a carga é grande e há muitos acessos simultaneos ao banco ele dá problemas. A falha mais comum é de connection reset.

Não sei se o problema ocorre devido ao SO Linux, configurações no Hibernate ou pelo SQL Server 2000 sp3.

Os erros não ocorrem sempre, nem sempre aparecem a mesma mensagem de erro. A unica coincidencia é que são sempre erros referentes a banco. As vezes aparece o erro de null id no objeto que tento salvar. Sendo que o campo id é identity no hibernate.

<id name="idArtificial" type="int"> <column name="idArtificial" /> <generator class="identity" /> </id>

    [code]<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
    <property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:jtds:sqlserver://server:porta/database</property> 
    <property name="hibernate.connection.username">xxx</property>
    <property name="hibernate.connection.password">xxx</property>

   	<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    <property name="hibernate.current_session_context_class">thread</property>

    <property name="hibernate.c3p0.max_size">1200</property>
    <property name="hibernate.c3p0.min_size">15</property>
    <property name="hibernate.c3p0.timeout">1800</property>
    <property name="hibernate.c3p0.max_statements">600</property>
    <property name="hibernate.c3p0.idle_test_period">600</property>
    <property name="hibernate.c3p0.acquire_increment">3</property>
    <property name="hibernate.c3p0.min_pool_size">15</property>
    <property name="hibernate.c3p0.max_pool_size">1200</property>[/code]

Quando rodo a aplicação na minha maquina (Windows) o erro não ocorre com tanta frquencia.

Já configurei tambem os parametros -Xms512m -Xmx1024m -server no tomcat 5.5

Eu acho que o problema que você está falando é de: “connection reset by peer”.
Significa que é o banco que está fechando a conexão, o que também significa que é o banco que não está dando conta das solicitações. Vale a pena verificar alguns parâmetros do banco (como o número de conexões permitidas, etc).

[]´s
Rodrigo