MSSQL JDBC 드라이버. 버전별 정리

다음은 java 버전, MSSQL 서버 버전, 드라이버 버전별 사용가능 여부를 정리한 것이다.

java 1.5에서는 드라이버 2.0으로 문제 없지만, 1.3이나 1.4에서는 여의치 않은 경우가 있다.

특이한 것은 드라이버의 버전에 관계없이 jar파일 이름이 sqljdbc.jar로 동일하고, 심지어 드라이버의 클래스 이름도 동일하다. 그렇다면 문제가 되는 것이 java 1.4에서 MSSQL 2005 MSSQL2008을 동시에 접속하려면?
이문제를 해결하기 위하여 각 드라이버의 sqljdbc.jar를 별도의 폴더(mssql2005, mssql2008)에 따로 두었고,  DBMS 버전별로 별도의 드라이버 랩퍼를 두었다. 각 랩퍼 클래스는 내부에 클래스로더를 두어 로딩 시에 별도의 폴더에 있는 jar파일에서 실제 드라이버 클래스를 로딩한다.

하여간에 이런 랩퍼를 두는 방법으로 연결은 되고 쓸수는 있었으나 java 1.4에서 MSSQL2008에 붙으면 극심한 속도저하를 감수하여야 한다. 측정해 보니 10배 이상 속도가 느려진다.

MS다운 특이한 점은 각 jar파일에 security가 적용되어 있다. jar파일을 변경하면 jar안의 클래스를 사용하지 못한다. 따라서 retroweaver와 같은 java class의 버전 변환 툴을 사용하지 못한다

by 밀리 | 2009/11/30 09:31 | 네트웍-모바일 | 트랙백 | 덧글(0)

Non Blocking I/O [ C 언어]

소켓호출의 디폴트 동작은 요구된 행위가 종료될때까지 불록되는 것이다. recv()함수는 적어도 하나의 메세지를 받을때까지는 반환하지 않는다. send()의 경우 전송할 데이타를 저장할 공간이 충분하지 못하면 블록된다.

TCP 연결에 관련도니 함수들은 연결이 설정될때까지  블록된다. 예를 들면 accept()는 클라이언트가 connect() 호 연결을 설정할때까지 블록된다. 하지만 UDP의 경우 중간의 패킷이 유실되었다고 가정하자, 그러면 recvfrom()은 영원히 블록되어 있어야 할 것이다.

이런 경우 어느 정도 시간이 지난후 블록에서 풀려 클라이언트가 데이터그램 유실을 처리할 수 있도록 해야 할것이다.

해결책
원하지 않는 블로킹 문제를 해결하기 위해서는 소켓의 동작을 변경 시켜 nonblocking이 되도록 설정하는 것이다. 이런 경우 소켓에 대해 만약 요구된 연산이 즉시 완료된다면 성공을 반환하고 그렇지 않으면 실패(보통 -1) 을 반환한다. 실패의 경우 불록에 의한 실패인지 아니면 다른 형태의 실패인지 구분할 수 있어야 한다.

TCP 통신의 경우 connect()가 블록에 으해 실패했다면 error를 EINPROGRESS 반환하고, 다른 경우에는 EWOULBLOCK이 반환된다.

디폴트 불로킹 동작은 fcnt() 이나 ioctl() 호출로 제어할 수 있다.

by 밀리 | 2009/05/13 00:25 | JAVA | 트랙백 | 덧글(0)

함수 총정리

1. 문자 함수
 1-1) CHR
 1-2) CONCAT 함수
 1-3) INITCAP 함수
 1-4) LOWER 함수
 1-5) LPAD 함수
 1-6) LTRIM 함수
 1-7) NLS_INITCAP 함수
 1-8) NLS_LOWER 함수
 1-9) NLSSORT 함수
 1-10) NLS_UPPER 함수
 1-11) REPLACE 함수
 1-12) RPAD 함수
 1-13) RTRIM 함수
 1-14) SOUNDEX 함수
 1-15) SUBSTR 함수
 1-16) TRANSLATE 함수
 1-17) TREAT 함수
 1-18) TRIM 함수
 1-19) UPPER 함수
 1-20) ASCII 함수
 1-21) INSTR 함수
 1-22) LENGTH 함수


2. 날짜 처리함수(datetime function)
 2-1) ADD_MONTHS 함수
 2-2) CURRENT_DATE 함수
 2-3) URRENT_TIMESTAMP 함수
 2-4) DBTIMEZONE 함수
 2-5) EXTRACT(datetime) 함수
 2-6) FROM_TZ 함수
 2-7) LAST_DAY 함수
 2-8) LOCALTIMESTAMP 함수 
 2-9) MONTHS_BETWEEN 함수
 2-10) NEW_TIME 함수
 2-11) NEXT_DAY 함수
 2-12) NUMTODSINTERVAL 함수
 2-13) NUMTOYMINTERVAL 함수
 2-14) ROUND(date) 함수
 2-15) SESSIONTIMEZONE 함수
 2-16) SYS_EXTRACT_UTC 함수
 2-17) SYSDATE 함수
 2-18) SYSTIMESTAMP 함수
 2-19) TO_DSINTERVAL 함수
 2-20) TO_TIMESTAMP 함수
 2-21) TO_TIMESTAMP_TZ 함수
 2-22) TO_YMINTERVAL 함수
 2-23) TRUNC(date) 함수
 2-24) TZ_OFFSET 함수


3.데이터 형 변환 함수(conversion function)
 3-1) ASCIISTR 함수
 3-2) BIN_TO_NUM 함수
 3-3) CAST 함수
 3-4) CHARTOROWID 함수
 3-5) COMPOSE 함수 
 3-6) CONVERT 함수
 3-7) HEXTORAW 함수
 3-8) NUMTODSINTERVAL 함수
 3-9) NUMTOYMINTERVAL 함수
 3-10) RAWTOHEX 함수
 3-11) RAWTONHEX 함수
 3-12) ROWIDTOCHAR 함수
 3-13) ROWIDTONCHAR 함수
 3-14) TO_CHAR(character) 함수
 3-15) TO_CLOB 함수
 3-16) TO_DSINTERVAL 함수
 3-17) TO_LOB 함수
 3-18) TO_MULTI_BYTE 함수
 3-19) TO_NCHAR(character) 함수
 3-20) TO_NCHAR(datetime) 함수
 3-21) TO_NCHAR(number) 함수
 3-22) TO_NCLOB 함수
 3-23) TO_NUMBER 함수
 3-24) TO_SINGLE_BYTE 함수
 3-25) TO_YMINTERVAL 함수
 3-26) TRANSLATE ... USING 함수
 3-27) UNISTR 함수


4. 기타함수(miscellaneous single row function)
 4-1) BFILENAME 함수
 4-2) COALESCE 함수
 4-3) DECODE 함수
 4-4) DEPTH 함수
 4-5) DUMP 함수
 4-6) EMPTY_BLOB 함수
 4-7) EMPTY_CLOB 함수
 4-8) EXISTSNODE 함수
 4-9) EXTRACT(XML) 함수
 4-10) EXTRACTVALUE 함수
 4-11) GREATEST 함수
 4-12) LEAST 함수
 4-13) NLS_CHARSET_DECL_LEN 함수
 4-14) NLS_CHARSET_ID 함수
 4-15) NLS_CHARSET_NAME 함수
 4-16) NULLIF 함수
 4-17) NVL2 함수
 4-18) PATH 함수
 4-19) SYS_CONNECT_BY_PATH 함수
 4-20) SYS_CONTEXT 함수
 4-21) SYS_DBURIGEN 함수
 4-22) SYS_EXTRACT_UTC 함수
 4-23) SYS_GUID 함수
 4-24) SYS_XMLAGG 함수
 4-25) SYS_XMLGEN 함수
 4-26) UID 함수
 4-27) USER 함수
 4-28) USERENV 함수
 4-29) VSIZE 함수
 4-30) XMLAGG 함수
 4-31) XMLCOLATTVAL 함수
 4-32) XMLCONCAT 함수
 4-33) XMLFOREST 함수
 4-34) XMLELEMENT 함수


5.그룹함수  Aggregate 함수
 5-1) AVG* 함수
 5-2) CORR* CORR* 함수
 5-3) COUNT* 함수
 5-4) COVAR_POP 함수
 5-5) COVAR_SAMP 함수
 5-6) CUME_DIST 함수
 5-7) DENSE_RANK 함수
 5-8) FIRST 함수
 5-9) GROUP_ID 함수
 5-10) Grouping 함수
 5-11) GROUPING_ID 함수
 5-12) LAST 함수
 5-13) MAX 함수
 5-14) MIN 함수
 5-15) PERCENTILE_CONT 함수
 5-16) PERCENTILE_DISC 함수
 5-17) PERCENT_RANK 함수
 5-18) RANK 함수
 5-19) REGR_(linear regression) function* 함수
 5-20) STDDEV 함수
 5-21) STDDEV_POP 함수
 5-22) STDDEV_SAMP 함수
 5-23) SUM 함수
 5-24) VAR_POP 함수
 5-25) VAR_SAMP 함수
 5-26) VARIANCE 함수
 5-27) Grouping sets 함수


6. Analytic 함수
 6-1) AVG* 함수
 6-2) CORR* CORR* 함수
 6-3) COUNT* 함수
 6-4) COVAR_SAMP 함수
 6-5) CUME_DIST 함수
 6-6) DENSE_RANK 함수
 6-7) FIRST 함수
 6-8) FIRST_VALUE 함수
 6-9) LAG 함수
 6-10) LAST_VALUE 함수
 6-11) LEAD 함수
 6-12) NTILE 함수
 6-13) RATIO_TO_REPORT 함수
 6-14) ROW_NUMBER 함수


7. 객체 참조 함수
 7-1) REF 타입


8. PseudoColumn을 의미하는 것
 8-1) ROWID 컬럼
 8-2) ROWNUM 컬럼

by 밀리 | 2009/02/06 11:55 | ORACLE | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶