Class TransactionPartitionProcessor<BUNDLE extends org.hl7.fhir.instance.model.api.IBaseBundle>

java.lang.Object
ca.uhn.fhir.jpa.dao.TransactionPartitionProcessor<BUNDLE>

public class TransactionPartitionProcessor<BUNDLE extends org.hl7.fhir.instance.model.api.IBaseBundle> extends Object
This class invokes the Pointcut.STORAGE_TRANSACTION_PRE_PARTITION hook to slice a transaction request bundle into partitions. It then executes each partition as a separate transaction and aggregates the results into a single cohesive response bundle. The response bundle will have entries which correspond to the original request bundle entries.

Note that this does break the FHIR transaction semantics, since it is possible for one partition to succeed and then a later partition to fail. This should therefore only be used in cases where this is understood and desired.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Object
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    TransactionPartitionProcessor(BaseTransactionProcessor theTransactionProcessor, ca.uhn.fhir.context.FhirContext theFhirContext, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails, boolean theNestedMode, ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster theCompositeBroadcaster, String theActionName)
    Constructor
  • Method Summary

    Modifier and Type
    Method
    Description
    execute(BUNDLE theRequest)
    Invoke the Pointcut.STORAGE_TRANSACTION_PRE_PARTITION hook to slice the transaction request bundle into partitions, execute each slice, and aggregate the results.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • TransactionPartitionProcessor

      public TransactionPartitionProcessor(BaseTransactionProcessor theTransactionProcessor, ca.uhn.fhir.context.FhirContext theFhirContext, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails, boolean theNestedMode, ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster theCompositeBroadcaster, String theActionName)
      Constructor
  • Method Details

    • execute

      public BUNDLE execute(BUNDLE theRequest)
      Invoke the Pointcut.STORAGE_TRANSACTION_PRE_PARTITION hook to slice the transaction request bundle into partitions, execute each slice, and aggregate the results.