[ Abortado ] Pool de Conexão GLASFISH

13 respostas
R

Criei um pool de conexão pelo glassfish e deu a mensagem de erro abixo, tentei com o driver jdbc da microsoft e o jtds ambos dão a mesma mensagem, pode ser que não esta achando o driver, alguém sabe em qual diretorio do glassfish devo deixar o jar ?

Ping Connection Pool failed for SqlServerPool. O Java Runtime Environment (JRE) versão 1.7 não tem suporte nesse driver. Use a biblioteca de classes sqljdbc4.jar, que dá suporte para JDBC 4.0. Please check the server.log for more details

13 Respostas

T

Coloca dentro da pasta

glassfish\modules

Abs

L

Fala Ricardo Beleza?

A pasta padrão para jars de conexoes é

“<DiretorioDeInstalaçãoGlassFish>/glassfish/libs”

por exemplo:

“C:\glassfish3\glassfish\lib”

Após voce ter copiando o jar pra essa pasta, reinicie o servidor para ele carregar o novo jar, assim provavelmente nao vai mais dar o erro, a não ser que tenha mais algo de errado configurado.

Qualquer coisa posta aew!

Flws

R

Consegui deu certo , agora como sou novo em jndi, para eu usar este pool que criei no glassfish , basta somente fazer uma classe no java para fazer o lookup, sem precisar configura nada , como eu uso esta conexão ?

R

Na administração, crie um JDBC Resource com seu pool de conexão, com nome por exemplo de “jdbc/__conexao”.
Na app web, você coloca no web.xml algo assim:

&lt;resource-ref&gt; &lt;description&gt;Conexão ao Banco de dados&lt;/description&gt; &lt;res-ref-name&gt;jdbc/__conexao&lt;/res-ref-name&gt; &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt; &lt;res-auth&gt;Container&lt;/res-auth&gt; &lt;res-sharing-scope&gt;Shareable&lt;/res-sharing-scope&gt; &lt;/resource-ref&gt;

Se for pegar por um servlet, chame o DataSource por um Service Locator pela conexão “jdbc/__conexao”

R

Criei no glassfish um JDBC resources com o nome ldbc/_sqlserver , adicionei as tags

<description>Conexão ao Banco de dados</description>
<res-ref-name>jdbc/_sqlServer</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

criei a classe e estou chamando assim

InitialContext initialContext = new InitialContext();

DataSource dataSource = (DataSource) initialContext.lookup(jdbc/_sqlserver);

return dataSource.getConnection();

porem da u seguinte erro:

Mai 14, 2012 1:40:18 PM com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl findDerbyClient

Informações: Cannot find javadb client jar file, derby jdbc driver will not be available by default.

java.lang.RuntimeException: Orb initialization erorr

at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:180)

at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:364)

at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:371)

at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:401)

at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:346)

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)

at javax.naming.InitialContext.lookup(Unknown Source)

at br.com.hrtech.hrserviceclient.conexao.ConnectionFactory.getConnection(ConnectionFactory.java:20)

at br.com.hrtech.hrserviceclient.conexao.TesteConexao.main(TesteConexao.java:11)

Caused by: java.lang.NullPointerException

at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:152)

 9 more

Mai 14, 2012 1:40:18 PM br.com.hrtech.hrserviceclient.conexao.ConnectionFactory getConnection

Grave: null

javax.naming.NamingException: Lookup failed for jdbc/_sqlserver in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is java.lang.RuntimeException: Orb initialization erorr]]

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518)

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)

at javax.naming.InitialContext.lookup(Unknown Source)

at br.com.hrtech.hrserviceclient.conexao.ConnectionFactory.getConnection(ConnectionFactory.java:20)

at br.com.hrtech.hrserviceclient.conexao.TesteConexao.main(TesteConexao.java:11)

Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is java.lang.RuntimeException: Orb initialization erorr]

at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:351)

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)

 4 more

Caused by: java.lang.RuntimeException: Orb initialization erorr

at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:180)

at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:364)

at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:371)

at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:401)

at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:346)

 5 more

Caused by: java.lang.NullPointerException

at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:152)

 9 more

o que esta errado.

tenho o pool criado e o resources e chamei criado a classe no eclipse ,o web.xml esta apontando para o pool criado por que esta procurando pelo derby ?

R

Seu pool deve estar configurado para o Derby e não para o SQLServer…

R

Mais não tenho nada de Derby aqui na maquina, criei um resource pelo eclipse ele criou o arquivo sun-resources.xml com as tag

<?xml version=“1.0” encoding=“UTF-8”?>
<!DOCTYPE resources PUBLIC “-//Sun Microsystems, Inc.//DTD Application Server 9.0 Resource Definitions //EN” “http://www.sun.com/software/appserver/dtds/sun-resources_1_3.dtd”>
<resources>
<jdbc-resource enabled=“true” jndi-name=“jdbc/_sqlserver” object-type=“user” pool-name=“SQL Server_qualidade_saPool”/>
<jdbc-connection-pool allow-non-component-callers=“false” associate-with-thread=“false” connection-creation-retry-attempts=“0” connection-creation-retry-interval-in-seconds=“10” connection-leak-reclaim=“false” connection-leak-timeout-in-seconds=“0” connection-validation-method=“auto-commit” datasource-classname=“com.microsoft.sqlserver.jdbc.SQLServerDataSource” fail-all-connections=“false” idle-timeout-in-seconds=“300” is-connection-validation-required=“false” is-isolation-level-guaranteed=“true” lazy-connection-association=“false” lazy-connection-enlistment=“false” match-connections=“false” max-connection-usage-count=“0” max-pool-size=“32” max-wait-time-in-millis=“60000” name=“SQL Server_qualidade_saPool” non-transactional-connections=“false” pool-resize-quantity=“2” res-type=“javax.sql.DataSource” statement-timeout-in-seconds="-1" steady-pool-size=“8” validate-atmost-once-period-in-seconds=“0” wrap-jdbc-objects=“false”>

&lt;property name="serverName" value="192.168.0.100"/&gt;
    &lt;property name="PortNumber" value="1433"/&gt;
    &lt;property name="DatabaseName" value="qualidade"/&gt;
    &lt;property name="User" value="sa"/&gt;
    &lt;property name="Password" value="TECH"/&gt;
    &lt;property name="URL" value="jdbc:sqlserver://192.168.0.100:1433;databaseName=qualidade"/&gt;
    &lt;property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/&gt;

</jdbc-connection-pool>
</resources>
e o lazarento esta procurando o derby

R

Tente configurar o Glassfish entrando pelo administrador dele, sem ir pelo Eclipse.

R

Fiz das duas formas, e o mesmo procura pelo derby,
estou empacado mais vou descrever as etapas.
1- entrei pelo glassfish e configurei o pool de conexão para sqlserver , pinguei quando terminei e o ping foi sucesso.
2- criei o resource escolhando o pool do sqlserver que antes tinha criado.
3- criei a classe

public class ConnectionFactory {

public Connection getConnection() {

try {
        InitialContext initialContext = new InitialContext();
        DataSource dataSource = (DataSource) initialContext.lookup("..jdbc/teste");
        
        return dataSource.getConnection();

    } catch (NamingException ex) {

        Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);

    } catch (SQLException ex) {

        Logger.getLogger(ConnectionFactory.class.getName()).log(Level.SEVERE, null, ex);

    }

    return null;

}
}

4- chamei o metodo para teste assim

public static void main(String[] args) {

// TODO Auto-generated method stub

ConnectionFactory c = new ConnectionFactory();

c.getConnection();

5 - Deu o erro.

Mai 14, 2012 3:10:37 PM com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl findDerbyClient

Informações: Cannot find javadb client jar file, derby jdbc driver will not be available by default.

java.lang.RuntimeException: Orb initialization erorr

at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:180)

at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:364)

at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:371)

at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:401)

at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:346)

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)

at javax.naming.InitialContext.lookup(Unknown Source)

at br.com.hrtech.hrserviceclient.conexao.ConnectionFactory.getConnection(ConnectionFactory.java:18)

at br.com.hrtech.hrserviceclient.conexao.TesteConexao.main(TesteConexao.java:11)

Caused by: java.lang.NullPointerException

at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:152)

 9 more

Mai 14, 2012 3:10:37 PM br.com.hrtech.hrserviceclient.conexao.ConnectionFactory getConnection

Grave: null

javax.naming.NamingException: Lookup failed for ‘…jdbc/teste in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is java.lang.RuntimeException: Orb initialization erorr]]

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518)

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)

at javax.naming.InitialContext.lookup(Unknown Source)

at br.com.hrtech.hrserviceclient.conexao.ConnectionFactory.getConnection(ConnectionFactory.java:18)

at br.com.hrtech.hrserviceclient.conexao.TesteConexao.main(TesteConexao.java:11)

Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is java.lang.RuntimeException: Orb initialization erorr]

at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:351)

at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)

 4 more

Caused by: java.lang.RuntimeException: Orb initialization erorr

at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:180)

at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:364)

at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:371)

at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:401)

at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:346)

 5 more

Caused by: java.lang.NullPointerException

at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:152)

 9 more

não consigo usar este pool
R

Acho que o meu problema seria resolvido setando as propriedades

Properties props=new Properties();

props.put(Context.INITIAL_CONTEXT_FACTORY,org.jnp.interfaces.NamingContextFactory);

props.put(Context.PROVIDER_URL,localhost:1099);

InitialContext ctxt= new InitialContext(props);

factory=(QueueConnectionFactory)ctxt.lookup(ConnectionFactory);

porém existe exemplo somente para o servidor jboss , ele usa a classe NamingContextFactory , será que existe uma classe dessa para o glassfish

R

Por que você colocou esse dois pontos na string “…jdbc/teste”? Pelo erro, não está achando essa referência.

R

Desculpa esse pontos foi erro de digitação eles não existem no fonte

R

Consegui criar o que faltava ,agora aparece o seguinte erro

javax.naming.NamingException: Lookup failed for ‘java:comp/env/jdbc/_sqlserver’ in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is javax.naming.NamingException: Invocation exception: Got null ComponentInvocation ]

alguém já pegou esse erro se pegou como resolveu ?

Criado 11 de maio de 2012
Ultima resposta 15 de mai. de 2012
Respostas 13
Participantes 4