EnsLib.MsgRouter.RoutingEngine
persistent class EnsLib.MsgRouter.RoutingEngine extends Ens.BusinessProcess
SQL Table Name: EnsLib_MsgRouter.RoutingEngine
Property Inventory
- %ErrorStatus
- %ResponseList
- %TimedOut
- %WaitAll
- ActOnTransformError
- ActOnValidationError
- ActionTargets
- AlertOnBadMessage
- BadMessageHandler
- BusinessRuleName
- Document
- ForceSyncSend
- ForwardGeneratedResponseToTargets
- MsgClass
- ResponseFrom
- ResponseTargetConfigNames
- ResponseTimeout
- RuleActionReason
- RuleActionUserData
- RuleActionUserDataArray
- RuleLogging
- RuleReason
- RuleUserData
- Source
- Validation
- aRespFrom
Method Inventory
- GetDelegateConnections()
- IsErrorResponse()
- OnComplete()
- OnError()
- OnGetConnections()
- OnPrepareReply()
- OnRequest()
- OnResponse()
- OnTimeout()
- OnValidate()
- RuleLoggingSet()
- doOneAction()
- normalizeValSpec()
Parameters
Properties
This setting is intended to ensure FIFO ordering when this router and the target Operations have PoolSize=1, and ancillary Operations might get called asynchronously from within a Transform or Operation called from this router.
Note that if there are multiple 'send' targets, this setting means they will be called one after another in serial fashion, with the next being called after the previous call completes.
Also note that synchronous calls are not subject to the ResponseTimeout setting.
a response. If this value is empty, no reply will be requested from any target. Otherwise, this value is a
comma-separated list of target config names. The response returned will be the first one that arrives back
from any target in the list. A value of '*' will match any target, so the first response received will be
the one returned.
If none of the listed targets gets called and the caller requested a response, an empty 'OK' response header
will be returned.
If the list of targets begins with a '+' character, the responses from all the targets called will be returned as a list of message header IDs in the response header, or an empty 'OK' response header if no responses appear before the timeout expires.
If the list of targets begins with a '-' character, all error responses only from any of the targets called
will be returned as a list of message header IDs in the response header, or an empty 'OK' response header if no error responses appear before the timeout expires.
If this value is empty, responses are only returned to the caller. If one or more target config names are listed (separated by commas), each response from this router will be forwarded to each target config item listed.
This setting has effect only if ResponseFrom is not empty or when the response was generated by the router and the setting ForwardGeneratedResponseToTargets is true.
This setting has effect only if ResponseFrom is not empty.
This property is only valid if the RuleSet being called includes one or more assignments to the context property RuleActionUserData.
If this is the case then the the rule action reason is set at the start of each rule/when or rule/otherwise execution
The system assigned value is of the form rule#1when#1 or rule#1otherwise. (numbers change as appropriate).
If the rule action reason is set in the rule it is returned as part of a send return value allowing the Routing Engine to set RuleActionReason property to the value contained in the send return instruction.
This allows transformations to access aux.RuleActionUserData which will be the value of the RuleActionUserData set during the particular rule/when or rule/otherwise execution that led to the send transformation action.
This property value is reset to empty string at the end of the rule execution.
NOTE: If a send action takes place outside of a rule/when or rule/otherwise any value returned with the send instructions will be the last value set in the rule execution.
NOTE: This property is only valid if the rule being called is assigning one or more values to the routing engine context property RuleActionUserData.
The value assigned will be paired with the system assigned RuleActionReason value at the time of assignment (using the internal RuleActionUserDataArray).
The RuleActionReason value is assigned by the system at the start of each rule/when or rule/otherwise execution if RuleActionUserData is used in the rule.
The value of aux.RuleActionUserData accessed in a transformation called from a routing rule as part of a send action will be the value assigned in the routing rule for the particular rule/when or rule/otherwise that led to the send action.
A transformation that is called from a routing rule as part of a send action can set aux.RuleActionUserData. Any subsequent transformations that are executed as part of a send action from the same rule/when or rule/otherwise will then retrieve the transformation modified value if they access aux.RuleActionUserData.
If the RuleActionReason is empty the RuleActionUserData assignment will not take place.
Internal storage for user defined variables at specific rule/when or rule/otherwise states in the ruleset execution.
This property cannot be set directly in the rule.
NOTE: This property is only valid if the rule being called is assigning one or more values to the routing engine context property RuleActionUserData.
- 'e' - log errors only. All errors will be logged irrespective of other flags, so setting the value to 'e' or leaving the value empty will only log errors.
- 'r' - log return values. This is the default value for the setting, and is also automatic whenever the 'd' or 'c' flags are specified.
- 'd' - log user-defined debug actions in the rule. This will also include 'r'.
- 'c' - log details of the conditions that are evaluated in the rule. This will also include 'r'.
- 'a' - log all available information. This is equivalent to 'rcd'.
Only one value of the RuleUserData variable is available and it is the last value it is assigned in the RuleSet before the RuleSet returns.
Methods
Returning the same error will cause the BusinessProcess to set its status to error and close down Returning $$$OK from this method causes the BusinessProcess to recover from this error
For custom coded Business Processes that do not sub class Ens.BusinessProcessBPL it is also possible to use WillHandleErroredResponse() and OnErroredResponse()
Inherited Members
Inherited Properties
- %ConfigName
- %ConfigQueueName
- %CurrentResponseHeader
- %IsCompleted
- %IsTerminated
- %IsTimerInterrupted
- %LastActionTime
- %LastHandledTime
- %LastReportedError
- %MasterPendingResponses
- %MasterPendingResponsesOld
- %MessagesReceived
- %MessagesReceivedOld
- %MessagesSent
- %MessagesSentOld
- %PrimaryRequestHeader
- %PrimaryResponseHeader
- %QuitTask
- %RepliedStatus
- %SessionId
- %StatusCode
- %SuperSession
- %TimeCompleted
- %TimeCreated
- %WarnedLatest
- %isShadow
- %request
- %response
- %responseClassName
- %responseId
- Adapter
- AlertGroups
- AlertOnError
- AlertRetryGracePeriod
- BusinessPartner
- FailureTimeout
- InactivityTimeout
- QueueCountAlert
- QueueWaitAlert
- ReplyCodeActions
- Retry
- RetryInterval
- SuspendMessage
- ThrottleDelay
Inherited Methods
- %%CLASSNAMELogicalToStorage()
- %%CLASSNAMEStorageToLogical()
- %AddToSaveSet()
- %AddToSyncSet()
- %BMEBuilt()
- %BuildIndicesAsync()
- %BuildIndicesAsyncResponse()
- %CheckConstraints()
- %CheckConstraintsForExtent()
- %ClassIsLatestVersion()
- %ClassName()
- %ComposeOid()
- %ConstructClone()
- %Delete()
- %DeleteExtent()
- %DeleteId()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Exists()
- %ExistsId()
- %Extends()
- %GUID()
- %GUIDSet()
- %GetLock()
- %GetParameter()
- %GetSwizzleObject()
- %Id()
- %InitExtentData()
- %InsertBatch()
- %IsA()
- %IsModified()
- %IsNull()
- %KillExtent()
- %KillExtentData()
- %LoadFromMemory()
- %LockExtent()
- %LockId()
- %New()
- %NormalizeObject()
- %ObjectIsNull()
- %ObjectModified()
- %Oid()
- %OnBeforeAddToSync()
- %OnClose()
- %OnDeleteFinally()
- %OnDetermineClass()
- %OnNew()
- %OnOpenFinally()
- %OnSaveFinally()
- %Open()
- %OpenId()
- %OriginalNamespace()
- %PackageName()
- %PhysicalAddress()
- %PurgeIndices()
- %Reload()
- %RemoveFromSaveSet()
- %ResolveConcurrencyConflict()
- %RollBack()
- %Save()
- %SaveDirect()
- %SaveIndices()
- %SerializeObject()
- %SetModified()
- %SortBegin()
- %SortEnd()
- %SuperSessionSet()
- %SyncObjectIn()
- %SyncTransport()
- %UnlockExtent()
- %UnlockId()
- %ValidateIndices()
- %ValidateObject()
- %ValidateTable()
- AdapterName()
- AssignOneSetting()
- ClearAllPendingResponses()
- DeferResponse()
- EnumerateSettingsClose()
- EnumerateSettingsExecute()
- EnumerateSettingsFetch()
- GenerateSuperSession()
- GetDeferredResponseToken()
- GetMsgHdrRequestKey()
- GetProductionSettingValue()
- GetProductionSettings()
- GetPropertyConnections()
- GetSettings()
- GetShadowInstance()
- IsResponsePending()
- OnErroredResponse()
- OnFailureTimeout()
- OnGenerateSuperSession()
- OnGetReplyAction()
- OnInit()
- OnKeepalive()
- OnMonitor()
- OnProductionStart()
- OnProductionStop()
- OnTearDown()
- QueueName()
- RemovePendingResponse()
- Reply()
- ReplyError()
- SendAlert()
- SendDeferredResponse()
- SendRequestAsync()
- SendRequestSync()
- SetTimer()
- WillHandleErroredResponse()
Storage
Gray indicates storage defined by superclasses.
Storage Model: Storage (Ens.BusinessProcess)
^Ens.BusinessProcessD(ID,"received",n) |
= | %MessagesReceived(n) |
Storage Model: Storage (Ens.BusinessProcess)
^Ens.BusinessProcessD(ID,"sent",n) |
= | %MessagesSent(n) |
Storage Model: Storage (Ens.BusinessProcess)
^Ens.BusinessProcessD(ID) |
= | %%CLASSNAME
%ConfigQueueName
%IsCompleted
%MasterPendingResponsesOld
%PrimaryRequestHeader
%PrimaryResponseHeader
%RepliedStatus
%responseId
Adapter
%SessionId
%TimeCompleted
%TimeCreated
%ConfigName
%QuitTask
AlertOnError
%responseClassName
%IsTimerInterrupted
%IsTerminated
%StatusCode
%MessagesReceivedOld
%MessagesSentOld
ReplyCodeActions
RetryInterval
AlertRetryGracePeriod
FailureTimeout
Retry
SuspendMessage
QueueCountAlert
QueueWaitAlert
InactivityTimeout
BusinessPartner
AlertGroups
%SuperSession
|
Storage Model: Storage (EnsLib.MsgRouter.RoutingEngine)
^Ens.BusinessProcessD(ID,"RoutingEngine") |
= | %WaitAll
%ResponseList
%TimedOut
ResponseTargetConfigNames
ActOnTransformError
RuleLogging
ActOnValidationError
ForwardGeneratedResponseToTargets
|
Storage Model: Storage (EnsLib.MsgRouter.RoutingEngine)
^Ens.BusinessProcessD(ID,"aRespFrom",n) |
= | aRespFrom(n) |