|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.sql.rowset.spi.SyncFactory
public class SyncFactory
미접속의 RowSet
객체에 의해 사용되는 SyncProvider
인스턴스를 생성하는 서비스 프로바이더 인터페이스 (Service Provider Interface, SPI) 기구입니다. SyncProvider인스턴스는,RowSet
객체가 자신에게 데이터를 이식하기 위해서 필요한 javax.sql.RowSetReader
객체라고 변경된 데이터를 부하의 데이터 소스에 건네주기 위해서(때문에) 필요한 javax.sql.RowSetWriter
객체를 제공합니다.
SyncFactory
클래스의 메소드는 모두 static 이므로, Java VM 마다 동시에 복수의 SyncFactory
객체가 존재할 수 없습니다. 이 때문에,RowSet
구현은, 항상 단일의 소스로부터 SyncProvider
구현을 취득하게 됩니다.
SyncFactory
클래스는, 사용 가능한 동기 프로바이더 구현 (SyncProvider
객체)의 내부 레지스트리를 제공합니다. 이 레지스트리를 조회하는 것으로, 사용 가능한 동기 프로바이더를 확인할 수 있습니다. 이하는, 현재 등록되어 있는 프로바이더를 열거하는 코드입니다.
java.util.Enumeration e = SyncFactory.getRegisteredProviders();모든 표준
RowSet
구현은, 적어도 다음의 2 개의 프로바이더를 제공할 필요가 있습니다.
CachedRowSet
구현 또는 이 구현으로부터 파생한 구현용의 최적의 프로바이더
WebRowSet
객체 등)
SyncProvider
구현 RIOptimisticProvider
및 RIXmlProvider
가 포함되는 점에 주의해 주세요.
SyncFactory
클래스는, 어플리케이션이 현재 SyncFactory
에 등록되어 있는 동기 프로바이더를 확인하기 위해서 도움이 되는 액세스용 메소드를 제공합니다.
그 외의 메소드에는,RowSet
지속 프로바이더를 팩토리 기구에 등록하거나 등록을 해제하거나 하는 기능이 있습니다. 이 때문에,RowSet
객체는, 실행시에 그 외의 동기 프로바이더 구현도 사용할 수가 있습니다.
어플리케이션은, 필터링의 단계를 적용하는 것으로,SyncProvider
구현이 제공하는 동기의 레벨을 확정할 수 있습니다. RowSet
객체가 프로바이더를 사용할 수 있을지 어떨지는, 다음의 기준으로 결정됩니다.
RowSet
객체에 의해 지정된 특정의 프로바이더의 참조가,SyncFactory
에 포함되지 않는 경우, 동기 프로바이더가 발견되지 않는 것을 나타내는 SyncFactoryException
가 throw 되는
RowSet
구현이 등록을 마친 특정의 프로바이더에 의해 인스턴스화 되는 경우, 요구된 프로바이더가 제공된다. 그렇지 않은 경우는 SyncFactoryException
가 throw 되는
RowSet
객체가 SyncProvider
구현을 지정하지 않고, 그 외에 이용 가능한 SyncProvider
구현이 존재하지 않는 경우, 레퍼런스 구현 프로바이더가 제공된다
SyncProvider
구현의 등록
벤더도 개발자도, 다음의 몇개의 기구를 사용해 SyncProvider
구현을 등록할 수 있습니다.
-Drowset.provider.classname=com.fred.providers.HighAvailabilityProvider
#Default JDBC RowSet sync providers listing # # Optimistic synchronization provider rowset.provider.classname. 0=com.sun.rowset.providers.RIOptimisticProvider rowset.provider.vendor. 0=Sun Microsystems Inc rowset.provider.version. 0=1. 0 # XML Provider using standard XML schema rowset.provider.classname. 1=com.sun.rowset.providers.RIXMLProvider rowset.provider.vendor. 1=Sun Microsystems Inc. rowset.provider.version. 1=1. 0
SyncFactory
는, 이 파일을 체크해, 거기에 포함되는 SyncProvider
구현을 등록합니다. 개발자나 벤더는, 이 파일에 그 외의 구현을 추가할 수 있습니다. 다음에 예를 나타냅니다.
rowset.provider.classname. 2=com.fred.providers.HighAvailabilityProvider rowset.provider.vendor. 2=Fred, Inc. rowset.provider.version. 2=1. 0
SyncFactory
는, 이 JNDI 문맥으로부터 SyncProvider
구현을 로드하려고 합니다. 예를 들어, 다음에, JNDI 문맥에 프로바이더 구현을 1 개 등록하는 코드의 발췌를 나타냅니다. 일반적으로, 이 처리는 데프로이야가 실시합니다. 이 예에서는, J2EE 자원에 의해 사용되는 CosNaming 네임 스페이스에,MyProvider
가 등록됩니다.
import javax.naming. *; Hashtable svrEnv = new Hashtable(); srvEnv.put(Context.INITIAL_CONTEXT_FACTORY, "CosNaming"); Context ctx = new InitialContext(svrEnv); com.fred.providers.MyProvider = new MyProvider(); ctx.rebind("providers/MyProvider", syncProvider);
SyncFactory
인스턴스에 등록됩니다. 이것에 의해,SyncFactory
는, JNDI 문맥내를 브라우즈 해,SyncProvider
구현을 검색할 수 있게 됩니다.
Hashtable appEnv = new Hashtable(); appEnv.put(Context.INITIAL_CONTEXT_FACTORY, "CosNaming"); appEnv.put(Context.PROVIDER_URL, "iiop://hostname/providers"); Context ctx = new InitialContext(appEnv); SyncFactory.registerJNDIContext(ctx);
RowSet
객체가 MyProvider
객체의 취득을 시도하는 경우,SyncFactory
는 이것을 검출하려고 합니다. 최초로 시스템 프로퍼티내를 검색해, 다음에 resource file내를 검색해, 최종적으로는 설정되어 있는 JNDI 문맥을 체크합니다. SyncFactory
인스턴스는, 요구된 프로바이더가 SyncProvider
abstract 클래스의 유효한 확장인 것을 확인해,RowSet
객체에 건네줍니다. 이하의 코드의 발췌에서는, 새로운 CachedRowSet
객체를 작성해,MyProvider
의 바인딩을 포함한 env로 초기화합니다.
Hashtable env = new Hashtable(); env.put(SyncFactory.ROWSET_SYNC_PROVIDER, "com.fred.providers.MyProvider"); CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl(env);이러한 기구의 상세한 것에 대하여는,
javax.sql.rowset.spi
패키지의 스펙을 참조해 주세요.
SyncProvider
,
SyncFactoryException
필드의 개요 | |
---|---|
static String |
ROWSET_SYNC_PROVIDER
동기 프로바이더의 구현명을 나타내는 표준 프로퍼티 ID 입니다. |
static String |
ROWSET_SYNC_PROVIDER_VERSION
동기 프로바이더의 구현의 버젼 태그를 나타내는 표준 프로퍼티 ID 입니다. |
static String |
ROWSET_SYNC_VENDOR
동기 프로바이더의 벤더명을 나타내는 표준 프로퍼티 ID 입니다. |
메소드의 개요 | |
---|---|
static SyncProvider |
getInstance (String providerID)
providerID로 식별되는 SyncProvider 인스턴스를 돌려줍니다. |
static Logger |
getLogger ()
어플리케이션이 SyncProvider 구현에 의해 표시된 동기 이벤트를 취득하기 위해서 필요한 로그 객체를 돌려줍니다. |
static Enumeration <SyncProvider > |
getRegisteredProviders ()
현재 등록되어 있는 동기 프로바이더를 열거합니다. |
static SyncFactory |
getSyncFactory ()
SyncFactory 싱글 톤을 돌려줍니다. |
static void |
registerProvider (String providerID)
지정된 동기 프로바이더를 팩토리 레지스터에 추가합니다. |
static void |
setJNDIContext (Context ctx)
JNDI 이름 공간으로부터 SyncProvider 구현을 취득하는 초기 JNDI 문맥을 설정합니다. |
static void |
setLogger (Logger logger)
SyncFactory 이 제공하는 SyncProvider 구현에 의해 사용되는 로그 객체를 설정합니다. |
static void |
setLogger (Logger logger,
Level level)
SyncFactory SPI 가 제공하는 SyncProvider 구현에 의해 사용되는 로그 객체를 설정합니다. |
static void |
unregisterProvider (String providerID)
현재 등록되어 있는 지정의 동기 프로바이더를 팩토리 SPI 레지스터로부터 삭제합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
필드의 상세 |
---|
public static String ROWSET_SYNC_PROVIDER
public static String ROWSET_SYNC_VENDOR
public static String ROWSET_SYNC_PROVIDER_VERSION
메소드의 상세 |
---|
public static void registerProvider(String providerID) throws SyncFactoryException
SyncProvider
스펙을 참조해 주세요. JNDI 문맥에 바인드 된 동기 프로바이더를 등록하려면 , SyncProvider 인스턴스를 JNDI 이름 공간에 바인드 합니다.
SyncProvider p = new MySyncProvider(); InitialContext ic = new InitialContext(); ic.bind ("jdbc/rowset/MySyncProvider", p);게다가 JNDI 문맥은,
setJNDIContext
메소드에 의해 SyncFactory
에 초기설정 됩니다. SyncFactory
은, 이 문맥을 이용해, JNDI 문맥과 그 자식(child) 노드에 바인드 된 사용 가능한 SyncProvider
객체를 검색합니다.
providerID
- 등록되는 동기 프로바이더의
일의의 ID 를 가지는 String
객체
SyncFactoryException
- 빈 상태(empty) 또는 null 의 프로바이더명을 돌려준다
처리가 시행되었을 경우setJNDIContext(javax.naming.Context)
public static SyncFactory getSyncFactory()
SyncFactory
싱글 톤을 돌려줍니다.
SyncFactory
인스턴스public static void unregisterProvider(String providerID) throws SyncFactoryException
providerID
- 동기 프로바이더의 일의의 ID
SyncFactoryException
- 미등록의 SyncProvider 구현의 등록을 해제한다
처리가 시행되었을 경우public static SyncProvider getInstance(String providerID) throws SyncFactoryException
SyncProvider
인스턴스를 돌려줍니다.
providerID
- 일의의 프로바이더 식별자
SyncProvider
구현
SyncFactoryException
- SyncProvider 가 발견되지 않는 경우,
또는 이 프로바이더의 호출시에 어떠한 에러가 발생했을 경우public static Enumeration <SyncProvider > getRegisteredProviders() throws SyncFactoryException
SyncProvider
객체로서 사용할 수 있습니다. 최소한, JDBC 드라이버를 사용해 RowSet 컨텐츠 데이터를 포함할 수 있도록(듯이) 하는 참조 동기 프로바이더를 사용할 수 있습니다. 열거.
SyncFactoryException
public static void setLogger(Logger logger)
SyncFactory
이 제공하는 SyncProvider
구현에 의해 사용되는 로그 객체를 설정합니다. 모든 SyncProvider
구현은, 이 객체에 이벤트를 기록할 수 있습니다. 어플리케이션은,getLogger
메소드를 사용해 이 객체의 핸들을 취득할 수 있습니다.
logger
- Logger 객체 인스턴스public static void setLogger(Logger logger, Level level)
SyncFactory
SPI 가 제공하는 SyncProvider
구현에 의해 사용되는 로그 객체를 설정합니다. 모든 SyncProvider
구현은, 이 객체에 이벤트를 기록할 수 있습니다. 어플리케이션은,getLogger
메소드를 사용해 이 객체의 핸들을 취득할 수 있습니다.
logger
- Logger 객체 인스턴스level
- 필요한 로그의 단계를 나타내는 Level 객체
인스턴스public static Logger getLogger() throws SyncFactoryException
SyncFactoryException
- 로그 객체가 설정되어 있지 않은 경우public static void setJNDIContext(Context ctx) throws SyncFactoryException
ctx
- 유효한 JNDI 문맥
SyncFactoryException
- 지정된 JNDI 문맥이 null 의 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.