<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/NOME</jndi-name>
<use-java-context>true</use-java-context>
<connection-url>jdbc:db2:MEUDB</connection-url>
<driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>
<transaction-isolation>TRANSACTION_READ_UNCOMMITTED</transaction-isolation>
<user-name>db2inst1</user-name>
<password>cmsoftware</password>
<min-pool-size>0</min-pool-size>
<!-- sql to call when connection is created -->
<new-connection-sql>select count(*) from mensagem</new-connection-sql>
<!-- sql to call on an existing pooled connection when it is obtained from pool -->
<check-valid-connection-sql>select count(*) from mensagem</check-valid-connection-sql>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>DB2</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
DataSource ds = (DataSource) ic.lookup(“java:jdbc/NOME”);
O Lookup está ok retorna algo ???
Senão der certo tenta o seguinte:
Troca no seu arquivo de configuração do ds troca o true pelo false
false
Isso faz com que vc abra o DS pra acesso remoto, e pelo Jndi também conseguirá fazer lookup sem o prefixo java:/
ic.lookup(“jdbc/NOME”);[/quote]
Ola balax… valew pela atençao…
kra testei a primeira alteraçao q vc falou e continuou retornando null…
quanto a segunda… de setar para false…
apresenta o seguinte erro…
javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: jdbc not bound]
pra tirar o peso da consciência eu criei uma alternativa pra q quando do ds estiver null
usar um metodo que conecta via jdbc puro… e esta rodando blz… o problema esta nesta configuraçao
do ds… creio eu…
segue o metodo…
[code]
try {
if(ds == null)
{
conn = getConnection(); // chama metodo alternativo para testar conexao
}else {
conn = ds.getConnection();
}
} catch (SQLException e) {
log.error(null, e);
throw new ConnectionFactoryException(“Erro de conexão com o Banco de Dados”);
}
//Se não conseguir criar uma conexao via data source executa aqui…
public static Connection getConnection() throws ConnectionFactoryException,
SQLException { //jdbc:db2://<host_name>:/
try {
Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver”);
log.debug("Conectando ao Banco...");
return DriverManager.getConnection("jdbc:db2:MEUBD", "usuario", "senha");
} catch (ClassNotFoundException e) {
log.error(null, e);
throw new SQLException(e.getMessage());
}
}[/code]
criei esta alternativa pra dar sequencia nos meus trabalhos aqui… porem quando o sistema tiver q ih pra produçao vou ter q usar via data source mesmo…
se alguem mais tiver alguma sugestao pra q eu possa testar aqui…
[quote=balax]Opa… vamos lá entao…
coloca no ds isso aqui dinovo:
false
e manda o lookup com tudo (java:comp/env/jdbc/NOME")[/quote]
ola balax…
meu velho consegui aqui…
setei a tag q vc citou como false e mandei o lookup soh com o nome jndi…
// JNDI
public static final String JNDI_NOME = “jdbc/NOME”;
… e funcionou de boa…
daquela forma q eu estava tentando fazer eu consultei de um outro projeto aqui da empresa…
soh q no caso eh usado ejb no projeto… e eu nao estou usando ejb…
vc saberia me explicar o motivo dessa alteração???