2
JPA (EclipseLink)를 사용하는 간단한 Java SE 응용 프로그램이 있습니다. 기본적으로 one 'default' connection pool은 32 connections까지 허용합니다.연결 풀에서 연결을 가져 오거나 반환하는시기는 언제입니까?
내가 이런 일을 수행한다고 가정
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("myPU");
//read
EntityManager em = emFactory.createEntityManager();
TypedQuery<Entity.class> q = em.createQuery("Select e from Entity e", Entity.class);
List<Entity> entities = q.getResultList();
em.close();
//write
em = emFactory.createEntityManager();
Entity e = new Entity();
em.getTransaction().begin();
em.persist(e);
em.getTransaction().commit();
em.close();
- 연결이 실제로 연결 풀에서 요청되는 때 그들이 다시 출시를?
- 하나의 쿼리가 풀에서 여러 연결을 요청할 수 있습니까?
- 최대 연결 수를 32에서 1로 설정하면 차이가 있습니까?
연결은 느리게, 기본적으로는 EclipseLink에서 얻을 수있다. 기본 구성을 사용하면 읽기 연결이 즉시 풀로 해제되므로 getResultList는 연결을 얻거나 해제합니다. 쓰기를 위해서, 그것들은 느슨하게 얻어지기 때문에, 커밋 작업은 쓰기 연결을 획득하고 해제 할 것입니다. begin()은 트랜잭션이 필요할 수도 있음을 Eclipse가 알 수있게하지만 반드시 시작하지는 않을 것이라고 생각합니다. – Chris