Boa tarde estava estudando JPA e fazendo alguns testes.
Criei um pool de conexões no glassfih e um dataSource com o nome JNDI “TitanCon”
<persistence-unit name="TitanSessionBean-ejbPU" transaction-type="JTA">
<jta-data-source>TitanCon</jta-data-source>
<properties/>
</persistence-unit>
Até ai tudo bem mais tive que descobrir como configurar um pool de conexões do GlassFish para o banco de dados derby e criar um dataSource… registrar o nome JNDI no glassFish isso deu um certo trabalho sendo que se eu for usar o JBoss ou o WebLogic vou ter aprender tudo de novo.
Gostaria de saber como e se existe uma maneira, para definir o dataSource no persistence.xml fornecendo usuário,senha,url,driver,nome JNDI etc… e os próprios containers, seja o GlassFish,Jboss,Weblogic etc… criarem um pool e dataSource e a entrada JNDI se baseando no xml do persistence.
pois da o maior trabalho aprender a configurar esses pool em todos fornecedores… se não existir essa maneira não achão que deveria entrar na próxima versão da especificação?
uma curiosidade no netbeans quando voce vai na persistense unit e pede para alterar a conexão… ele te pede um nome JNDI e uma conexão… e gera o seguinte codigo no arquivo especifico do glassFish sun-resources.xml
<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="org.apache.derby.jdbc.ClientDataSource" 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="derby_net_banco_bancoPool" 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">
<property name="serverName" value="localhost"/>
<property name="portNumber" value="1527"/>
<property name="databaseName" value="banco"/>
<property name="User" value="banco"/>
<property name="Password" value=""/>
<property name="URL" value="jdbc:derby://localhost:1527/banco;create=true"/>
<property name="driverClass" value="org.apache.derby.jdbc.ClientDriver"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="nome" object-type="user" pool-name="derby_net_banco_bancoPool"/>
Que especifica o pool e cria o data source… só que especificamente para o glassfish não tem algo similar a isto no persistence xml de forma que todos os containers consigam se auto configurar.