2013-08-21 1 views
0

새로운 Java 카드 개발이며 트랜잭션 중에 전원이 손실되었을 때 트랜잭션을 처리하는 방법을 알고 싶습니다. 전원이 끊어 지거나 카드 터미널에서 Java 카드를 제거 할 때 내부적으로 재설정하는 방법이 있는지 알고 싶습니다. 내 자바 카드 애플릿에서 나는 실패했습니다 : 그것을 할 수있는 다른 방법은트랜잭션 중에 전원이 꺼질 때 Java Card 애플릿을 재설정하십시오.

  • JCSystem.beginTransaction();
  • JCSystem.commitTransaction();
  • Util.arrayCopyNonAtomic();

있습니까? EEPROM이나 플래시가 원자 적으로 처리하는 등 거래 내

감사 Sajith

+1

어떻게 작동하지 않습니까? 그리고 당신은 트랜잭션 내에서'arrayCopyNonAtomic'을 사용하기를 원합니까? (그 트랜잭션의 목적을 무의미하게하지는 않습니까?) – martijno

+1

당신은 훌륭한 카드 [Java Card Technology for Smart Cards] (http://books.google.nl/books/about/Java_Card_Technology_for_Smart_Cards.html?id=4WDj4H6pT50C&redir_esc=)에 완벽하게 설명되어있는 많은 (유효한) 질문을 만들고 있습니다. 와이) –

답변

1

영구 메모리에 기록합니다. 즉, 마치 영구 메모리에 대한 모든 쓰기가 하나의 커다란 동작의 일부인 것처럼 말입니다.

원자 복사본을 만들려면 Util.arrayCopyNonAtomic() 대신 Util.arrayCopy()을 사용해야합니다. 원 자성의 일부를 취할 수있는 다른 동작이있을 수도 있습니다. 영구 메모리를 변경하는 조치가 이 아니고이 원자 트랜잭션에 참여하면 Java Card API는 명시 적으로 해당 조치를 문서화합니다.

앞에서 설명한 것처럼 Java Card를 재설정 할 수있는 방법은 없습니다. 대신 JCSystem.abortTransaction()을 사용할 수 있습니다.

관련 문제