|
||||||||||
| 전의 Class에 다음의 Class에 | 프레임 있어 프레임 없음 | |||||||||
| Summary : 네스트 | 필드 | constructor | 메소드 | 상세 : 필드 | constructor | 메소드 | |||||||||
java.lang.Objectflex.data.DataServiceTransaction
Public Class DataServiceTransaction
DataServiceTransaction 인스턴스는, Data Management Services 에 의해 Management되는 오브젝트 상태를 변경하는 조작을 할 때마다 작성됩니다. 클라이언트로 autoSyncEnabled 프롭퍼티가 true 로 Configuration 되어 있는 경우는, 이 Class를 서버 사이드 코드로부터 사용해, 클라이언트에 포함된 Management 데이터로 변경을 푸쉬 할 수가 있습니다.
sync 메소드, createItem, updateItem, 또는 deleteItem 메소드 내부로부터 다른 변경을 추가하는 경우는, DataServiceTransaction 의 인스턴스가 이미 작성되고 있으므로, 정적인 getCurrentDataServiceTransaction 메소드를 호출해, 다음에 updateItem, deleteItem, 및 createItem 메소드를 호출해, 배치 전체가 정상적으로 종료했을 경우에게만 원의 변경의 배치와 함께 송신되는 추가의 변경을 방아쇠 할 필요가 있습니다. 현재의 트랜잭션(transaction)가 롤백(rollback) 되었을 경우, 이러한 변경은 클라이언트에 푸쉬 되지 않습니다.
Data Management Services 와 같은 Web 어플리케이션의 코드의 실행중에서, 기존의 어셈블러의 조작중이 아닌 경우는, 정적인 begin 메소드를 사용해, 신규의 DataServiceTransaction 를 개시합니다. 이 결과, DataServiceTransaction 오브젝트가 돌려주어집니다. updateItem, createItem, deleteItem, 및 refreshFill 메소드를 사용해, 변경의 배치를 큐에 넣을 수가 있습니다. commit 를 호출하면(자), 이러한 변경은 클라이언트에 푸쉬 됩니다.
useJTA parameter 를 true 로 Configuration 해 begin 를 호출하면(자), JTA UserTransaction 이 DataServiceTransaction 와 함께 개시됩니다. UserTransaction 는, getUserTransaction 메소드를 사용해 취득할 수 있습니다. 이 경우에 DataServiceTransaction 로 commit 를 호출하면(자), UserTransaction 가 최초로 위탁됩니다. 이것이 정상적으로 실행되었을 경우에게만, 메세지의 배치가 클라이언트에 푸쉬 됩니다.
또, 이 Class를 사용해, 트랜잭션(transaction)의 완료전 및 완료 후의 동기 이벤트를 등록합니다. 이것은 어셈블러를 실장할 경우에 편리합니다. 어셈블러의 실장시에는, 트랜잭션(transaction)가 위탁되었던 시기를 알 필요가 있기 때문입니다.
DataServiceTransaction 는, 각각 thread 로컬 상태에 포함되므로, 한 번에 1 개의 thread만으로 처리되는 것이라고 보여집니다. 이것은 thread 세이프가 아닙니다.
트랜잭션(transaction)를 롤백(rollback) 하려면 , setRollbackOnly 를 호출하는 일도, 통상의 J2EE 어플리케이션의 경우와 같게, UserTransaction 오브젝트에 롤백(rollback) 끝난 마크를 붙일 수도 있습니다.
| 필드 Summary | |
|---|---|
static String |
LOG_CATEGORY
|
static String |
USER_TX_JNDI_NAME
|
| 메소드 Summary | |
|---|---|
static DataServiceTransaction |
begin (boolean useJTA)
이 버젼의 begin 메소드는 디폴트의 MessageBroker 를 사용합니다. |
static DataServiceTransaction |
begin (String serverId, boolean useJTA)
클라이언트로 변경을 송신하기 위해서 사용할 수 있는 DataServiceTransaction 를 개시합니다. |
void |
commit ()
클라이언트는, 이 메소드를 호출해 트랜잭션(transaction)를 위탁할 수 있습니다. |
void |
createItem (String destination, Object item)
이 메소드를 사용해, 새로운 아이템이 작성된 것을 Data Management Service 에 나타냅니다. |
void |
deleteItem (String destination, Object item)
이 아이템이 포함되는 순차 순서에 동기 된 클라이언트에 대해서 deleteItem 메소드를 송신합니다. |
void |
deleteItemWithId (String destination, Map identity)
이 버젼의 deleteItem 메소드는, 삭제전에 아이템이 수정되면(자) 경합 검출을 실시하지 않습니다. 그 아이템은 삭제됩니다. |
Map |
getAttributeMap ()
FDMS 트랜잭션(transaction)에 범위(scope) 된 값의 MAP입니다. |
static DataServiceTransaction |
getCurrentDataServiceTransaction ()
DataServiceTransaction 가 현재의 thread와 관련지을 수 있고 있는 경우는, 현재의 DataServiceTransaction 를 돌려줍니다. |
static UserTransaction |
getCurrentUserTransaction ()
현재의 DataServiceTransaction 가 JTA 모드로 개시되었을 경우는, DataServiceTransaction 로부터 UserTransaction 에 액세스 할 수 있습니다. |
boolean |
getSendMessagesToPeers ()
|
UserTransaction |
getUserTransaction ()
이 Data Service 트랜잭션(transaction)에 관련지을 수 있었던 유저트 런더 쿠션을 돌려줍니다. |
boolean |
isRefill ()
|
void |
refreshFill (String destination, List fillParameters)
자동적으로 동기 된 필의 일치 리스트로 fill 메소드를 재차 실행해, 돌려주어진 아이템의 ID 를, autoSyncEnabled=true 와 Configuration 해 전회 실행했을 때에 돌려주어진 아이템의 ID 와 비교합니다. |
void |
registerSynchronization (Synchronization synchronization)
동기 Listener를 이 트랜잭션(transaction)에 등록합니다. |
void |
rollback ()
이 트랜잭션(transaction)를 롤백(rollback) 합니다. |
void |
setRollbackOnly ()
완료시에 트랜잭션(transaction)를 위탁하는 것이 아니라, 롤백(rollback) 하도록(듯이), DataServiceTransaction 에 마크를 붙입니다. |
void |
setSendMessagesToPeers (boolean stp)
updateItem, createItem, 및 deleteItem 메소드를 호출하면(자), 통상은 이러한 메세지는 클러스터내의 다른 피어에 송신되므로, 이러한 노드에 의해, 노드에 접속되고 있는 클라이언트에 전달됩니다. |
void |
updateItem (String destination, Object newVersion, Object previousVersion, String [] changes)
이 메세지에 예약(subscribe) 하고 있는 클라이언트에 갱신 이벤트를 송신합니다. |
| Class java.lang. Object 로부터 상속 받는 메소드 |
|---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
| 필드의 상세 |
|---|
public static final String USER_TX_JNDI_NAME
public static final String LOG_CATEGORY
| 메소드의 상세 |
|---|
public static DataServiceTransaction getCurrentDataServiceTransaction()
public static UserTransaction getCurrentUserTransaction()
public static DataServiceTransaction begin(String serverId, boolean useJTA)
기존의 트랜잭션(transaction)의 실행중에 이 메소드를 호출하는 것은 부정합니다 (에러가 슬로우 됩니다).
serverId - 이 파라미터는, 이 API 를 사용해 처리하는 Data Management Services 의 행선지를 작성한 MessageBroker 를 식별합니다. 통상은, Web 어플리케이션 마다 1 개의 MessageBroker 가 있어, 이 경우는 null 를 건네줄 수가 있습니다. Web 어플리케이션에 복수의 MessageBroker 가 있는 경우는, Web 어플리케이션의 "web.xml" 파일로 MessageBrokerServlet 의 Configuration 에 사용하는 messageBrokerId 의 값을, 이 파라미터의 serverId 로서 지정합니다. useJTA - DataServiceTransaction 에 가세해 JTA UserTransaction 도 개시하는 경우는, 이 값을 true 와 지정합니다. 양쪽 모두가 차례차례 위탁/롤백(rollback) 됩니다.
DataServiceException - serverId 가 무효인가, 현재의 thread에 액티브하게 관련지을 수 있었던 DataServiceTransaction 가 이미 있는 경우. public static DataServiceTransaction begin(boolean useJTA)
DataServiceTransaction.begin(String, boolean) public UserTransaction getUserTransaction()
public void registerSynchronization(Synchronization synchronization)
synchronization - javax.transaction.Synchronization Interface를 실장하는 인스턴스. public void setRollbackOnly()
public void commit()
public void rollback()
public void updateItem(String destination, Object newVersion, Object previousVersion, String [] changes)
행선지 파라미터와 신규 버젼의 오브젝트를 제공할 필요가 있습니다. null 이외의 이전의 버젼을 제공하면(자), 이 오브젝트는, 클라이언트의 데이터의 버젼이 이전의 버젼과 일치하지 않는 경우에 클라이언트의 경합을 검출하기 위해서 사용됩니다. 또, 경합과 갱신을 확인할 필요가 있는 프롭퍼티를 나타내기 위해서(때문에), 변경된 프롭퍼티명의 리스트를, 클라이언트에 대한 힌트로서 제공할 수도 있습니다. changes 에 null 를 지정하면(자), 클라이언트의 모든 프롭퍼티가 갱신됩니다. 이러한 프롭퍼티명에는, 프롭퍼티의 프롭퍼티가 변경된 것을 나타내는, 어떠한 닷 표기도 사용할 수 없습니다. 최상정도 레벨의 프롭퍼티명만을 사용할 수 있습니다.
destination - 갱신하려고 하고 있는 아이템을 Management하고 있는 Data Management Services 의 행선지명입니다. newVersion - 갱신하는 아이템의 신규 버젼입니다. 아이템의 ID 는, 갱신하는 아이템을 결정하는 경우에 사용됩니다. previousVersion - null 가 아닌 경우는, 여기에는, 갱신하려고 하고 있는 아이템의 버젼이 포함됩니다. 버젼이 previousVersion 와 일치하고 있지 않는 경우는, 클라이언트는 경합을 검출할 수 있습니다. 이 값을 null 로서 지정하면(자), 갱신중의 아이템에 대해, 클라이언트에 보류중의 변경이 있는 경우에게만 경합이 검출됩니다. changes - 갱신하는 프롭퍼티명의 배열입니다. null 치를 지정해, 모든 프롭퍼티치가 변경된 가능성이 있는 것을 나타낼 수가 있습니다. public void createItem(String destination, Object item)
이 메소드가, 이 아이템의 어댑터/어셈블러에 create 메세지를 송신하지 않는 것에 주의해 주세요. 여기에서는, 연구 최종 단계 데이타베이스가 데이터를 사용해 이미 갱신되고 있는지, 또는 이 트랜잭션(transaction)로 갱신중이다고 보여집니다. 이 트랜잭션(transaction)가 롤백(rollback) 되면(자), 변경은 적용되지 않습니다.
destination - 새롭게 작성된 이 아이템을 Management하는 행선지의 이름입니다. item - 작성하는 새로운 아이템입니다. public void deleteItem(String destination, Object item)
이 버젼의 delete 메소드를 사용하면(자), 지정된 아이템의 버젼에 일치하지 않는 버젼의 아이템이 있는 경우에, 클라이언트가 경합을 생성합니다. 원의 버젼이 없는 경우는, deleteItemWithId 메소드를 사용해, 클라이언트상의 아이템을 무조건 삭제할 수가 있습니다.
destination - 삭제하는 아이템이 포함되는 행선지의 이름입니다. the - 삭제하는 아이템의 버젼입니다. 이 버젼의 아이템이, 현재 Management하고 있는 버젼에 일치하지 않는 경우는, 클라이언트는 경합을 검출할 수 있습니다. public void deleteItemWithId(String destination, Map identity)
destination - 삭제하는 아이템이 포함되는 행선지의 이름입니다. identity - 이 아이템의 각 ID 프롭퍼티의 엔Tree가 포함되는 java.util.Map 입니다 (키는 ID 프롭퍼티명, 값은 그 값). public void refreshFill(String destination, List fillParameters)
아이템의 프롭퍼티치를 갱신하는 경우는, 변경된 개개의 아이템으로 updateItem 를 사용할 필요가 있습니다.
fill 파라미터의 인수에 null 를 지정하면(자), 자동적으로 동기 되는 모든 필이 갱신됩니다. fill 파라미터의 리스트를 지정했을 경우는, fill 파라미터의 그 리스트를, 필을 실행했을 때에 클라이언트로부터 제공된 리스트와 비교합니다. fill 파라미터가 일치하는 경우는, 그 필은 갱신됩니다. 일치 알고리즘은 다음과 같이 기능합니다. 특정의 fill 파라미터에 값을 지정하면(자), 게다가로 equals 메소드가 사용되어, 필을 실행했을 때에 클라이언트가 사용한 fill 파라미터치라고 비교됩니다. 파라미터치로서 null 를 지정하면(자), 모든 필의 그 슬롯에 일치합니다. Class 를 지정하는 경우는, fill 파라미터의 값은 그 Class의 인스턴스가 아니면 안됩니다.
destination - 목적의 필을 작성하는 대상입니다. fillParameters - 갱신하는 필을 정의하는 fill 파라미터 패턴입니다 (상세한 것에 대하여는 전의 설명을 참조). public void setSendMessagesToPeers(boolean stp)
stp - 이러한 메세지를 피어 서버에 송신하는 경우는 true 입니다. 다음에 이러한 메세지는, 이러한 서버에 접속된 클라이언트에 송신됩니다. public boolean getSendMessagesToPeers()
public Map getAttributeMap()
public boolean isRefill()
|
||||||||||
| 전의 Class에 다음의 Class에 | 프레임 있어 프레임 없음 | |||||||||
| Summary : 네스트 | 필드 | constructor | 메소드 | 상세 : 필드 | constructor | 메소드 | |||||||||