2013-04-11 3 views
0

JDBC를 사용하여 DriverManager.getConnection method을 통해 Informix 인스턴스에 연결할 때 문제가 있습니다.DriverManager.getConnection을 통해 Informix에 연결하는 것이 느립니다.

DriverManager.getConnection은 Informix와의 연결을 설정하는 데 오랜 시간이 걸립니다. 이 문제를 해결하기 위해 노력하고 있지만 지금까지 성공하지 못했습니다.

이 문제를 해결하는 방법은 무엇입니까?

+0

컴퓨터의 구성은 무엇입니까 :

은 또한 그것은 내가 SO 게시물이 다른에 설명 포트 청취의 IPv6 주소를 사용하여 인포믹스의 이상한 행동이 될 수 있을까? –

+0

이것이 연결 풀을 사용해야하는 이유 중 하나입니다. – maba

+2

우리는 아무 것도 할 수 없을 때 어떻게 도울 수 있습니까? '오랜 시간'을 정의하십시오. 얼마나 많은 연결이 필요합니까? 네트워크 대기 시간이란 무엇입니까? –

답변

1

데이터베이스에 연결하는 데 걸리는 시간을 보여주는 간단한 테스트를 작성할 수 있습니다. Jython을 좋아해서 원시 JDBC 드라이버와 JDBC-ODBC 브릿지를 통해 작동 할 수있는 JDBC와 함께 작동 할 수 있습니다. ODBC 브리지는 ODBC 드라이버로 작업 할 수 있습니다. 물론 이러한 ODBC 연결을 먼저 구성해야합니다.

은 시간을 보여줍니다 테스트 프로그램입니다 : 내 컴퓨터에

import sys 
import traceback 
import time 

from java.sql import DriverManager 
from java.lang import Class 

Class.forName("com.informix.jdbc.IfxDriver") 

def test_conn(db_url, usr, passwd): 
    try: 
     t0 = time.time() 
     try: 
      db = DriverManager.getConnection(db_url, usr, passwd) 
      t2 = time.time() 
      print('%s' % (db_url)) 
      print('%s, connection time %.03f [s]\n' % (db, (t2-t0))) 
     finally: 
      db.close() 
    except: 
     print("there were errors!") 
     s = traceback.format_exc() 
     sys.stderr.write("%s\n" % (s)) 


def main(): 
    for _ in range(5): 
     test_conn('jdbc:informix-sqli://169.0.5.10:9088/test:informixserver=ol_t1;', 'user', 'passwd') 
     test_conn('jdbc:odbc:ifx_test', 'user', 'passwd') 

main() 

결과를 JDBC는 다음 JDBC-ODBC 브리지 (당신이 다리를 알고 있어야 연결에 빠르다는 것을 보여줍니다으로 필요하지 않습니다 시간 추가 네이티브 응용 프로그램). 또한 내 검사는 Windows에서 실행되며 최소 해상도는 time.time() ~ 15ms입니다. 내 결과 :

jdbc:informix-sqli://169.0.5.10... 
[email protected], connection time 0.015 [s] 

jdbc:odbc:test 
[email protected], connection time 0.047 [s] 

물론이 프로그램을 사용하면 다른 서버의 데이터베이스와 동일한 드라이버를 테스트 할 수 있습니다.

+0

과거에 Informix와의 연결이 느린 문제가있었습니다. 그것은 ODBC/.NET이었다. 단일 연결 요구 초의 분수를 설정 (정확히 기억이 안나지만) NHibernate에 의해 루프에서 수천 번 호출되었다. 해결 방법은 연결 풀링을 활성화하는 것이 었습니다. – robsosno

0

호스트 파일에 127.0.0.1 localhost의 매핑이 포함되지 않을 수 있습니다. informix jdbc stuck connecting

+0

안녕하십니까, 앞으로 제안 된 수정 사항에서 콜론 앞에 공백을 추가하지 마십시오 (예 : http://stackoverflow.com/review/suggested-edits/13474322). 자세한 내용은 http://english.stackexchange.com/questions/4645/is-it-ever-correct-to-have-a-space-before-a-question-or-exclamation-mark를 참조하십시오. – Matt

+0

나는 당신의 친절한 대답에도 불구하고이 웹 사이트를 싫어하기 시작해야할지 모르겠다. 나는이 게시물의 시작 부분을 지워 버리거나 지치기에는 너무 지쳤다. "나는 내가 당신 자신의 문장을 타이핑하는 것을 더 좋아한다. 나는 당신이 깊이 받아 들여야 할 사회적 기준에 맞지 않는다고 생각한다. 왜 당신이 주관적인 포스트를 언급하고 있는지 이해할 수 있습니다. "주저하지 말고 스팸 답변을 끌어 당겨 요점을 말하지만 어쩌면 너무 바뀌고 있습니다."blahblahblah " – ron190

관련 문제