2013-04-01 2 views
0

Java Swing 데스크톱 응용 프로그램에 H2를 사용하고 있습니다.데이터베이스에 연결하는 중 응답이 없습니다.

서버 모드에서만 데이터베이스에 연결할 수 없습니다.

URL은 jdbc : h2 : tcp : //115.241.34.158 : 9092/Lion/Companies/1 (2012-2013)/1 (2012-2013)이고 DB_CLOSE_ON_EXIT = FALSE, DB_CLOSE_DELAY = 5, IFEXISTS = TRUE

시스템은 단순히 java.sql.DriverManager.getConnection (url, userName, password)을 제공하면서 멈 춥니 다.

모든 예외 (또는 모든 메시지)를 throw하지 않습니다.

단일 사용자 모드에서 정상적으로 작동합니다. (서버 없음)

가능한 해결책은 무엇입니까? 제발 조언.

감사와 관련,

I.Murugesan 당신이 기본 디렉토리없이 TCP 서버를 시작하면

+1

정확히 어디에 데이터베이스 파일을 저장 하시겠습니까 (절대 디렉토리)? 어떻게 서버를 시작 했습니까? –

+0

System.getProperty ("user.dir") + "/"+ dbFolderName + "/"+ dbName에 데이터베이스 파일을 저장합니다. 우리의 소프트웨어는 각각 "UserDB"와 "CompanyDB"라는 두 개의 데이터베이스를 가지고 있습니다. 두 데이터베이스 모두 응용 프로그램을 시작해야했습니다. 먼저 "UserDB"가 시작되고 "CompanyDB"가 시작됩니다. 우리는 "UserDB"자체를 연결하는 동안 서버를 시작합니다. "UserDB"데이터베이스가 잘 연결되었습니다. 이 문제는 "CompanyDB"를 연결하는 동안에 만 발생합니다. 도와주세요. – Murugesan

+0

H2 TCP 서버를 시작하는 데 사용 된 코드를 게시 할 수 있습니까? –

답변

1

는, 당신은 다른 데이터베이스 URL을 사용해야합니다.

jdbc:h2:tcp://115.241.34.158:9092/~/Lion/Companies 

데이터베이스 파일 Companies.h2.db을 의미 데이터베이스 URL 다음은 디렉토리 현재 사용자 홈 디렉토리 내 Lion에 저장됩니다. 당신이

jdbc:h2:tcp://115.241.34.158:9092/Lion/Companies/1(2012-2013)/1(2012-2013) 

를 사용하는 경우 그러나 데이터베이스 파일 1(2012-2013).h2.db현재 작업 디렉토리에 대한 디렉토리 Lion/Companies/1(2012-2013) 상대에 저장됩니다. 그리고 작업 디렉토리는 TCP 서버를 시작한 위치에 따라 다릅니다.

+0

정보를 제공해 주셔서 감사합니다. 예, 그렇습니다. 각 데이터베이스마다 별도의 서버를 시작해야하는지 여부를 명확히 설명하십시오. 서버를 한 번 시작하고 동일한 포트를 사용하여 두 데이터베이스에 대한 연결을 설정해야합니까? – Murugesan

+0

하나의 서버가 여러 데이터베이스를 서버 할 수 있습니다. 가능한 경우 하나의 서버 만 시작해야합니다. 서버 당 하나의 포트가 있습니다. –

+0

그래도 회사 데이터베이스에 연결할 수 없습니다. DriverManager.getConnection() 이후에 응답하지 않습니다. 더 진행하는 방법을 제안 해주세요. – Murugesan

관련 문제