@Override protected LogRecordWrapper createParticipant(AbstractRecord rec, ParticipantStatus listType) { if (rec instanceof ExtendedResourceRecord) return new XAResourceRecordBean(this, rec, listType); return super.createParticipant(rec, listType); }
public XAResourceRecordBean(ActionBean parent, AbstractRecord rec, ParticipantStatus listType) { super(parent, rec, listType); init(rec); }
public JTSXAResourceRecordWrapper(AbstractRecord rec, Uid uid) { super(uid); xidImple = new XidImple(getXid()); this.rec = rec; if (_theXAResource != null) { XAResourceRecordBean.this.className = _theXAResource.getClass().getName(); XAResourceRecordBean.this.jndiName = callMethod(_theXAResource, "getJndiName"); XAResourceRecordBean.this.eisProductName = callMethod(_theXAResource, "getProductName"); XAResourceRecordBean.this.eisProductVersion = callMethod(_theXAResource, "getProductVersion"); try { timeout = _theXAResource.getTransactionTimeout(); } catch (Exception e) { } } }
@Override public String remove() throws MBeanException { if (forget()) { if (jtsXAResourceRecord != null && jtsXAResourceRecord.doRemove()) jtsXAResourceRecord = null; // resource#forget succeeded so now it is ok to remove the inlined ExtendedResourceRecord forgetRec = true; return super.remove(); } return "Operation failed"; }
@Override public void register() { super.register(); // for each ExtendedResourceRecord see if there is a corresponding XARecoveryResource entry in the local store for (LogRecordWrapper participant : getParticipants()) { if (participant instanceof XAResourceRecordBean) { // this is an ExtendedResourceRecord XAResourceRecordBean xarrb = (XAResourceRecordBean) participant; // see if there is a corresponding JTSXAResourceRecordWrapper for this participant XARecoveryResourceMBean jtsxaResourceRecordWrapper = findJTSXAResourceRecordWrapper(xarrb); if (jtsxaResourceRecordWrapper != null && jtsxaResourceRecordWrapper instanceof JTSXAResourceRecordWrapper) xarrb.setJtsXAResourceRecord((JTSXAResourceRecordWrapper) jtsxaResourceRecordWrapper); } } } }
public XAResourceRecordBean(UidWrapper w) { super(w.getUid()); init(null); } public XAResourceRecordBean(ActionBean parent, AbstractRecord rec, ParticipantStatus listType) {