3 Dynamic Configuration

This chapter describes the concept and the configuration of running EFTLink Dynamic Cores.

Dynamic configuration is controlled via the EFTLinkConfig.properties setting DynamicConfiguration (true by default) and can either be set to true or false.

This allows a POS to override the configuration of EFTLink and any active core that would normally receive their instruction from their respective properties files. This is achieved by the POS sending through an Administrative Service request. There are five sub types of Administrative Service request, these are detailed in the table below:

Table 3-1 Administration Request Sub Types

Setting Description Notes

Capability

For any initialized core, a capability request can be sent to check whether that core supports the transaction types.

Supported Transaction type that can be checked are Manual PAN, Loyalty, Reversal, and Cancellation requests.

GetConfig

For any initialized core, this request can be sent to retrieve the current configuration settings for an active core.

Can be useful in conjunction with Uninitialise request.

For example, Initialise are core, gather configuration, Uninitialise and then Initialise core again with new setting sent within the Initialise request.

Initialise

This request must declare the EPSCore(s) that are to be initialized.

If no EPSCore is declared, then EFTLink will revert to the EftlinkConfig.properties file held in the installation root for its configuration.

If no properties are declared within the service request that declares which EPSCores(s) are initialized then EFTLink will revert to defaults.

An Initialise request must be sent before a logon request.

If an Initialise request is sent specifying an EPSCore, then EftlinkConfig.properties is not used and all properties that deviate from defaults setting must come from within the request.

Any properties specified inside an EPSCore element is targeted to that core only whereas any properties specified outside are used for all specified cores declared in the service request.

Core properties are read in from their respective property files. However, any properties specified within this request will take precedence.

Shutdown Instructs EFTLink to shut down. Please note that this terminates EFTLink and therefore EFTLink will not be able to acknowledge nor respond back to the request.
Uninitialise Closes all Initialise cores. If a core is initialized, then the core configuration is static. If core needs reconfiguring, then this is possible by sending an Uninitialise request followed by an Initialise request which declares the new configuration changes.

Figure 3-1 EFTLink and Core Initialized through the reading in of Property Files followed by Capability Request


EFTLink and Core Initialized through the reading in of Property Files followed by Capability Request

Figure 3-2 EFTLink and Core initialized via POS initialise Server Request


EFTLink and Core initialized via POS initialise Server Request

Example Administrative Service Requests and Responses

Capability

GetConfig

Initialise

Shutdown

Uninitialise

Capability

Capability Request

<?xml version="1.0" encoding="UTF-8"?>
<ServiceRequest RequestID="2" WorkstationID="Workstation: 10100" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="Capability">
  <PrivateData>
    <Property Key="Cancellation"/>
    <Property Key="Reversal"/>
    <Property Key="ManualPAN"/>
    <Property Key="Loyalty"/>
  </PrivateData>
  <POSdata LanguageCode="en">
    <POSTimeStamp>2021-08-19T14:03:52</POSTimeStamp>
  </POSdata>
</ServiceRequest>

Capability Response (single active core)

<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse RequestID="2" WorkstationID="Workstation: 10100" OverallResult="Success" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="Capability">
  <PrivateData>
      <Property Value="false" Key="Loyalty"/>
      <Property Value="true" Key="Reversal"/>
      <Property Value="false" Key="ManualPAN"/>
      <Property Value="true" Key="Cancellation"/>
  </PrivateData>
</ServiceResponse>

Capability Response (multiple active core)

<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse RequestID="2" WorkstationID="Workstation: 10100" OverallResult="Success" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="Capability">
  <PrivateData>
    <Core0 CoreName="oracle.eftlink.opiretail.OPIRetailCore">
      <Property Value="true" Key="Reversal"/>
      <Property Value="true" Key="Cancellation"/>
      <Property Value="false" Key="Loyalty"/>
      <Property Value="false" Key="ManualPAN"/>
    </Core0>
    <Core1 CoreName="oracle.eftlink.opiretail.OPIRetailCore">
      <Property Value="false" Key="Loyalty"/>
      <Property Value="true" Key="Reversal"/>
      <Property Value="false" Key="ManualPAN"/>
      <Property Value="true" Key="Cancellation"/>
    </Core1>
  </PrivateData>
</ServiceResponse>

GetConfig

GetConfig Request

<?xml version="1.0" encoding="UTF-8"?>
<ServiceRequest RequestID="3" WorkstationID="Workstation: 10100" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="GetConfig">
  <POSdata LanguageCode="en">
    <POSTimeStamp>2021-08-19T14:03:53</POSTimeStamp>
  </POSdata>
</ServiceRequest>

GetConfig Response (single active core)

<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponce RequestID="3" WorkstationID="Workstation: 10100" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="GetConfig">
  <PrivateData>
 …
      <Property Value="false" Key="QuickChipEnabled"/>
 …
  </PrivateData>
</ServiceResponse>

GetConfig Response (multiple active cores)

<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse RequestID="3" WorkstationID="Workstation: 10100" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="GetConfig">
  <PrivateData>
 …
      <Property Value="false" Key="QuickChipEnabled"/>
 …
    </Core0>
    <Core1 CoreName="oracle.eftlink.opiretail.OPIRetailCore">
      …
    </Core1>
 </PrivateData>
</ServiceResponse>

Initialise

Initialise Request

<?xml version="1.0" encoding="UTF-8"?>
<ServiceRequest RequestID="1" WorkstationID="Workstation: 10100" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="Initialise">
  <PrivateData>
    <Property Value="20" Key="InvalidCorePromptTimeout"/>
    <Property Value="true" Key="DynamicConfiguration"/>
    <EPSCore Id="0" Name="oracle.eftlink.opiretail.OPIRetailCore">
      <Property Value="false" Key="LineDisplayEnabled"/>
      <Property Value="true" Key="CardAcquisitionEnabled"/>
    </EPSCore>
  </PrivateData>
  <POSdata LanguageCode="en">
    <POSTimeStamp>2021-08-20T13:17:02</POSTimeStamp>
  </POSdata>
</ServiceRequest>

Initialise Response

<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse RequestID="1" WorkstationID="Workstation: 10100" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="Initialise">
  <PrivateData>
    <Property Value="20" Key="InvalidCorePromptTimeout"/>
    <Property Value="true" Key="DynamicConfiguration"/>
    <EPSCore Id="0" Name="oracle.eftlink.opiretail.OPIRetailCore">
      <Property Value="false" Key="LineDisplayEnabled"/>
      <Property Value="true" Key="CardAcquisitionEnabled"/>
    </EPSCore>
  </PrivateData>
  <POSdata LanguageCode="en">
    <POSTimeStamp>2021-08-20T13:17:02</POSTimeStamp>
  </POSdata>
</ServiceResponse>

Shutdown

Shutdown Request

<?xml version="1.0" encoding="UTF-8"?>
<ServiceRequest RequestID="5" WorkstationID="Workstation: 10100" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="Shutdown">
  <POSdata LanguageCode="en">
    <POSTimeStamp>2021-08-20T13:18:01</POSTimeStamp>
  </POSdata>
</ServiceRequest>

Shutdown Response

EFTLink doesn't send a response to a shutdown request because it is shutdown.

Uninitialise

Uninitialise Request

<?xml version="1.0" encoding="UTF-8"?>
<ServiceRequest RequestID="4" WorkstationID="Workstation: 10100" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="Uninitialise">
  <POSdata LanguageCode="en">
    <POSTimeStamp>2021-08-20T13:17:23</POSTimeStamp>
  </POSdata>
</ServiceRequest>

Uninitialise Response

<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse RequestID="4" WorkstationID="Workstation: 10100" OverallResult="Success" ApplicationSender="EFTLink Load Tester" RequestType="Administration" RequestSubType="Uninitialise"/>