Conexão Failover

1. Conexão Failover

Marcelo
jaccksonville

(usa CentOS)

Enviado em 07/03/2012 - 15:55h

Galera,

Saudações,

tenho o seguinte cenário:

Aplicação rodando num tomcat 6.0.18, acessando banco de dados Oracle 10.2.0.5

quando o banco1 está fora a aplicação conecta no banco2.. porém quando o banco1 volta a conexão do banco2 continua estabelecida.

se eu verificar no netstat vou ver uma conexões ESTABLISHED nos 2 bancos ex.:

netstat -na | grep 1527
tcp 0 0 ::ffff:10.11.12.11:37382 ::ffff:10.11.41.150:1521 ESTABLISHED (DB1)
tcp 0 0 ::ffff:10.11.12.11:58472 ::ffff:10.11.41.150:1521 ESTABLISHED (DB1)
tcp 0 0 ::ffff:10.11.12.11:58473 ::ffff:10.11.42.151:1521 ESTABLISHED (DB2)

DB1 = banco1
DB2 = banco2

pelo netstat podemos ver que existe uma conexão estabelecida no DB2, embora o DB1 já tenha voltado.

meu /tomcat/conf/Catalina/localhost/aplicação.xml está assim:

<Resource auth="Container" driver="oracle.jdbc.driver.OracleDriver" factory="org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS" name="jdbc/DataSource2CPDS" type="org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS" url="jdbc:oracle:thin:@10.11.41.151:1521 :SID1"/>
<Resource auth="Container" dataSourceName="java:/comp/env/jdbc/DataSource2CPDS" defaultMaxActive="30" defaultMaxIdle="20" defaultMaxWait="10000" factory="org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSourceFactory" logAbandoned="true" name="jdbc/DataSource2" removeAbandoned="true" removeAbandonedTimeout="30" testOnBorrow="true" type="org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSource" validationQuery="select sysdate FROM dual"/>
<Resource auth="Container" driver="oracle.jdbc.driver.OracleDriver" factory="org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS" name="jdbc/DataSource1CPDS" type="org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS" url="jdbc:oracle:thin:@10.11.41.150:1521 :SID1"/>
<Resource auth="Container" dataSourceName="java:/comp/env/jdbc/DataSource1CPDS" defaultMaxActive="30" defaultMaxIdle="20" defaultMaxWait="10000" factory="org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSourceFactory" logAbandoned="true" name="jdbc/DataSource1" removeAbandoned="true" removeAbandonedTimeout="30" testOnBorrow="true" type="org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSource" validationQuery="select sysdate FROM dual"/>

na verdade gostaria de que quando o DB1 voltasse, a conexão do DB2 fosse fechada.

tentei colocar no /tomcat/conf/Catalina/localhost/aplicação.xml:

<Resource auth="Container" driver="oracle.jdbc.driver.OracleDriver" factory="org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS" name="jdbc/DataSource1CPDS" type="org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS" url="jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)(ADDRESS_LIST=(LOAD_BALANCE=OFF)(ADDRESS=(PROTOCOL=TCP)(HOST=10.11.41.150)(PORT=1521 ))(ADDRESS=(PROTOCOL=TCP)(HOST=10.11.41.151)(PORT=1521 )))(CONNECT_DATA=(SERVICE_NAME=SID1)))"

mas sem sucesso.

se alguém puder me ajudar agradeço desde já

valeu..






  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts