8.6. 同期の登録
デフォルトでは、Red Hat Data Grid は XAResource を通じて分散トランザクションの最初のクラス参加者として登録します。Red Hat Data Grid がトランザクションの参加者である必要はありませんが、ライフサイクル(prepare、complete)によってのみ通知されます。たとえば、Red Hat Data Grid が Hibernate で 2 番目のレベルキャッシュとして使用される場合などです。
Red Hat Data Grid は、同期 を介してトランザクションエンリストメントを許可します。これを有効にするには、NON_XA トランザクションモードを使用します。
Synchronization には、TransactionManager が 1PC で 2PC を最適化できるという利点があります。この場合、他の 1 つのリソースのみがそのトランザクションにエンリストされます (last resource commit optimization)。例:Hibernate 2 レベルのキャッシュ: Red Hat Data Grid がコミット時よりも XAResource Manager に自らを登録すると、 は 2 つの TransactionManager XAResource (キャッシュとデータベース)を認識し、この最適化は行いません。2つのリソース間で調整する必要があるため、txログをディスクに書き込む必要があります。一方、Red Hat Data Grid を Synchronisation として登録すると、TransactionManager はディスクへのログの記述を省略します(パフォーマンス向上)。