This section presents some considerations to keep in mind when you are designing your integration project.You can only use TIBCO BusinessEvents resources that are included in the TIBCO BusinessEvents EAR file referenced in the RuleServiceProvider Configuration resource.TIBCO BusinessEvents generates its own threads to execute the rule function that the ActiveMatrix BusinessWorks process calls through the Invoke RuleFunction activity. Then the ActiveMatrix BusinessWorks thread is released and the process is set to a pending state. When the rule function returns, the ActiveMatrix BusinessWorks process resumes its Ready state.Avoiding Threading IssuesIt is possible to configure a complex execution path in your project, for example, one in which TIBCO BusinessEvents invokes an ActiveMatrix BusinessWorks process, which in turn invokes a TIBCO BusinessEvents rule function, and so on.The BusinessWorks.InvokeProcess() rule function and the Invoke RuleFunction activity both operate synchronously. Both attempt to acquire a lock on the TIBCO BusinessEvents RTC.Check your execution path carefully to ensure that there are no threading issues leading to deadlock. In general, make sure that no action in the entire execution path attempts to use the same working memory that is already locked.For example, if you execute BusinessWorks.InvokeProcess() function in TIBCO BusinessEvents, then in the ActiveMatrix BusinessWorks process it calls, you cannot use an Invoke RuleFunction activity to invoke a rule function in the same agent. You could invoke a rule function running in a different agent, however.The engine used as the container is responsible for state and object management, fault tolerance, and logging. The contained engine delegates management of these features to the container. The main points to keep in mind are listed below.
ActiveMatrix BusinessWorks Containers Use In Memory object management in TIBCO BusinessEvents. Other OM methods are not supported. Engine TRA file The ActiveMatrix BusinessWorks engine TRA file is not used. Provide any properties needed, such as classpath and palette path, in the TIBCO BusinessEvents engine TRA file (see Configuring the Environment for ActiveMatrix BusinessWorks Containers). The TIBCO BusinessEvents engine TRA file is not used. Provide any properties needed for TIBCO BusinessEvents in the ActiveMatrix BusinessWorks property file (see Configuring the Environment for ActiveMatrix BusinessWorks Containers). Provide configuration values for TIBCO BusinessEvents. The CDD file is also used. Provide configuration values for TIBCO BusinessEvents. TIBCO Hawk microagent With configuration of a property in the TIBCO BusinessEvents CDD file, you can use TIBCO Hawk methods for TIBCO BusinessEvents and ActiveMatrix BusinessWorks. See the procedure in the section Configuring the Environment for ActiveMatrix BusinessWorks Containers for details. Only the TIBCO Hawk methods for ActiveMatrix BusinessWorks are used. Fault Tolerance ActiveMatrix BusinessWorks fault tolerance is used. Do not configure TIBCO BusinessEvents in fault tolerant mode. TIBCO BusinessEvents manages logging. When TIBCO BusinessEvents is the container, ActiveMatrix BusinessWorks checkpointing can be used in a limited way. Do not use ActiveMatrix BusinessWorks checkpointing in any process that is called by startProcess() or invokeProcess(), or in any process called by such processes.When an active TIBCO BusinessEvents processing unit (PU) fails, standby agents in other processing units become active and take over for the agents that failed. The newly active agents (which are of the same agent class) start the ActiveMatrix BusinessWorks engine as needed.On failback, agents of lower priority become standbys. During deactivation they stop the ActiveMatrix BusinessWorks engine they were running.
• The internal TIBCO BusinessEvents engine that ActiveMatrix BusinessWorks starts communicates only with the ActiveMatrix BusinessWorks process that invokes it. TIBCO BusinessEvents channels do not listen for incoming messages.
• Do not execute any action in a TIBCO BusinessEvents startup rule function that results in use of BusinessWorks.invokeProcess() or BusinessWorks.startProcess() functions. The ActiveMatrix BusinessWorks engine may not be fully initialized when these functions are executed in a startup rule function (or in any rule in the RTC cycle of a startup rule function).
Copyright © TIBCO Software Inc. All Rights Reserved.