Hibernate

Galera boa tarde.
Estou começando com hibernate e varri a web atras de informações e não fui esclarecido.
Minhas duvidas é a seguinte:
Usei o hibernate configurei o hibernate.cfg.xml tudo funcionou bonitinho, criou as tabelas quando não existia gravou certinho nas tabelas , porém agora vem a duvida.

1 - como eu gerencio as conexões , pois a aplicação terá muitos acessos será que só isso aguenta .
2 -vi que tem como criar conexão com um arquivo chamado presistence.xml , qual a diferença e quais as vantagens de usar este cara e não o hibernate.cfg.xml.
3 -Se eu criar pelo o tomcat as a conexão , ele gerenciar a conexão , como eu procedo .
4 -É possível usar jndi com hibernate e como eu faço lookup , se possível como fica a classe de conexão.

pelo que notei existe 3 formas de conexão .
1-hibernate.cfg.xml
2-persistence.xml
3- server.xml no tomcat.

onde entra jndi nesta salada , detalhe estou usando o hibernate 4.

Ajudem-me.

São várias dúvidas. Primeiro você precisa entender a diferença entre Hibernate (usa o hibernate.cfg.xml) e JPA (persistence.xml). E para um sistema com muitas conexões o mínimo que precisa fazer é utilizar um pool de conexões.

Estes links podem te ajudar:
http://www.k19.com.br/downloads/apostilas/java/k19-k21-persistencia-com-jpa2-e-hibernate

Esse post aqui pode te ajudar: http://uaihebert.com/?p=1622

Estudei os post , e vi que no 7 boas praticas do hibernate ele fale do c3po para gerenciar a conexão , mais ai vi que alguém questionou sobre este tipo de conexão
e falou que seria melhor usar a configuração de conexão pelo servidor .
Alguém tem um exemplo de como isso é feito ?

Utilizei uma conexão feito pelo datasorce do servidor , atendeu muito bem , bastei apenas criar o arquivo contex.xml e no web.xml passei o cara e no cfg do hibernate setei este cara.
ai deu certo obrgado galera.