85 Pipeline Manager Framework Modules
This chapter provides reference information for Oracle Communications Billing and Revenue Management (BRM) Pipeline Manager framework modules.
Controller
Use the Pipeline Manager Controller to control and monitor components in the Pipeline Manager framework. The Controller also generates the log message table that is used by the LOG module to generate the Process log file, the Pipeline Manager log file, and the Stream log file. For information, see "LOG".
Registry Entries
Table 85-1 lists the Controller registry entries.
Table 85-1 Controller Registry Entries
Entry | Value | Description | Mandatory? |
---|---|---|---|
Active |
True False |
Activates or deactivates the Pipeline Manager framework.
|
Yes |
DataPool |
N/A |
Subgroup that contains entries for all data modules in the Pipeline Manager framework. |
Yes |
DiagnosticDataHandler |
N/A |
Subgroup that configures diagnostic data collection. |
No |
EventHandler |
N/A |
Subgroup that contains the Event Handler entries. |
No |
Instrumentation |
N/A |
Subgroup that configures Operations Management Framework (OMF) instrumentation data collection. |
Yes |
Instrumentation.ProbeBroker |
String |
Specifies the path to the OMF instrumentation folder. |
Yes |
Instrumentation.HttpServer |
String |
Specifies configuration data for the OMF HTTP server. |
No |
LogMessageTable.MessageFilePath |
String |
Specifies the path to your error message files. By default, the Pipeline Manager installer installs your error message files in the pipeline_home/etc directory. pipeline_home is the directory where you installed Pipeline Manager. |
No |
LogMessageTable.MessageFilePrefix |
String |
Specifies the prefix for your error message files. |
No |
LogMessageTable.MessageFileSuffix |
String |
Specifies the suffix for your error message files. |
No |
MemoryMonitor |
N/A |
Subgroup that configures memory monitoring. See "Memory Monitor". |
No |
Pipelines |
N/A |
Subgroup that contains the entries for each pipeline. |
Yes |
ProcessLog |
N/A |
Subgroup that contains entries for the main processing log. |
Yes |
ProcessLoopTimeout |
Integer |
Specifies the interval, in seconds, between polling for a new semaphore file. This parameter controls the overall event loop, which includes looking for semaphore files. The value must be greater than 0. |
Yes |
QueueRequestTimeout |
Integer |
Specifies the interval for logging buffer sizes, in seconds. A value of 0 turns off logging. |
Yes |
Registry |
N/A |
Subgroup that contains registry processing entries. |
Yes |
Registry.Buffer |
N/A |
Subgroup that specifies the registry buffer's size and type. The registry entries in this subgroup depend on the buffer type. |
Yes |
Registry.FileName |
String |
Specifies the name of a file in dot-separated format that contains current updated registry settings, including semaphore updates. |
Yes |
Registry.FilePath |
String |
Specifies the path to the registry file. |
Yes |
Registry.NiceFormatFileName |
String |
Specifies the name of a file that contains current updated registry settings, including semaphore updates. This file format is easier to read than .FileName format and can be used to debug a registry file or create a new one. |
Yes |
Semaphore |
N/A |
Subgroup that contains semaphore processing entries. |
Yes |
Semaphore.FileName |
String |
Specifies the name of the semaphore file. |
Yes |
Semaphore.FilePath |
String |
Specifies the path to the semaphore file. |
Yes |
Semaphore.RetainFiles |
True False |
Specifies whether semaphore files are deleted or saved after they are processed.
The default is False. |
No |
TransactionIDController |
N/A |
Subgroup that contains the Transaction ID Controller entries. |
Yes |
Sample Registry File
ifw
{
Active = TRUE
ProcessLoopTimeout = 10
QueueRequestTimeout = 0
Semaphore
{
FilePath = ./semaphore
FileName = semaphore.reg
RetainFiles = False
}
Registry
{
FilePath = ./info
FileName = Sample.reg
NiceFormatFileName = niceSample.reg
Buffer
{
Size = 1000
}
}
ProcessLog
{
ModuleName = LOG
Module
{
}
}
LogMessageTable
{
MessageFilePath= ./etc
MessageFileSuffix= .msg
}
EventHandler
{
ModuleName = EVT
Module
{
}
}
DataPool
{
Login
{
ModuleName = DBC
Module
{
UserName = TEST
PassWord = password
DatabaseName = TE01
AccessLib = oci231
Connections = 5
}
}
}
TransactionIdController
{
Source = Database
Generator
{
DataConnection = integrate.DataPool.Login
}
}
Pipelines
{
}
}
Semaphore File Entries
Table 85-2 lists the Controller Semaphore file entries.
Table 85-2 Controller Semaphore File Entries
Entry | Description |
---|---|
Active |
Starts and stops the Pipeline Manager framework. |
LogTimeStatistic |
Specifies whether to write time statistics into the process log file. |
QueueRequestTimeout |
Specifies the interval for logging buffer sizes, in seconds. A value of 0 turns off logging. |
Events
Table 85-3 lists the Controller Events.
Table 85-3 Controller Events
Event | Trigger |
---|---|
EVT_INTEGRATE_START |
Pipeline Manager starts processing. |
EVT_INTEGRATE_STOP |
Pipeline Manager terminates. No more files are processed. |
Database Connect (DBC)
Connects the Pipeline Manager framework to the Pipeline Manager database.
Registry Entries
Table 85-4 lists the Database Connect registry entries.
Table 85-4 Database Connect Registry Entries
Entry | Value | Description | Mandatory? |
---|---|---|---|
AccessLib |
oci10g72 oci231 |
Specifies the name of the database access library, without the lib prefix and .so suffix.
|
Yes |
Connections |
Integer |
Specifies the number of database connections that a database module holds open in a connection pool. The default is 1. |
No |
DatabaseName |
String |
Specifies the database name. |
Yes |
PassWord |
String |
Specifies the encrypted database password in hexadecimal format. |
Yes |
ServerName |
String |
Specifies the server name. The default is ". |
No |
UserName |
String |
Specifies the database user name. |
Yes |
ConvertToUpperCase |
True False |
Specifies whether to convert the user name used by the password decryption to uppercase. The default is True. |
No |
Sample Registry for Oracle Databases
ifw { DataPool { ... #--------------------------------------------------------- # Database Connection Pipeline #--------------------------------------------------------- Login { ModuleName = DBC Module { UserName = USER PassWord = 574B93D1CBF21D1161611E0A07 DatabaseName = ORA_DB AccessLib = oci231 Connections = 5 } } ... } }
Semaphore Entries
Table 85-5 lists the Database Connect Semaphore entry.
Table 85-5 Database Connect Semaphore Entry
Parameter | Description | Mandatory |
---|---|---|
Reconnect |
Closes all open database connections and reconnects to the database. |
No |
EDR Factory
Use the EDR Factory to generate and allocate memory to EDR containers. The EDR Factory uses a container description file to generate each container.
Registry Entries
Table 85-6 lists the EDR Factory registry entries.
Table 85-6 EDR Factory Registry Entries
Entry | Value | Description | Mandatory? |
---|---|---|---|
DataConnection |
String |
Specifies the registry name of the database connection module (DBC). When you use this entry, the EDR Factory connects to the IFW_ALIAS_MAP database table to retrieve alias names. Note: Use this field when you use aliases to describe EDR container fields. |
No |
Description |
String |
Specifies the path to the container description file. |
Yes |
EdrVersionDataConnection |
String |
Specifies the registry name of the database connection module (DBC). When you use this entry, the EDR Factory connects to the EDR_FIELD_MAPPING_T database table to retrieve the EDR field mapping. |
No |
UsageStatistic |
String |
Specifies the name of the usage statistic file. This file lists all modules that are using EDR container fields together with the fields that are accessed by each module. |
No |
Event Handler
Use the Event Handler to start external programs when triggered by internal Pipeline Manager events.
Registry Entries
Table 85-7 lists the Event Handler registry entries.
Table 85-7 Event Handler Registry Entries
Entry | Description | Mandatory? |
---|---|---|
Buffer |
Subgroup that specifies the size and type of the Event Handler's internal queue buffer. The registry entries in this subgroup depend on the buffer type. |
Yes |
Events |
Subgroup that contains trigger entries. |
Yes |
Event.EventName |
Specifies the event that triggers an external program. Add an entry for each event that triggers an external program. |
Yes |
Event.ModuleSendingEvent |
Specifies the registry name of the module that sends the event to the Event Handler. Add an entry for each module that can trigger an external program. |
Yes |
TimeToWait |
Specifies the time in seconds that the Event Handler waits for the external program to terminate. By default, no TimeToWait value is assumed. |
No |
Instances
Use the Instances module to configure multiple instances of sequencers, output streams, or system brands for multiple roaming partners. This module is optional.
Note:
This module does not configure multiple instances of pipelines. To do that, use the ifw.Pipelines.Instances subsection.
Registry Entries
Table 85-8 lists the Instances registry entries.
Table 85-8 Instances Registry Entries
Entry | Description | Mandatory? |
---|---|---|
InstantiationName |
Specifies the descriptive name of the instantiation, for example, TAPOutputStreamsInstantiation. |
Yes, if the Instances module is used. |
InstantiationName.BlockName |
Specifies the template section or entry in the roaming registry file that is used to instantiate multiple registry sections or entries. The template section or entry contains variables for the section name, entry name, or the value of the entry that must be changed in each new instance created. |
Yes |
InstantiationName.DataFile |
Specifies the path to the data file generated by the RoamingConfigGen64 utility. See "RoamingConfigGen64" for more information. |
Yes |
InstantiationName.InstanceSpecificEntries |
Subgroup that specifies the entries that must be changed in each new instance created, such as the section name, entry name, the value of an entry, the change mode, and so on. |
Yes |
InstantiationName.InstanceSpecificEntries.InstanceChangeName |
Specifies the descriptive name of the change required in each instance; for example, ModifyBlockName. |
Yes |
InstantiationName.InstanceSpecificEntries.InstanceChangeName.Instance |
Specifies whether to change the section name, entry name, or the value of the entry in each new instance created. Valid values are:
|
Yes |
InstantiationName.InstanceSpecificEntries.InstanceChangeName.UseColumn |
Specifies the column in the data file generated by the RoamingConfigGen64 utility. This column is used to change the section name, entry name, or the value of the entry in each instance according to the change mode. For example, the TAPOUT_SEQUENCER column is used to change the section name in each instance of the SequencerPool.SEQ_GEN_TAPOUT_XXX subsection. See "Sample Registry for Multiple Instances of Sequencers". |
Yes |
InstantiationName.InstanceSpecificEntries.InstanceChangeName.Mode |
Specifies the mode of changing the section name, entry name, or the value of the entry in each instance using the column values in the data file generated by the RoamingConfigGen64 utility. Valid values are:
The default mode is REPLACE. |
No |
Sample Registry for Multiple Instances of Sequencers
Instances { SEQ_GEN_TAPOUT { BlockName = SequencerPool.SEQ_GEN_TAPOUT_XXX DataFile = ./RoamingPartnerConf.dat InstanceSpecificEntries { ModifyBlockName { Instance = [BlockName] UseColumn = TAPOUT_SEQUENCER } } } } SequencerPool { SEQ_GEN_TAPOUT_XXX { Source = Database Controller { SequencerType = Generation ReuseGap = True SequenceLength = 5 DatabaseConnection = ifw.DataPool.Login } }
Sample Registry for Multiple Instances of System Brands
Instances { EventSplitting { BlockName = Pipelines.TAPOutCollectPipeline.Functions.Processing.FunctionPool.RoamPartner_EventSplitting.Module.SystemBrands.XXX DataFile = ./RoamingPartnerConf.dat InstanceSpecificEntries { ModifyBlockName { Instance = [BlockName] UseColumn = VPLMN } ModifyBlockValue { Instance = [BlockValue] UseColumn = TAPOUT_STREAM } } } RoamPartner_EventSplitting { ModuleName = FCT_EnhancedSplitting Module { Active = True DataConnection = ifw.DataPool.Login DefaultOutput = SuspenseCreateOutput SystemBrands { XXX = TAPOutput_XXX SUSP = SuspenseCreateOutput } } }
Sample Registry for Multiple Instances of Output Streams
Instances { TAPOutputStreaminstantiation { BlockName = Pipelines.TAPOutCollectPipeline.Output.OutputCollection.TAPOutput_XXX DataFile = ./RoamingPartnerConf.dat InstanceSpecificEntries { ModifyBlockName { Instance = [BlockName] UseColumn = TAPOUT_STREAM } ModifyOutputStreamSequencer { Instance = Module.Sequencer UseColumn = TAPOUT_SEQUENCER } ModifyRecipient { Instance = Module.Recipient UseColumn = VPLMN } ModifyCountryCode { Instance = Module.CountryCode UseColumn = COUNTRYCODE } ModifyDecimalPlaces { Instance = Module.DecimalPlaces UseColumn = DECIMALPLACES } ModifyOutputPath { Instance = Module.OutputStream.Module.OutputPath UseColumn = TAPOUT_PATH } ModifyOutputPrefix { Instance = Module.OutputStream.Module.OutputPrefix UseColumn = TAPOUT_PREFIX } ModifyTempPrefix { Instance = Module.OutputStream.Module.TempPrefix UseColumn = TMP_PREFIX } ModifyTempDataPath { Instance = Module.OutputStream.Module.TempDataPath UseColumn = TAPOUT_PATH } ModifyTempDataPrefix { Instance = Module.OutputStream.Module.TempDataPrefix UseColumn = TMP_DATA_PREFIX } } } TAPOutput_XXX { ModuleName = OUT_GenericStream ProcessType = TAPOUTCOLLECT_PIPELINE EventType = /event/delayed/session/telco/gsm Module { Grammar = ./formatDesc/Formats/TAP3-NG/TAP_0312_OutGrammar.dsc DeleteEmptyStream = False Sequencer = SEQ_GEN_TAPOUT_XXX Sender = PORTL Recipient = XXX CountryCode = XXX DecimalPlaces = XXX OutputStream { ModuleName = EXT_OutFileManager Module { OutputPath = ./data/outcollect/tapout/XXX OutputPrefix = CDPORTLXXX TempPrefix = tmptest_XXX_ TempDataPath = ./data/outcollect/tapout/XXX TempDataPrefix = test.XXX.tmp. TempDataSuffix = .data UseInputStreamName = [0,0] SequencerPrefix = "" AppendSequenceNumber = True } } } NRTRDEOutput_XXX { ModuleName = XXX ProcessType = TAPOUTCOLLECT_PIPELINE EventType = /event/delayed/session/telco/gsm Module { Grammar = ./formatDesc/Formats/TAP3/NRTRDE2_v01_OutGrammar.dsc DeleteEmptyStream = False Sequencer = SEQ_GEN_NRTRDEOUT_XXX Sender = EUR01 Recipient = XXX OutputStream { ModuleName = EXT_OutFileManager Module { OutputPath = ./data/outcollect/nrtrdeout/XXX OutputPrefix = NREUR01XXX TempPrefix = tmptest_XXX_ TempDataPath = ./data/outcollect/nrtrdeout/XXX TempDataPrefix = test.XXX.tmp. TempDataSuffix = .data UseInputStreamName = [0,0] SequencerPrefix = "" AppendSequenceNumber = True } } } } NRTRDEOutputStreams { BlockName=Pipelines.TAPOutCollectPipeline.Output.OutputCollection.NRTRDEOutput_XXX DataFile = ./conf/RoamingPartnerConf.dat InstanceSpecificEntries { ModifyBlockName { Instance = [BlockName] UseColumn = NRTRDEOUT_STREAM } ModifyModuleName { Instance = ModuleName UseColumn = NRTDEOUTPUTSTREAMMODULE } ModifyOutputStreamSequencer { Instance = Module.Sequencer UseColumn = NRTRDEOUT_SEQUENCER } ModifyRecipient { Instance = Module.Recipient UseColumn = VPLMN } ModifyOutputPath { Instance = Module.OutputStream.Module.OutputPath UseColumn = NRTRDEOUT_PATH } ModifyOutputPrefix { Instance = Module.OutputStream.Module.OutputPrefix UseColumn = NRTRDEOUT_PREFIX } ModifyTempPrefix { Instance = Module.OutputStream.Module.TempPrefix UseColumn = TMP_PREFIX } ModifyTempDataPath { Instance = Module.OutputStream.Module.TempDataPath UseColumn = NRTRDEOUT_PATH } ModifyTempDataPrefix { Instance = Module.OutputStream.Module.TempDataPrefix UseColumn = TMP_DATA_PREFIX } } }
LOG
Use the LOG module to manage and create your system log files:
Dependencies
The LOG module needs access to the log message table generated by the Controller in order to create the system log files. For information, see "Controller".
Registry Entries
Table 85-9 lists the LOG registry entries.
Table 85-9 LOG Registry Entries
Entry | Description | Mandatory? |
---|---|---|
FileName |
Specifies the name of your system log file. If empty, the name will be built by the date. |
No |
FilePath |
Specifies the path to your system log file. |
No |
FilePrefix |
Specifies the log file prefix. |
No |
FileSuffix |
Specifies the log file suffix. |
No |
LogLevel |
Specifies the minimum severity limit. All messages greater or equal to the limit are logged. For example, enter major to log only major and critical error messages. Values are:
The default is normal, which means that all messages are logged. Using the debug setting returns additional debugging data. |
No |
MessageGroup |
Specifies the message group name. |
No |
ProcessName |
Specifies the process name. |
No |
ShowOriginator |
Specifies whether to write the name of the module that emitted the message to the log file. True specifies to log the module name. This helps Oracle Technical support troubleshoot any problems. False specifies to not log the module name. The default is False. |
No |
SuppressErrors |
Specifies any error messages to exclude from log files. For example, enter ERR_INSERTING_CLI to prevent those error messages from being logged. |
No |
WriteMessageKey |
Specifies whether the module logs error codes. For example: ERR_FILE_NOT_FOUND. True specifies to write both the error code and error message to the log file. This helps technical support troubleshoot any problems. False specifies to write only the error message to the log file. The default is False. |
No |
Sample Registry Entry for the Process Log
ProcessLog { ModuleName = LOG Module { ITO { FilePath = /ifw/log/process FileName = process FilePrefix = log_ FileSuffix = .log LogLevel = normal ProcessName = ifw SuppressErrors { INF_IGNORE_CLI ERR_INSERTING_CLI } } } }
Sample Registry Entry for the Pipeline Log
PipelineLog { ModuleName = LOG Module { ITO { FilePath = /ifw/log/pipeline FileName = pipe2 FileSuffix = .log LogLevel = minor SuppressErrors { INF_IGNORE_CLI ERR_INSERTING_CLI } } } }
Sample Registry Entry for the Stream Log
OutputLog { ModuleName = LOG Module { ITO { FilePath = /ifw/log/stream FilePrefix = stream_ FileSuffix = .log LogLevel = normal SuppressErrors { ERR_SPEC_VERSION_INVALID ERR_RELEASE_VERSION_INVALID } } } }
Semaphores
Table 85-10 lists the LOG Semaphores.
Table 85-10 LOG Semaphores
Entry | Description |
---|---|
FileName |
Specifies the name of the log file. When you change the file name, the current log file is closed and renamed to file name plus timestamp. For example, the process.log file would be renamed process_20030916130000.log. |
LogLevel |
Specifies the minimum severity limit. The module logs all messages greater or equal to the limit. For example, enter minor to log only minor, major, and critical error messages. Values are:
|
ShowOriginator |
Specifies whether to write the name of the module that emitted the message to the log file. True specifies to log the module name. This helps Oracle Technical Support troubleshoot any problems. False specifies to not log the module name. |
SuppressErrors |
Specifies any error messages to exclude from the log file. For example, enter ERR_GETTING_DATADESCR to prevent those error messages from being logged. |
WriteMessageKey |
Specifies whether the module logs error codes. For example: ERR_FILE_NOT_FOUND. True specifies to write both the error code and error message to the log file. This helps Oracle Technical Support troubleshoot any problems. False specifies to write only the error message to the log file. |
Input Controller
Use the Input Controller to manage the input streams for its associated pipeline.
The Input Controller performs the following functions:
-
Combines multiple CDR files into one transaction when configured to do so.
-
Notifies the Transaction Manager (TAM) when a transaction begins.
You configure the Input Controller by editing the Input section of the registry file. For more information, see "Configuring the Input Section in the Registry".
Registry Entries
Table 85-11 lists the Input Controller registry entries.
Table 85-11 Input Controller Registry Entries
Entry | Description | Mandatory |
---|---|---|
InputModule |
Subgroup for the Input module. See "INP_GenericStream". |
Yes |
UnitsPerTransaction |
Specifies the number of CDR input files that make up a transaction. By default, each CDR file forms its own transaction. This parameter only affects processing within the pipeline, and the number of output files match the number of CDR input files. The default is 1. |
No |
NET_EM
The NET_EM module hosts an External Module (EM). This allows the NET_EM module to use the BRM API opcodes to transfer data between real-time rating opcodes and the real-time rerating, discounting, and zoning pipelines.
Registry Entries
Table 85-12 lists the NET_EM registry entries.
Table 85-12 NET_EM Registry Entries
Entry | Description | Mandatory |
---|---|---|
FieldName |
Use this entry for real-time rerating. Specifies the field in the event flist to be used to route the event. By using the "." notation, you can specify a field at any level in the flist. The field identified by FieldName must be of type POID or String. |
No |
FieldValue |
Use this entry for real-time rerating. Specifies the value of the field identified by FieldName. |
No |
NumberOfRTPipelines |
Number of real-time pipelines. Note: This number must match the NumberOfInstances entry. |
Yes |
OpcodeName |
Specifies the opcode sending the event to NET_EM. For real-time discounting, use: PCM_OP_RATE_DISCOUNT_EVENT For real-time zoning, use: PCM_OP_RATE_GET_ZONEMAP_INFO For real-time rerating, use: PCM_OP_RATE_PIPELINE_EVENT |
Yes |
PipelineName |
The pipeline to route the input to. Each real-time pipeline must have a unique name. |
Yes |
Port |
Specifies the port number of the host machine running the NET_EM module. |
Yes |
Threads |
Set this entry to the number of pipelines being managed by the NET_EM module. For example, if you have two pipelines, set this entry to 2. |
Yes |
UnixSockFile |
Specifies the UNIX Sock file when the CM and the Pipeline Manager instance are running on the same machine. |
Yes |
Output Collection
Use the Output Collection module to handle output streams. See "About Configuring the Output Section in the Registry" and "Configuring EDR Output Processing".
Registry Entries
The only registry entries for the Output Collection configuration are the sections for each output stream, for example, OUT_DevNull, OUT_Reject, and OUT_GenericStream.
See the following:
Sample Registry
#------------------------------------------------ # Output Section #------------------------------------------------ Output { WriteDefaultEdr = False DeleteEmptyFile = True MaxErrorRates { } OutputCollection { #------------------------------------------- # The DevNull stream #------------------------------------------- DevNull ...{
Event Messages
Table 85-13 lists the Output Collection event messages.
Table 85-13 Output Collection Event Messages
Message | Description | Send/Receive |
---|---|---|
CMD_WRITE_LOG |
An entry to the pipeline log has to be created. |
Receive |
REQ_STREAM_NUMBER |
Determination of a specific stream number chosen by the first argument Name. |
Receive from Output Collection. See "Output Collection". |
Output Controller
Use the Output Controller to manage the output streams for its associated pipeline.
For more information, see "About Configuring the Output Section in the Registry".
Registry Entries
Table 85-14 lists the Output Controller registry entries.
Table 85-14 Output Controller Registry Entries
Entry | Description | Mandatory |
---|---|---|
MaxErrorRates |
Subgroup for the maximum error rate entries. This section should list all error codes to monitor and their threshold values. For more information, see "Specifying the Maximum Errors Allowed in an Input File". |
Yes |
MultiThreading |
Subgroup to configure multithreading in output processing. |
No |
MultiThreading.Active |
Specifies whether to enable multithreading in output processing:
|
Yes |
MultiThreading.NumberOfThreads |
Specifies the number of threads the Output Controller creates to manage the output streams for its associated pipeline. For optimum results, Oracle suggests that you set the number of threads to twice the average number of streams associated with an input EDR. |
Yes |
MultiThreading.BatchSize |
Specifies the size of the batch in terms of number of EDRs:
Oracle suggests that BatchSize be greater than or equal to BlockSize if BlockTransfer is set to True; otherwise, BatchSize should be equal to the size of the output buffer. The BatchSize value should be directly proportional to NumberOfThreads and inversely proportional to the EDR enrichment rate. |
Yes |
OutputCollection |
Subgroup for the Output Collection module entries. See: |
Yes |
OutputLog |
Subgroup for the stream log entries. |
Yes |
SequenceGeneration |
Specifies whether the pipeline generates one output file per CDR input file or one output file for an entire transaction.
The default is Unit. |
No |
Sequencer |
Specifies the name of the Sequencer for performing sequence checking. This Sequencer must be defined in the SequencerPool section of the registry file. |
No |
Statistic |
Subgroup to control the statistics related to Pipeline Manager's EDR processing rate. You can view these statistics in the output logs and HTTP browser. See "About Configuring Statistics Information in the Output Section". |
No |
Sample Registry Entry for the Multithreaded Mode
Output { MaxErrorRates { ERR_CUST_NOT_FOUND = 10 } MultiThreading { Active = True NumberOfThreads = 5 BatchSize = 500 } Statistic { EdrCountCriteria = ALL }... OutputCollection ... OutputLog { ... } SequenceGeneration = Unit Sequencer = SequenceCheck1 ... }
ParallelLoadManager
Use the ParallelLoadManager module to load your pipelines, data modules, and function modules in parallel.
Registry Entries
Table 85-15 lists the ParallelLoadManager registry entries.
Table 85-15 ParallelLoadManager Registry Entries
Entry | Description | Mandatory |
---|---|---|
Active |
Specifies whether to load the pipelines, data modules, and function modules in parallel.
If the entry is missing, parallel loading is disabled. |
Yes |
NumberOfThreads |
Specifies the number of threads Pipeline Manager uses to load your pipelines, data modules, and function modules. |
Yes |
Pipeline Controller
Use the Pipeline Controller to control its associated pipeline.
Registry Entries
Table 85-16 lists the Pipeline Controller registry entries.
Table 85-16 Pipeline Controller Registry Entries
Entry | Description | Mandatory |
---|---|---|
Active |
Activates or deactivates processing in the pipeline.
|
Yes |
CountryCode |
Specifies the valid country code for this pipeline. The default is 49 for Germany. |
No |
DataDescription |
Speicifes the stream format description and mapping files See: |
Yes |
EdrFactory |
Subgroup for the EDR Factory. |
Yes |
Functions |
Subgroup for the function pool entries. |
Yes |
Input |
Subgroup for the Input Controller. See: |
Yes |
Instances |
Specifies multiple instances of a specific pipeline. |
No |
InternationalAccessCode |
Specifies the international dial prefix. The default is 00 for Germany. Note: You can list multiple access codes by using a comma as a delimiter. For example: 00,001,002. |
No |
InternationalAccessCodeSign |
Specifies the international access code sign. The default is +. |
No |
InputBuffer |
Subgroup that contains the entries for the buffer between the input module and function modules. |
Yes |
MobileCountryCode |
Specifies the valid mobile country code for this pipeline. The default is 262 for Germany. |
No |
MultiThreaded |
Specifies whether the pipeline uses multithreaded or single-threaded processing. The default is True.
|
No |
NationalAccessCode |
Specifies the dial prefix for national calls. The default is 0 for Germany. |
No |
NetworkDestinationCode |
Specifies the network destination code, which identifies the home network for roaming calls. The default is 172 for D2. |
No |
NoOutputUsed |
Specifies whether to load the Output module. Set this entry to True only when you are using single-threaded processing and the Input and Output modules are combined into one module. The default is False.
|
No |
Output |
Subgroup that contains Output Controller entries. See: |
Yes |
OutputBuffer |
Subgroup that contains the entries for the buffer between the function modules and the output module. |
Yes |
Pipeline_Name |
Name of the pipeline. |
Yes |
PipelineLog |
Subgroup that contains pipeline log entries. |
Yes |
RejectStream |
Specifies the name of the rejection stream. This stream must be defined in the output module. See: |
Yes |
TransactionManager |
Specifies the subsection for the Transaction Manager. |
N/A |
Sample Registry
Pipelines { Pipeline01 { Active = TRUE MultiThreaded = TRUE CountryCode = 49 MobileCountryCode = 262 NationalAccessCode = 0 InternationalAccessCode = 00 InternationalAccessCodeSign = + NetworkDestinationCode = 171 RejectStream = XXX PipelineLog { ModuleName = LOG Module { } } InputBuffer { Size = 1000 } OutputBuffer { Size = 1000 } Input { InputModule { ModuleName = XXX ModuleStart = XXX Module { ... } } } // Input Functions { FCI { FunctionPool { Function01 { ... } Function02 { ... } } } } // Functions Output { ... Outputcollection { Output1 { ModuleName = XXX ModuleStart = XXX Module { ... } } RejectOutput { ModuleName = XXX ModuleStart = XXX Module { ... } } Output2 { ModuleName = XXX ModuleStart = XXX Module { ... } } DevNull { ModuleName = XXX ModuleStart = XXX Module { ... } } ... } OutputLog { ... } Sequencer { ... } } #Output } #Pipeline01 } #Pipelines
Sample Registry for Multiple Instances of a Pipeline
This sample shows how to configure multiple instances of a pipeline.
ifw { ... Pipelines { Instances { RealtimeReratingPipelineGPRS { NumberOfInstances = 3 InstanceSpecificRegistries { Entry1 = TransactionManager.BinaryLogFileName Entry2 = PipelineLog.Module.ITO.FileName Entry3 = OutputLog.FileName Entry4 = Functions.Standard.FunctionPool.EdrDump_Initial.Module.FileName Entry4 = Functions.Standard.FunctionPool.EdrDump_PostDiscounting.Module.FileName Entry5 = Functions.Standard.FunctionPool.EdrDump_PreDiscounting.Module.FileName Entry6 = Functions.Standard.FunctionPool.EdrDump_PostRating.Module.FileName Entry7 = Functions.Standard.FunctionPool.EdrDump_PreRating.Module.FileName } ...
Semaphore Entries
Table 85-17 lists the Pipeline Controller Semaphore entries.
Table 85-17 Pipeline Controller Semaphore Entries
Entry | Description |
---|---|
Active |
Activates or deactivates processing in the pipeline. |
Event Messages
Table 85-18 lists the Pipeline Controller event messages.
Table 85-18 Pipeline Controller Event Messages
Message | Trigger | Parameter |
---|---|---|
EVT_PIPELINE_START |
The pipeline was started. |
Pipeline name from the registry. |
EVT_PIPELINE_STOP |
The pipeline was stopped. |
Pipeline name from the registry. |
Sequencer
Use the Sequencer to prevent Pipeline Manager from processing the same CDR file twice and to add tracking information to output streams.
Dependencies
When you configure the Sequencer to store state and log data in database tables, this module requires a connection to the Pipeline Manager database.
To assign a Sequencer to a pipeline, you must also configure the Output section of the registry file:
-
To assign a sequence checker to a pipeline, use the Sequencer registry entry in the Output Controller module. For information, see "Output Controller".
-
To assign a sequence generator to a pipeline, use the Sequencer registry entry in the output module. For information, see "OUT_GenericStream".
Registry Entries
Table 85-19 lists the Sequencer registry entries.
Table 85-19 Sequencer Registry Entries
Entry | Description | Mandatory |
---|---|---|
SequencerInstance |
Specifies the name of the Sequencer instance. |
Yes |
Source |
Specifies whether Sequencer state and log data are stored in files or in database tables. Values are:
|
Yes |
Controller |
Subgroup that contains Controller entries |
Yes |
Controller.SequencerType |
Specifies whether the Sequencer performs sequence checking or sequence generation:
|
Yes |
Controller.DatabaseConnection |
Specifies a connection to the Pipeline Manager database. |
Yes, only if Source = Database. |
Controller.ReuseGap |
Specifies whether the Sequencer assigns skipped sequence numbers to output files.
The default is False. |
No |
Controller.SequenceLength |
Specifies the length of the incoming CDR file's sequence number. The default is 6. |
No |
Controller.FileName |
Specifies the name of the Sequencer state file. This file stores state information for one Sequencer instance. Important: You must create one state file for each Sequencer instance. Otherwise, the Sequencer fails. |
Yes, only if Source = File |
Controller.FilePath |
Specifies the path to the Sequencer state file. |
Yes, only if Source = File. |
Controller.Log |
Subgroup that contains Sequencer log file entries. |
Yes |
Controller.Log.FileName |
Specifies the name of the Sequencer log file. Important: You must create one Sequencer log file for each Sequencer instance. Otherwise, the Sequencer fails. |
Yes, only if Source = File |
Controller.Log.FilePath |
Specifies the path to the Sequencer log file. |
Yes, only if Source = File |
Controller.UseGapAtStartup |
Specifies whether to add a gap for the skipped sequence numbers starting from 0. This entry is required only when the SequencerType field is Check and the ReuseGap field is True. You can use this entry even if you have set the Seq Original Number field to 0.
|
No |
Sample Registry for File Storage
SequencerPool
{
SequencerInstance
{
Source = File
Controller
{
SequencerType = Check
ReuseGap = True
SequenceLength = 7
FileName = sequence.dat
FilePath = /opt/portal/ifw/sequencer
Log
{
FileName = sequence.log
FilePath = /opt/portal/ifw/logs
}
}
}
}
Sample Registry Entry for Database Storage
SequencerPool
{
SequencerInstance
{
Source = Database
Controller
{
SequencerType = Generation
DatabaseConnection = DatabaseModule
ReuseGap = False
SequenceLength = 10
}
}
}
Transaction Manager
Use the Transaction Manager to coordinate the state of all transactional modules and components in one pipeline.
Dependencies
Requires a reference to the Transaction ID Controller. For information, see "Transaction ID Controller".
Registry Entries
Table 85-20 lists the Transaction Manager registry entries.
Table 85-20 Transaction Manager Registry Entries
Entry | Description | Mandatory? |
---|---|---|
BinaryLogFileName |
Specifies the path and file name of the binary log file, which is used to persist and restore open transactions. Important: If you use multiple pipelines, you cannot use the same file for different pipelines. |
Yes |
RedoEnabled |
Specifies whether the redo mechanism is enabled. True enables the redo mechanism. False disables the redo mechanism. |
Yes |
SingleTransaction |
Specifies whether only one pipeline transaction is allowed at a time. True specifies that only one pipeline transaction can be active at one time. The TAM blocks any new transactions from starting while a transaction is in progress. False specifies that multiple pipeline transactions can be active at one time. |
Yes |
WriteToLogEnabled |
Specifies whether the Transaction Manager writes status information to the pipeline log file. True enables writing to the pipeline log file. False disables writing to the pipeline log file. |
No |
Transaction ID Database Generator
Use the Transaction ID Database Generator to store transaction IDs in database tables.
Registry Entries
Table 85-21 lists the Transaction ID Database Generator registry entries.
Table 85-21 Transaction ID Database Generator Registry Entry
Entry | Description | Mandatory? |
---|---|---|
DataConnection |
Specifies a connection to the Pipeline Manager database. |
Yes |
Sample Registry
TransactionIdController { Source = Database Generator { DataConnection = ifw.DataPool.Login } }
Transaction ID File Generator
Use the Transaction ID File Generator to store transaction IDs in a file.
Registry Entries
Table 85-22 lists the Transaction ID File Generator registry entries.
Table 85-22 Transaction ID File Generator Registry Entries
Entry | Description | Mandatory? |
---|---|---|
FileName |
Specifies the path and file name of the Transaction ID Controller state file. |
Yes |
Increment |
Specifies the number of transaction IDs that are cached. |
Yes |
Transaction ID Controller
Use the Transaction ID Controller to generate transaction IDs for all pipelines.
Registry Entries
Table 85-23 lists the Transaction ID Controller registry entries.
Table 85-23 Transaction ID Controller Registry Entries
Entry | Description | Mandatory? |
---|---|---|
Generator |
Subgroup for the generator entries. See: |
Yes |
Source |
Specifies whether the Transaction ID Controller stores transaction IDs in files or database tables. Values are:
|
Yes |
Sample Registry for File Storage
TransactionIdController { Source = File Generator { FileName = /data/system/info/transIdInfo.dat Increment = 10 } }