Use the .NETInput node to retrieve data from many disparate sources, such as MSMQ, files, or databases, by accessing the data through .NET code.
This topic contains the following sections:
The .NETInput node obtains data from a source that is specified by its creator to start a message flow. The output messages that you create in the .NETInput node are formed through interpreting the information that is obtained from the data source, such as .NET or COM applications.
The .NETInput node uses any Common Language Runtime (CLR) compliant language to create the message, such as C#, Visual Basic (VB), F#, and C++/CLI.
The message flow developer has control of the .NET code, which makes the .NETInput node flexible as to where it can retrieve data from. For example, you can write .NET code that reads messages from an MSMQ source, WebSphere® MQ queue, the file system, or from a database. When you are writing code for a .NETInput node, two templates are provided withinMicrosoft Visual Studio.
The .NETInput node is contained in the .NET drawer of the palette, and is represented in the IBM® Integration Toolkit by the following icon:
The .NETInput node runs only on Windows brokers. An error occurs if you attempt to deploy a message flow that contains a .NETInput node to a broker that is running on a non-Windows system. Ensure that the broker is running on Windows before you deploy your message flow.
When you are writing code for a .NETInput node, two templates are provided within Microsoft Visual Studio. These two templates are for two different interaction styles:
You must associate the .NETInput node with a .NET assembly that contains the code that is controlling the interaction of the .NETInput node with the source of data or messages, which are propagated through the message flow.
For more information, see Writing code for a .NETInput node.
You write code to customize the behavior of the .NETInput node by using the template code skeletons that are provided for Microsoft Visual Studio. The .NETInput node must be configured with a .NET assembly that contains the code of the node. The code consists of a class that is derived from one of the provided abstract base classes (NBPollingConnector or NBEventConnector) that are in IBM.Broker.Plugin.dll assembly.
Only one instance of a given .NETInput node is created, regardless of the number of threads that are running against the message flow, either as a result of additional instances, or multiple input nodes. Therefore, all of your user .NET code must be thread-safe and reentrant. For more information about making a node thread-safe and ensuring that the functions implemented and started by user-defined extensions are reentrant, see User-defined extensions execution model and Threading considerations for user-defined extensions.
Code that is written for the .NET Input node does not participate in Integration Bus transactions.
For more information about creating .NET code for a .NETCompute node, you can access the .NET API documentation included with your installation of IBM Integration Bus from the Start Menu location in Windows.
When you put an instance of the .NETInput node into a message flow, you must configure it; see Configuring a message flow node. To configure the node, you can drag an assembly file from a file explorer to the node, or click the Browse button. The properties of the node are displayed in the Properties view.
All mandatory properties for which you must enter a value (those that do not have a default value defined) are marked with an asterisk.
You can reproduce parameters and attributes that you customized for a .NETInput node by creating a Cloned node from it. The Cloned node has no special properties of its own, and cannot be created from the palette drawer. You can create it only from an existing, configured .NETInput node. You must have administrator privileges to be able to create a Cloned node.
To create a Cloned node, you must select your .NETInput node, right-click, and then select Create Cloned Node...
Your Cloned node is saved in the .NET drawer of the palette with the name that you gave it, and is represented in the IBM Integration Toolkit by your chosen node icon.
When you create an instance of a Cloned node, it is configured with the properties and values that you specified for the .NETInput node it was cloned from.
If you want to modify properties or values of a Cloned node, you can configure them. See Configuring a message flow node.
You can configure an instance of a Cloned node when dragged into a graphical data map. To configure the node, you can drag an assembly file from a file explorer to the node. The properties of the node are displayed in the Properties view.
All mandatory properties for which you must enter a value (those that do not have a default value defined) are marked with an asterisk.
Set the validation properties to define how the messages that are produced by the .NETInput node are validated.
For more information, see Validating messages and Validation properties.
The .NETInput node terminals are described in the following table.
Terminal | Description |
---|---|
Failure | The output terminal to which a message is routed if an error occurs before a message is propagated to the Out terminal. Even if the Validation property is set, messages that are propagated to this terminal are not validated. |
Out | If no errors occur within the input node, a message received from an external resource is always sent to the Out terminal first. |
Catch | The output terminal to which the message is routed if an exception is thrown downstream and caught by this node. Exceptions are caught only if this terminal is attached. |
The following tables describe the node properties that you can set on a specified tab. The column headed M indicates whether the property is mandatory (marked in the toolkit with an asterisk if you must enter a value when no default is defined). The column headed C indicates whether the property is configurable (you can change the value when you add the message flow to the BAR file to deploy it).
Property | M | C | Default | Description |
---|---|---|---|---|
Node name | No | No | The node type | The name of the node. |
Short description | No | No | A brief description of the node. | |
Long description | No | No | Text that describes the purpose of the node in the message flow. |
Property | M | C | Default | Description | mqsiapplybaroverride command property |
---|---|---|---|---|---|
Assembly name | Yes | Yes | The assembly that implements the node. Use the Browse option to select an assembly, alternatively you can drop an assembly .dll file onto the node to automatically complete this property. | assemblyName | |
Class name | No | Yes | The name of the class that implements the node. A value for this property is required only if two or more nodes are exposed from the same assembly, or to explicitly name a subclass as the implementing node. | connectorClassName |
Property | M | C | Default | Description |
---|---|---|---|---|
Message domain | No | No | BLOB | The domain that is used to parse the message. If the field is blank, then the default is BLOB. |
Message model | No | No | Cleared | The name or location of the message model schema file in which the message is defined. This list is populated with all available message model schema files for the Message domain that you selected. |
Message | No | No | Cleared | The name or location of the message root within your message model schema file. This list is populated with all available messages that are defined in the Message model that you selected. |
Physical format | No | No | Cleared | The name of the physical format of the message. If you are using the MRM or IDoc parser, select the physical format of the incoming message from the list. This list includes all the physical formats that you defined for the selected message model. If you set the Message domain property to DataObject, you can set this property to XML or SAP ALE IDoc. Set this property to SAP ALE IDoc when you want to parse a bit stream from an external source and generate a message tree. |
Message coded character set ID | No | No | Broker System Default | The ID of the coded character set used to interpret bytes of the file that is being read. mqsiapplybaroverride command property is messageCodedCharSetIdProperty. |
Message encoding | No | No | Broker System Determined | The encoding scheme for numbers and large characters that are used to interpret bytes of the file that is being read. Valid values are Broker System Determined or a numeric encoding value. For more information about encoding, see Data conversion. mqsiapplybaroverride command property is messageEncodingProperty. |
Property | M | C | Default | Description |
---|---|---|---|---|
Parse timing | Yes | No | On Demand | This property controls when an input message
is parsed. Valid values are On
Demand, Immediate,
and Complete. Parse timing is, by default, set to On Demand, which causes parsing of the message to be delayed. To cause the message to be parsed immediately, see Parsing on demand. |
Build tree using XML schema data types | Yes | No | Cleared | This property controls whether the XMLNSC parser creates syntax elements in the message tree with data types taken from the XML schema. You can select this property only if you set the Validate property on the Validation tab to Content or Content and Value. |
Use XMLNSC compact parser for XMLNS domain | Yes | No | Cleared | This property controls whether the XMLNSC compact parser is used for messages in the XMLNS domain. If you set this property, the message data is displayed under XMLNSC in nodes that are connected to the output terminal when the input MQRFH2 header or the Input Message Parsing property Message domain is XMLNS. For more information, see Manipulating messages in the XMLNSC domain. |
Retain mixed content | Yes | No | Cleared | This property controls whether the XMLNSC parser creates elements in the message tree when it encounters mixed text in an input message. If you select the check box, elements are created for mixed text. If you clear the check box, mixed text is ignored and no elements are created. |
Retain comments | Yes | No | Cleared | This property controls whether the XMLNSC parser creates elements in the message tree when it encounters comments in an input message. If you select the check box, elements are created for comments. If you clear the check box, comments are ignored and no elements are created. |
Retain processing instructions | Yes | No | Cleared | This property controls whether the XMLNSC parser creates elements in the message tree when it encounters processing instructions in an input message. If you select the check box, elements are created for processing instructions. If you clear the check box, processing instructions are ignored and no elements are created. |
Opaque elements | Yes | No | Blank | This property is used to specify a list of elements in the input message that are to be opaquely parsed by the XMLNSC parser. Opaque parsing is performed only if validation is not enabled (that is, if Validate is None); entries that are specified in Opaque Elements are ignored if validation is enabled. |
The Validation properties of the .NETInput node are described in the following table. Set these properties if you want the parser to validate the body of messages against the Message model. (If a message is propagated to the Failure terminal of the node, it is not validated.)
For more information, see Validating messages and Validation properties.
Property | M | C | Default | Description | mqsiapplybaroverride command property |
---|---|---|---|---|---|
Validate | Yes | Yes | None | This property controls whether validation takes place. Valid values are None, Content, Content and Value, and Inherit. | validateMaster |
Failure action | Yes | No | Exception | This property controls what happens if validation fails. You can set this property only if you set Validate to Content or Content and Value. Valid values are User Trace, Local Error Log, Exception, and Exception List. |
For a full description of the Instances properties, see Configurable message flow properties.
Property | M | C | Default | Description | mqsiapplybaroverride command property |
---|---|---|---|---|---|
Additional instances pool | No | Yes | Use Pool Associated with Message Flow | The pool from which additional
instances are obtained.
|
|
Additional instances | No | Yes | 0 | The number of additional instances that the node can start if the Additional instances pool property is set to Use Pool Associated with Node. | additionalInstances |
Property | M | C | Default | Description |
---|---|---|---|---|
Events | No | No | None | Events that you defined for the node are displayed on this tab. By default, no monitoring events are defined on any node in a message flow. |
The Microsoft Visual Studio properties of the .NETInput node are described in the following table. These properties are sent to the run time as part of deployment to the input connector.
For more information, see Creating messages by using a .NETInput node
Property | M | C | Default | Description | mqsiapplybaroverride command property |
---|---|---|---|---|---|
Visual Studio project name | No | No | The Microsoft Visual Studio project or solution that contains the code for the node. |
Property | M | C | Default | Description | mqsiapplybaroverride command property |
---|---|---|---|---|---|
AppDomain name | No | Yes | The .NET AppDomain that hosts the node. | AppDomain | |
Version | No | Yes | The Assembly Version. | AssemblyVersion | |
Culture | No | Yes | The Assembly Culture. | AssemblyCulture | |
Public key token | No | Yes | The Assembly Public Key Token. | AssemblyPublicKeyToken |
Property | M | C | Default | Description | mqsiapplybaroverride command property |
---|---|---|---|---|---|
<User provided name> | No | No | The node provides a table in which the user can Add, Edit, or Delete rows each providing a Name: Value pair. |