Altibase.jdbc.driver

## Class AltibaseUrlParser

- java.lang.Object
- - Altibase.jdbc.driver.AltibaseUrlParser

    public class AltibaseUrlParser
    extends java.lang.Object

정규표현식을 이용해 connection string이나 alternate servers string을 파싱한다.

### Field Summary

Fields
`static java.lang.String` `URL_PREFIX`

### Method Summary

All Methods Static Methods Concrete Methods
`static boolean` `acceptsURL(java.lang.String aURL)`
`static AltibaseFailoverServerInfoList` `parseAlternateServers(java.lang.String aAlternateServersStr)` alternate servers string을 파싱해 `AltibaseFailoverServerInfoList`를 만든다.
`static void` `parseURL(java.lang.String aURL, AltibaseProperties aDestProp)` URL을 파싱해 aDestProp에 property로 설정한다.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### URL_PREFIX

    public static final java.lang.String URL_PREFIX

### Method Detail

#### acceptsURL

    public static boolean acceptsURL(java.lang.String aURL)

#### parseURL

    public static void parseURL(java.lang.String aURL,
                                AltibaseProperties aDestProp)
                         throws java.sql.SQLException

URL을 파싱해 aDestProp에 property로 설정한다.

유효한 URL 포맷은 다음과 같다:

- jdbc:Altibase://123.123.123.123:20300/mydb
- jdbc:Altibase://abc.abc.abc.abc:20300/mydb
- jdbc:Altibase://123.123.123.123/mydb
- jdbc:Altibase://[::1]:20300/mydb
- jdbc:Altibase://[::1]:20300/mydb?prop1=val1&prop2=val2
- jdbc:Altibase://[::1]/mydb
- jdbc:Altibase://DataSourceName
- jdbc:Altibase://DataSourceName:20300
- jdbc:Altibase://DataSourceName:20300?prop1=val1&prop2=val2

연결 속성은 connection url에 따라 총 3가지의 설정이 충돌할 수 있는데, 그 때 설정값의 우선순위는 다음과 같다:

1. connection url로 받은값 (= aURL)
2. 기존에 설정된 값 (= aDestProp = connect 메소드로 넘어온 값)
3. altibase_cli.ini 설정 (DSN을 사용하는 경우)

Parameters:
  `aURL` - connection url
  `aDestProp` - 파싱 결과를 담을 Property
Throws:
  `java.sql.SQLException` - URL 구성이 올바르지 않은 경우

#### parseAlternateServers

    public static AltibaseFailoverServerInfoList parseAlternateServers(java.lang.String aAlternateServersStr)
                                                                throws java.sql.SQLException

alternate servers string을 파싱해 `AltibaseFailoverServerInfoList`를 만든다.

alternate servers string은 "( host_name:port[/dbname][, host_name:port[/dbname]]* )"와 같은 포맷이어야 한다. 예를 들면 다음과 같다:
(192.168.3.54:20300, 192.168.3.55:20301) (abc.abc.abc.abc:20300, abc.abc.abc.abc:20301) (192.168.3.54:20300/mydb1, 192.168.3.55:20301/mydb2) (abc.abc.abc.abc:20300/mydb1, abc.abc.abc.abc:20301/mydb2)

만약 alternate servers string에 IPv6 형태의 주소를 쓰고자 한다면, ip를 [, ]로 감싸야 한다. 예를들어, "::1"을 쓰고자 한다면 "[::1]:20300" 처럼 써야지 "::1:20300" 처럼 쓰면 안된다. 이런 경우에는 ParseException을 낸다.

alternate servers string이 null이거나 서버 정보가 없어도 null 대신 빈 리스트를 반환한다. 이는 받는쪽에서 null 처리 없이 쓸 수 있게 하기 위함이다.

Parameters:
  `aAlternateServersStr` - 대안 서버 목록을 담은 문자열
Returns:
  변환된 `AltibaseFailoverServerInfoList` 객체
Throws:
  `java.sql.SQLException` - alternate servers string의 포맷이 올바르지 않을 경우