데이터 액세스 이식성 기능

이러한 인터페이스는 애플리케이션 서버와 해당 데이터베이스 간의 연결 시 데이터베이스별 기능이 작동 가능하도록 관계형 자원 어댑터(RRA)와 함께 작업합니다.

즉, 애플리케이션에서 다른 데이터베이스로부터 데이터에 액세스할 수 있고 코드를 변경하지 않고도 데이터베이스마다 고유한 기능을 사용할 수 있습니다. 또한 WebSphere® Application Server는 WebSphere 지속에서 지원하지 않는 데이터 소스를 플러그인할 수도 있습니다. 그러나 데이터 소스는 XADataSource 유형 또는 ConnectionPoolDataSource 유형으로 구현되어야 합니다. 또한 JDBC 2.x 스펙을 준수해야 합니다.

다음을 통해 애플리케이션 이식성을 확보할 수 있습니다.

DataStoreHelper 인터페이스
이 인터페이스를 사용하여 각 데이터 저장 플랫폼은 관계형 자원 어댑터 런타임에서 사용하는 자체 개인용 데이터 저장 특정 기능을 플러그인할 수 있습니다. WebSphere Application Server는 지원되는 각 JDBC 제공자에 대한 구현을 제공합니다.

이 인터페이스는 지원되지 않는 데이터 소스에서 사용하도록 GenericDataStoreHelper 클래스도 제공합니다. 새 데이터 소스를 지원하기 위해 GenericDataStoreHelper 클래스 또는 기타 WebSphere 제공 헬퍼를 서브클래스로 지정할 수 있습니다.

참고: 사용자 정의된 JDBC 제공자를 통해 데이터 액세스를 구성하는 경우에는 DataStoreHelper 인터페이스를 직접 구현하지 마십시오. IBM®이 제공한 GenericDataStoreHelper 클래스를 서브클래스로 지정하거나 DataStoreHelper 구현 클래스 중 하나를 서브클래스로 지정하십시오(데이터베이스 작동 또는 SQL 구문이 이들 제공된 클래스 중 하나와 유사한 경우).

자세한 정보는 API 문서 DataStoreHelper 주제를 참조하십시오(API 문서 색인에 나열되어 있음).

다음의 코드 세그먼트에서는 지원되지 않는 데이터 소스에 대해 새 오류 맵핑을 추가하기 위해 새 데이터 저장 헬퍼를 작성하는 방법을 보여줍니다.

public class NewDSHelper extends GenericDataStoreHelper
{
  public NewDSHelper(java.util.Properties dataStoreHelperProperties)   
  {
    super(dataStoreHelperProperties); 
    java.util.Hashtable myErrorMap = null;
    myErrorMap = new java.util.Hashtable();
    myErrorMap.put(new Integer(-803), myDuplicateKeyException.class);
    myErrorMap.put(new Integer(-1015), myStaleConnectionException.class);
    myErrorMap.put("S1000", MyTableNotFoundException.class);
    setUserDefinedMap(myErrorMap);
    ...
  }
}
WSCallHelper 클래스
이 클래스는 표준 JDBC API와 호환되지 않으며 (WebSphere Application Server 확장자 패키지의 일부가 아닌) 벤더 특정 메소드 및 클래스를 사용할 수 있도록 하는 두 개의 메소드를 제공합니다.
  • jdbcCall() 메소드

    정적 jdbcCall() 메소드를 사용하여, JDBC 오브젝트에서 벤더 특정의 비표준 JDBC 메소드를 호출할 수 있습니다. (자세한 정보는 API 문서에서 WSCallHelper 주제를 참조하십시오.) 다음 코드 세그먼트는 DB2® 데이터 소스가 있는 이 메소드를 사용하는 방법을 설명합니다.

    Connection conn = ds.getConnection();
    // get connection attribute
    String connectionAttribute =(String) WSCallHelper.jdbcCall(DataSource.class, ds,
     "getConnectionAttribute", null, null);
    // setAutoClose to false
    WSCallHelper.jdbcCall(java.sql.Connection.class,
    conn, "setAutoClose",
    new Object[] { new Boolean(false)},
    new Class[] { boolean.class });
    // get data store helper
    DataStoreHelper dshelper = WSCallHelper.getDataStoreHelper(ds);
  • jdbcPass() 메소드

    이 메소드를 사용하여 일부 데이터베이스 벤더가 제공하는 비표준 JDBC 클래스를 활용할 수 있습니다. 이 클래스에는 벤더 소유의 JDBC 오브젝트가 매개변수로서 전달되도록 요구하는 메소드가 포함되어 있습니다.

    특히 Oracle 구현에는 벤더에서 제공하는 비표준 클래스의 사용이 포함될 수 있습니다. 이러한 클래스 내에 포함된 메소드는 다음을 포함합니다.

    oracle.sql.ArrayDescriptor ArrayDescriptor.createDescriptor(java.lang.String, java.sql.Connection)
    oracle.sql.ARRAY new ARRAY(oracle.sql.ArrayDescriptor, java.sql.Connection, java.lang.Object)
    oracle.xml.sql.query.OracleXMLQuery(java.sql.Connection, java.lang.String)
    oracle.sql.BLOB.createTemporary(java.sql.Connection, boolean, int)
    oracle.sql.CLOB.createTemporary(java.sql.Connection, boolean, int)
    oracle.xdb.XMLType.createXML(java.sql.Connection, java.lang.String)

    다음 코드 샘플에서는 jdbcPass를 사용하여 연결에서 Oracle 메소드 XMLType.createXML을 사용하는 방법에 대해 설명합니다. 이 Oracle 기능은 데이터베이스가 애플리케이션에 전달하는 XML 데이터 중 XML 유형 오브젝트를 작성합니다.

    XMLType poXML = (XMLType)(WSCallHelper.jdbcPass(XMLType.class, 
    "createXML", new Object[]{conn,poString},
    		new Class[]{java.sql.Connection.class, java.lang.String.class},
    		new int[]{WSCallHelper.CONNECTION,WSCallHelper.IGNORE}));
    jdbcPass 사용 및 메소드 매개변수의 전체 목록에 대한 자세한 예제는 WSCallHelper 클래스의 API 문서를 참조하십시오. 이 Information Center에서 다음 단계에 따라 API 문서에 액세스합니다.
    1. 참조 > 개발자 API 문서 > API(Application Programming Interface)를 클릭하십시오.
    2. com.ibm.websphere.rsadapter를 클릭하십시오.
    3. 클래스 요약 표제 아래에서 WSCallHelper를 클릭하십시오.
    jdbcPass의 첫 번째 섹션에 데이터베이스 정적 메소드를 호출하기 위한 메소드 사용에 대해 설명되어 있습니다. jdbcPass의 두 번째 섹션에는 데이터베이스 비정적 메소드에 대해 설명되어 있습니다.
    주의: jdbcPass() 메소드를 사용하면 JDBC 오브젝트가 WebSphere Application Server의 보호 메커니즘 외부에서 사용됩니다. 이 보호 메커니즘 외부에서 특정 조작(예: autoCommit 설정, 트랜잭션 분리 설정 등)을 수행하면 이 풀 연결을 이후에 사용할 때 문제점이 발생할 수 있습니다. IBM은 이 메소드를 호출한 이후에 오브젝트의 안정성을 보장하지 않습니다. 이 메소드의 호출로 인해 오브젝트에 나쁜 영향을 주는 조작이 수행되지 않도록 하는 것은 사용자의 책임입니다. 각자의 책임에 따라 사용하십시오.

    이러한 잠재적 문제점으로 인해 WebSphere Application Server는 jdbcPass() 메소드 지원을 사용하여 호출할 수 있는 메소드를 엄격하게 제어합니다. 이 문서에서 이전에 나열되지 않은 메소드에 대한 지원이 필요하면 WebSphere Application Server 지원 담당자에게 문의하여 필요한 메소드에 관한 정보를 얻으십시오.


주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_levport
파일 이름:rdat_levport.html