2012-08-18 2 views
1

JPA (Eclipselink) 및 원격 mysql 데이터베이스가있는 데스크탑 응용 프로그램에서 직접 작업하고 있습니다.JPA EclipseLink가없는 원격 MySQL 연결

내 persistence.xml 두 개의 PersistenceUnit 중 하나는 localhost를 사용하고 다른 하나는 원격 데이터베이스를 사용합니다. EntityManagerFactory를로드하려고하면 localhost에서 제대로 작동하지만 결코 리모컨에 연결되지 않으며 매우 오랜 대기 시간이 제공되지 않습니다. 다음은 Windows 서버에서 내 persistence.xml을

REMOTE의 MYSQL 2003

<persistence-unit name="SOFALEnterprisePU3" transaction-type="RESOURCE_LOCAL"> 
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
<properties> 
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://192.168.10.138:3306/sofaldb"/> 
    <property name="javax.persistence.jdbc.password" value="password"/> 
    <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
    <property name="javax.persistence.jdbc.user" value="root"/> 
</properties> 

LOCAL MYSQL의 부분은

<persistence-unit name="SOFALEnterprisePU2" transaction-type="RESOURCE_LOCAL"> 
<properties> 
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/sofaldb"/> 
    <property name="javax.persistence.jdbc.password" value="password"/> 
    <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
    <property name="javax.persistence.jdbc.user" value="root"/> 
</properties> 
원격 말은 의미합니까

답변

2

같은 LAN 또는 인터넷을 가로 지르는가? IP 192.168.10.138이 사설 LAN을 지정하여 원격 시스템이 192.168.10과 같은 네트워크에 주소를 가져야하므로 *

먼저 Windows 방화벽에서 포트 3306을 열어야합니다.

다른 네트워크 인 경우 라우터를 포트를 전달하도록 구성해야하며 라우터의 공용 IP에 연결해야합니다.

동일한 LAN 인 경우 mysql이 해당 사용자 이름 암호 조합에 대한 원격 연결을 허용하도록 설정되지 않았을 수 있습니다.

+0

감사합니다. 모든 것이 로컬 네트워크에 있습니다. JPA를 통해 db에 직접 연결하는 스윙 응용 프로그램을 사용하고 있다는 사실을 기반으로 성능에 대한 아이디어가 있습니까? – MHAbdulkareem

+0

Java EE에서만 리치 클라이언트에서 JPA를 사용하지 않았습니다. 나는 얼마나 많은 동시 사용자가 있을지에 달려 있다고 생각합니다. 동시에 많은 고객이있는 경우 특히 인터넷을 통해 DB에 액세스 할 때 고객이 Java EE 웹 서비스에 대화 할 수있게하고 JPA를 사용하여 DB와 대화 할 수 있습니다. – Eelke

0

정상적인 JPA에서는 프로젝트마다 persistence.xml을 하나만 사용합니다. 그러나 하나의 프로젝트에서 여러 persistence.xml을 사용할 수있는 Spring's JPA을 시도 할 수 있습니다. link을 참조하여 다중 지속성 단위를 처리하십시오.

+0

다른 목적으로 다른 persistenceUnits를 사용하고 있습니다. 원격 mysql을 사용하여 배포 할 준비가되었을 때 사용하려는 것으로 변경하면됩니다! – MHAbdulkareem