Using the Services for Managing Namespace Nodes
Overview
The ADK provides a set of auxiliary Java services that you can use to replicate namespace nodes programmatically and to change the nodes' metadata appropriately when deploying an adapter to a different Integration Server. It provides services for connections, adapter services, listeners, listener notifications, and polling notifications.
Connection Services
These services are located in the WmART.wm.art.dev.connection package.
| Service | Description |
|---|---|
| wm.art.dev.connection:createConnectionNode | Creates a new connection node in the specified package and folder. |
| wm.art.dev.connection:deleteConnectionNode | Removes the specified connection node. |
| wm.art.dev.connection:fetchConnectionManagerMetadata | Returns the connection manager metadata properties that are predefined for all connections. |
| wm.art.dev.connection:fetchConnectionMetadata | Queries the connection factory and returns the metadata for all properties supported by connections of the specified type. |
| wm.art.dev.connection:updateConnectionNode | Alters the values of an existing connection. |
wm.art.dev.connection:createConnectionNode
This service creates a new connection node in the specified package and folder, and initializes the connection in a disabled state.
You must perform the following steps to populate the input pipeline:
- Use
wm.art.dev.connection:fetchConnectionManagerMetadata
service to identify the supported connection manager properties and configure
the
connectionManagerSettings input
parameter.
- All connection manager properties have default values.
- The default value is set in the defaultValue metadata attribute.
- You can use the default values or override them with values that conform to the underlying data types of the properties.
- The property values are not automatically set to their default values; you must explicitly set all the required properties.
- If you omit a property, then no attempt is made to locate and assign default values to the property.
- The connection manager properties may be optional or a
required property.
- A required property is identified when the
isRequired metadata attribute
is set to
true. - The absence of the isRequired attribute implies that the property is not required.
- If you fail to set a required property, the wm.art.dev.connection:createConnectionNode service throws an exception.
- You may have properties that might be required, based on the current value of some other property.
- A required property is identified when the
isRequired metadata attribute
is set to
- The poolable connection manager property is always required.
- The remaining connection manager properties depend on the
value of
poolable property.
- If
poolable is set to
true, then the remaining connection manager properties must be assigned values as well. - If
poolable is set to
false, you may omit the remaining connection manager properties.
- If
poolable is set to
- All connection manager properties have default values.
- Use
wm.art.dev.connection:fetchConnectionMetada
service to identify the connection-specific properties and configure the
connectionSettings input
parameter.
- Connection-specific properties may or may not have
default values, depending on the specific adapter's implementation.
- Depending on the underlying data type of the property, it might not be possible to assign a default value to a connection specific property.
- You may use the default values or override them with values that conform to the underlying data types of the properties.
- The property values are not automatically set to their default values; you must explicitly set all the required properties.
- If you omit a property, then no attempt is made to locate and assign default values to the property.
- Connection-specific properties may be optional or a
required property.
- A required property is identified when the
isRequired metadata attribute
is set to
true. - The absence of the isRequired attribute implies that the property is not required.
- If you fail to set a required property, the wm.art.dev.connection:createConnectionNode service throws an exception.
- You may have properties that might be required, based on the current value of some other property.
- The number of properties to be
configured is adapter-dependent. At a minimum, set those properties whose
isRequired attribute is set to
true.
- A required property is identified when the
isRequired metadata attribute
is set to
- Connection-specific properties may or may not have
default values, depending on the specific adapter's implementation.
- Enable the connection using the
pub.art.connection:enableConnection service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
The resource domains registered by the connection factories are set in the connection's properties according to the interdependencies between the resource domains. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
Input Parameters
| Name | Description | |
|---|---|---|
| connectionAlias |
String. Required. Name of the connection in the
format:
folder:node.
|
|
| packageName | String. Required. Package where the connection is installed. | |
| adapterTypeName | String. Required. Name of the adapter. Same as the value returned by calling WmAdapter.getAdapterName method. | |
| connectionFactoryType | String. Required. Fully qualified path of the connection factory implementation class. | |
| connectionManagerSettings | IData. Required. Structure for passing connection's manager property values. The connection's manager property are predefined for all connections | |
| poolable | Boolean. Required. Determines whether to pool the
connection.
Note: If
poolable is
false, then the following property
values are not used:
|
|
| minimumPoolSize | Integer. Minimum number of connections retained in the pool. | |
| maximumPoolSize | Integer. Maximum number of connections retained in the pool. | |
| poolIncrementSize | Integer. Number of connections to add to the pool when additional connections are needed without exceeding the maximumPoolSize value. | |
| blockingTimeout | Integer. Milliseconds to wait for a connection. | |
| expireTimeout | Integer. Milliseconds of inactivity that may elapse prior to destroying the connection. | |
| connectionSettings | IData Required. Structure for passing a connection's property values. The actual connection properties and their underlying data types vary from adapter to adapter. You must set a connection property's value in accordance with its data type. To determine the value, call the service wm.art.dev.connection:fetchConnectionMetadata and note the parameterType attribute for that property. | |
| systemName | String. Internal name of the property. | |
For more information about the predefined connection manager properties, see wm.art.dev.connection:fetchConnectionManagerMetadata
For more information about the adapter-specific connection properties, see wm.art.dev.connection:fetchConnectionMetadata
Output Parameters
None.
Example
You must construct connectionManagerSettings and connectionSettings to create a connection node. The value of property's systemName is the internal name of the property. When constructing the connectionSettings input parameters, use this internal name as the key for setting a property's value. For example, if a connection defines a property named hostPort, then its systemName returned by wm.art.dev.connection:fetchConnectionMetadata service is hostPort. If the caller is a Java application, it might then use this information to set this property's value as follows:
IData pipeline = IDataFactory.create();
IDataCursor pipeCursor = pipeline.getCursor();
.
.
.
IData connSettings = IDataFactory.create();
IDataCursor connCursor = connSettings.getCursor();
connCursor.insertAfter("hostPort", new Integer(1234));
.
.
.
pipeCursor.insertAfter("connectionSettings", connSettings);
.
.
.
In this example, the hostPort property takes a java.lang.Integer value.
wm.art.dev.connection:deleteConnectionNode
This service deletes the specified connection node.
- You must disable the connection node before you delete it,
using the
pub.art.connection:disableConnection
service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
- The delete action is immediate and non-reversible, and returns no output data.
- You may assume that the service completed successfully if it does not throw a checked exception.
Input Parameters
| Name | Description |
|---|---|
| connectionAlias |
String. Required. Name of the connection in the
format:
folder:node.
|
Output Parameters
None.
wm.art.dev.connection:fetchConnectionManagerMetadata
This service fetches the connection manager properties that are predefined for all the connections, such as poolable, minimumPoolSize, maximumPoolSize, and others.
This service receives no inputs and returns an array of connectionManagerProperties structure. The connectionManagerProperties structure contains all metadata associated with each of the connection manager properties such as systemName, parameterType, defaultValue, and isRequired attributes, which you can use to configure a connection node.
Input Parameters
None.
Output Parameters
| Name | Description | |
|---|---|---|
| connectionManagerProperties[n] | IData. Required. An n-dimensioned array of connection manager properties. | |
| systemName |
String. Required. Internal property name. Values are:
|
|
| displayName | String. Required. External property name displayed. | |
| description | String. Required. Description of the property. | |
| parameterType |
String. Required. Data type of the property.
|
|
| groupURL | String. Not applicable to connection manager properties. | |
| groupName | String. Not applicable to connection manager properties. | |
| tupleName | String. Not applicable to connection manager properties. | |
| treeName | String. Not applicable to connection manager properties. | |
| treeDelimiter | String. Not applicable to connection manager properties. | |
| resourceDomain | String. Not applicable to connection manager properties. | |
| defaultValue | String. Default value of the property. | |
| isRequired | Boolean. Specifies whether the property is required. | |
wm.art.dev.connection:fetchConnectionMetadata
This service fetches the adapter-specific properties.
This service receives an adapter type name and a fully qualified connection factory class path, queries the connection factory and returns the metadata for all properties supported by the connections of that type.
Input Parameters
| Name | Description |
|---|---|
| adapterTypeName | String. Required. Name of adapter. Same as the value returned by WmAdapter.getAdapterName method. |
| connectionFactoryType | String. Required. Fully qualified path of the connection factory implementation class. |
Output Parameters
The service returns a connectionProperties array containing all metadata associated with each of the connection properties. You can use the following attributes to configure a connection node: systemName, parameterType, defaultValue, and isRequired.
| Name | Description | |
|---|---|---|
| displayName | String. Required. Adapter specific property name. Same as the value returned by WmDescriptor.getDisplayName method. | |
| description | String. Required. Adapter specific property description. Same as the value returned by WmDescriptor.getDescription method. | |
| templateURL | String. Required. URL of online help page for the connection. | |
| connectionProperties[n] | IData[]. Required. An n-dimensioned array of properties. | |
| systemName | String. Required. Adapter specific internal property name. | |
| displayName | String. Required. External property name displayed. | |
| description | String. Required. Description of the property. | |
| parameterType |
String. Required. Data type of the property.
|
|
| groupURL | String. URL of the group's help page. | |
| groupName | String. Name of the group to which the property belongs. | |
| tupleName | String. Name of the tuple to which the property belongs. | |
| treeName | String. Name of the tree to which the property belongs. | |
| treeDelimiter | String. Delimiter character used in the tree. | |
| resourceDomain | String. Resource domain name to which the property belongs. | |
| defaultValue | String. Default property value. | |
| isRequired | Boolean. Specifies whether the property is required. | |
| isHidden | Boolean. Specifies whether the property is displayable. | |
| isReadOnly | Boolean. Specifies whether the property can be modified. | |
| isFill | Boolean. Specifies whether the editors must pre-fill the property. | |
| isPassword | Boolean. Specifies whether the property is a password. | |
| isMultiline | Boolean. Specifies whether the property traverses multiple lines. | |
| isKey | Boolean. Specifies whether the property is a key field. | |
| minSeqLength | String. Lower bound of the sequence. | |
| minStringLength | String. Minimum string length. | |
| maxStringLength | String. Maximum string length. | |
| useParam | String. Specifies whether the property is available for use. | |
Example
For example, a Java client might invoke this service as follows:
IData pipeline = IDataFactory.create();
IDataCursor pipeCursor = pipeline.getCursor();
pipeCursor.insertAfter("adapterTypeName",
"FooAdapter");
pipeCursor.insertAfter("connectionFactoryType",
"com.wm.adapters.FooConnFactory");
ExtendedConnectionUtils.fetchConnectionMetadata(pipeline);
.
.
.
wm.art.dev.connection:updateConnectionNode
This service updates the values of an existing connection.
- You must disable the connection node before you update it,
using the
pub.art.connection:disableConnection
service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
You must perform the following steps to populate the input pipeline:
- Use wm.art.dev.connection:fetchConnectionManagerMetadata service to identify the supported connection manager properties and configure the connectionManagerSettings input parameter.
- Use wm.art.dev.connection:fetchConnectionMetadata service to identify the connection-specific properties and configure the connectionSettings input parameter.
- Provide values for the properties you want to change.
This service attempts to overlay these new values on the connection's current property values. The resulting set of merged property values are used to reconfigure the connection.
If you are not changing any connection manager or connection-specific properties, it is not necessary to pass in that container parameter. For example, if you are not changing any connection manager properties, you must not build and pass in the connectionManagerSettings parameter.
- If you are providing explicit property values in connectionManagerSettings and connectionSettings parameter, then the values must conform to the underlying data types of those properties.
For an example of setting a connection property, see the Java code example in wm.art.dev.connection:createConnectionNode.
Input Parameters
| Name | Description | |
|---|---|---|
| connectionAlias |
String. Required. Name of the connection in the
format:
folder:node.
|
|
| connectionManagerSettings | IData. Required. Structure for passing connection's manager property values. The connection's manager property are predefined for all connections. | |
| poolable | Boolean. Required. Determines whether to pool the
connection.
Note: If
poolable is
false, then the following property
values are not used:
|
|
| minimumPoolSize | Integer. Minimum number of connections retained in the pool. | |
| maximumPoolSize | Integer. Maximum number of connections retained in the pool. | |
| poolIncrementSize | Integer. Number of connections to add to the pool when additional connections are needed and must not exceed maximumPoolSize. | |
| blockingTimeout | Integer. Milliseconds to wait for a connection. | |
| expireTimeout | Integer. Milliseconds of inactivity that may elapse prior to destroying the connection. | |
| connectionSettings | IData. Required. Structure for passing a connection's property values. The actual connection properties and their underlying data types vary from adapter to adapter. You must set a connection property's value in accordance with its data type. To determine the value, call the service wm.art.dev.connection:fetchConnectionMetadata and note the parameterType attribute for that property. | |
| systemName | String. Internal name of the property. | |
For more information about the predefined connection manager properties, see wm.art.dev.connection:fetchConnectionManagerMetadata
For more information about the adapter-specific connection properties, see wm.art.dev.connection:fetchConnectionMetadata
Output Parameters
None.
Adapter Service Services
These services are located in the WmART.wm.art.dev.service package.
| Service | Description |
|---|---|
| wm.art.dev.service:createAdapterServiceNode | Creates a new adapter service node in the specified package and folder from the specified service template and connection alias. |
| wm.art.dev.service:deleteAdapterServiceNode | Removes a specified adapter service node. |
| wm.art.dev.service:fetchAdapterServiceTemplateMetadata | Returns all metadata for a specified adapter service template. |
| wm.art.dev.service:updateAdapterServiceNode | Alters the values of an existing adapter service. |
wm.art.dev.service:createAdapterServiceNode
This service creates a new adapter service node in the specified package and folder from the specified service template and connection alias.
You must perform the following steps to populate the input pipeline:
- Use
wm.art.dev.service:fetchAdapterServiceTemplateMetadata
service to identify the supported service template properties and configure the
adapterServiceSettings input
parameter.
- The service's inputFieldNames, inputFieldTypes, outputFieldNames, and outputFieldTypes parameters in the adapterServiceSettings structure define the properties that comprise the adapter service's input and output signatures.
- The data types of properties in the adapterServiceSettings structure are arrays of java.lang.String type.
- A one-to-one correspondence exists between the elements in the *FieldNames and *FieldTypes arrays. For example, if the property names abc, xyz, and foo are inserted into the outputFieldNames parameter, then the service expects that exactly three data types will be inserted into outputFieldTypes, and that those data types correspond to the same element in outputFieldNames.
- Adapter service properties may or may not have default
values, depending on the specific adapter's implementation.
- Depending on the underlying data type of the property, it might not be possible to assign a default value to a property.
- You may use the default values or override them with values that conform to the underlying data types of the properties.
- The property values are not automatically set to their default values; you must explicitly set all the required properties.
- If you omit a property, then no attempt is made to locate and assign default values to the property.
- Adapter service properties may be optional or a required
property.
- A required property is identified when the
isRequired metadata attribute
is set to
true. - The absence of the isRequired attribute implies that the property is not required.
- If you fail to set a required property, the wm.art.dev.service:createAdapterServiceNode service throws an exception.
- You may have properties that might be required, based on the current value of some other property.
- The number of properties to be
configured is adapter-dependent. At a minimum, set those properties whose
isRequired attribute is set to
true.
- A required property is identified when the
isRequired metadata attribute
is set to
The resource domains registered by the adapter service template are set in the adapter service's properties according to the interdependencies between the resource domains. This includes input and output signatures since they are supported through resource domains. This service provides the properties inputFieldNames, inputFieldTypes, outputFieldNames, and outputFieldTypes for this purpose. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
Input Parameters
| Name | Description | |
|---|---|---|
| serviceName |
String. Required. Namespace name of the new adapter
service in the format:
folder:node.
|
|
| packageName | String. Required. Package in which to install the adapter service. | |
| connectionAlias |
String. Required. Namespace name of the connection in
the format:
folder:node.
|
|
| serviceTemplate | String. Required. Fully qualified pathname of the adapter service template class. | |
| adapterServiceSettings | IData. Required. Structure for passing the adapter's property values. | |
| systemName | String. Required. Adapter service specific internal property name. | |
| inputFieldNames | String[]. Names of the fields used in the adapter's input signature. | |
| inputFieldTypes |
String[]. Data types of the fields used in the
adapter's input signature.
Note:
|
|
| outputFieldNames | String[]. Names of the fields used in the adapter's output signature. | |
| outputFieldTypes |
String[]. Data types of the fields used in the
adapter's output signature.
Note:
|
|
Output Parameters
None.
Example
You must construct adapterServiceSettings to create an adapter service node. The value of a property's systemName is the internal name of the property. When constructing the input parameter adapterServiceSettings, you must use this internal name as the key for setting a property's value. For example, if a service template defines a property named sqlCommand, then its systemName as returned by fetchAdapterServiceTemplateMetadata service is sqlCommand. If the caller is a Java application, it might then use this information to set this property's value as follows:
IData pipeline = IDataFactory.create();
IDataCursor pipeCursor = pipeline.getCursor();
.
.
.
IData svcSettings = IDataFactory.create();
IDataCursor svcCursor = svcSettings.getCursor();
svcCursor.insertAfter("sqlCommand", "SELECT * FROM fooTable");
.
.
.
pipeCursor.insertAfter("adapterServiceSettings", svcSettings);
.
.
.
In this example, the sqlCommand property takes a java.lang.String value.
wm.art.dev.service:deleteAdapterServiceNode
This service deletes the specified adapter service node.
- The delete action is immediate and non-reversible, and returns no output data.
- You may assume that the service completed successfully if it does not throw a checked exception.
Input Parameters
| Name | Description |
|---|---|
| serviceName |
String. Required. Name of the adapter service in the
format:
folder:node.
|
Output Parameters
None.
wm.art.dev.service:fetchAdapterServiceTemplateMetadata
This service fetches all metadata for an adapter service template for a specified connection alias and adapter service template class path.
This service receives a connection and a fully qualified adapter service template class path, and returns the metadata for all properties supported by the adapter service template.
This service returns an array of templateProperties structure each containing attributes such as systemName, parameterType, defaultValue, and isRequired.
Input Parameters
| Name | Description |
|---|---|
| connectionAlias |
String. Required. Name of the connection in the
format:
folder:node.
|
| serviceTemplate | String. Required. Fully qualified pathname of the adapter service template class. |
Output Parameters
| Name | Description | |
|---|---|---|
| description | String. Required. Adapter service template description. Same as the value returned by WmDescriptor.getDisplayName method. | |
| displayName | String. Required. Adapter service template name displayed. Same as the value returned by WmDescriptor.getDescription method. | |
| templateURL | String. Required. URL of the online help page for the adapter service. | |
| indexMaps[i] | IData[]. Required. An i-dimensioned array of field maps. | |
| mapName | String. Field map name. | |
| isVariable | Boolean. Specifies whether the field map is of variable length. | |
| disableAppendAll | Boolean. Disables all the buttons used for appending the rows for a field map in the Adapter Service Editor. | |
| templateProperties[n] | IData. Required. An n-dimensioned array of properties. | |
| systemName | String Required. Internal property name. | |
| displayName | String Required. External property name. | |
| description | String Required. Description of the property. | |
| parameterType |
String Required. Data type of property.
|
|
| groupURL | String. URL of the group's help page. | |
| groupName | String. Name of the group to which the property belongs. | |
| tupleName | String. Name of the tuple to which the property belongs. | |
| treeName | String. Name of the tree to which the property belongs. | |
| treeDelimiter | String. Delimiter character used in the tree. | |
| resourceDomain | String. Resource domain name and dependencies. | |
| treeView | String. Property name for which values are displayed in the tree structure for selection. | |
| defaultValue | String. Default value of the property. | |
| isRequired | Boolean. Specifies whether the property is required. | |
| isHidden | Boolean. Specifies whether the property is displayable. | |
| isReadOnly | Boolean. Specifies whether the property can be modified. | |
| isFill | Boolean. Specifies whether the editors must pre-fill the property. | |
| isPassword | Boolean. Specifies whether the property is a password. | |
| isMultiline | Boolean. Specifies whether the property traverses multiple lines. | |
| isKey | Boolean. Specifies whether the property is a key field. | |
| minSeqLength | String. Lower bound of the sequence. | |
| maxSeqLength | String. Upper bound of the sequence. | |
| minStringLength | String. Minimum string length. | |
| maxStringLength | String. Maximum string length. | |
| useParam | String. Specifies whether the property is available for use. | |
wm.art.dev.service:updateAdapterServiceNode
This service updates an existing adapter service node.
You must perform the following steps to populate the input pipeline:
- Use
wm.art.dev.service:fetchAdapterServiceTemplateMetadata
service to identify the supported service template properties and configure the
adapterServiceSettings input
parameter.
- The value of the systemName metadata attribute is the internal name of a property. Use this internal name as the key for setting a property's value when constructing the adapterServiceSettings input parameter.
- Set only those properties that you want to change.
This service attempts to overlay these new values on the adapter service's current property values. The resulting set of merged property values are used to reconfigure the adapter service.
- Update the properties depending on the data type.
- If a property's data type is non-primitive (derived from
java.lang.Object), you may clear a
property's current value by setting its value to
null. - If a property's data type is Java primitive, then the property value cannot be cleared; however the property can be updated.
- If a property's data type is non-primitive (derived from
java.lang.Object), you may clear a
property's current value by setting its value to
- If you are providing explicit property values in the adapterServiceSettings parameter, then the values must conform to the underlying data types of those properties.
- Change the connection resource that the adapter service uses
by providing a new
connectionAlias input
parameter.
- If you omit the connectionAlias parameter, the adapter service will continue to use its current connection resource.
- If you are changing only the connection resource, it is not necessary to provide the adapterServiceSettings input parameter.
The resource domains registered by the adapter service template are set in the adapter service's properties according to the interdependencies between the resource domains. This includes input and output signatures since they are supported through resource domains. This service provides the properties inputFieldNames, inputFieldTypes, outputFieldNames, and outputFieldTypes for this purpose. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
For an example of setting an adapter service property, see the Java code example in wm.art.dev.service:createAdapterServiceNode.
Input Parameters
| Name | Description | |
|---|---|---|
| serviceName |
String. Required. Name of the existing adapter service
in the format:
folder:node.
|
|
| connectionAlias |
String. Required. Name of the connection in the
format:
folder:node.
|
|
| adapterServiceSettings | IData. Required. Structure for passing the adapter's property values. | |
| systemName | String. Required. Adapter service specific internal property name. | |
| inputFieldNames | String[]. Names of the fields used in the adapter's input signature. | |
| inputFieldTypes |
String[]. Data types of the fields used in the
adapter's input signature.
|
|
| outputFieldNames | String[]. Names of the fields used in the adapter's output signature. | |
| outputFieldTypes |
String[]. Data types of the fields used in the
adapter's output signature.
|
|
Output Parameters
None.
Listener Services
These services are located in the WmART.wm.art.dev.listener package.
| Service | Description |
|---|---|
| wm.art.dev.listener:analyzeListenerNodes | Logs the data for listeners. |
| wm.art.dev.listener:createListenerNode | Creates a new instance of a listener in the specified package and folder from the specified listener template and connection alias. |
| wm.art.dev.listener:deleteListenerNode | Removes a specified instance of a listener. |
| wm.art.dev.listener:fetchListenerTemplateMetadata | Returns all metadata supported by that listener template. |
| wm.art.dev.listener:updateListenerNode | Alters the values of an existing listener. |
| wm.art.dev.listener:updateRegisteredNotifications | Checks the registration of listener notifications. |
wm.art.dev.listener:analyzeListenerNodes
This service logs the data for listeners in the server log file. The data includes the names of associated listener notifications, the class name of listener notifications, their status (active or disabled), and whether the associated listener notification is linked with the same listener or not.
Input Parameters
None.
Output Parameters
None.
wm.art.dev.listener:createListenerNode
This service creates a new listener node in the specified package and folder from the specified listener template and connection alias, and initializes the new listener in a disabled state.
You must perform the following steps to populate the input pipeline:
- Use
wm.art.dev.service:fetchListenerTemplateMetadata
service to identify the supported listener template properties and configure
the
listenerSettings input
parameter.
- Listener properties may or may not have default values,
depending on the specific adapter's implementation.
- Depending on the underlying data type of the property, it might not be possible to assign a default value to a property.
- You may use the default values or override them with values that conform to the underlying data types of the properties.
- The property values are not automatically set to their default values; you must explicitly set all the required properties.
- If you omit a property, then no attempt is made to locate and assign default values to the property.
- Listener properties may be optional or a required
property.
- A required property is identified when the
isRequired metadata attribute
is set to
true. - The absence of the isRequired attribute implies that the property is not required.
- If you fail to set a required property, the wm.art.dev.listener:createListenerNode service throws an exception.
- You may have properties that might be required, based on the current value of some other property.
- The number of properties to be
configured is adapter-dependent. At a minimum, set those properties whose
isRequired attribute is set to
true.
- A required property is identified when the
isRequired metadata attribute
is set to
- Listener properties may or may not have default values,
depending on the specific adapter's implementation.
- Activate the listener using the
pub.art.listener:enableListener service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
The resource domains registered by the listener service template are set in the listener's properties according to the interdependencies between the resource domains. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
Input Parameters
| Name | Description | |
|---|---|---|
| listenerName |
String. Required. Name of the listener in the format:
folder:node.
|
|
| packageName | String. Required. Package where the listener is installed. | |
| connectionAlias |
String. Required. Name of the connection in the
format:
folder:node.
|
|
| listenerTemplate | String. Required. Fully qualified pathname of the listener template class. | |
| listenerSettings | IData. Required. Structure for passing the listener's property values. | |
| systemName | String. Required. Internal name of the property.
|
|
| retryLimit | String. Required. Number of times that the system must attempt to start the listener if the initial attempt fails. | |
| retryBackoffTimeout | String. Required. Number of seconds the system must
wait between each attempt to start the listener. This field is irrelevant if
the value of
Retry Limit is
0.
|
|
Output Parameters
None.
Example
You must construct listenerSettings to create a listener node. The value of a property's systemName is the internal name of the property. When constructing the input parameter listenerSettings, you must use this internal name as the key for setting a property's value. For example, if a listener template defines a property named portNumber, then its systemName as returned by wm.art.dev.listener:fetchListenerTemplateMetadata service is portNumber. If the caller is a Java application, it might then use this information to set this property's value as follows:
IData pipeline = IDataFactory.create();
IDataCursor pipeCursor = pipeline.getCursor();
.
.
.
IData lstnrSettings = IDataFactory.create();
IDataCursor lstnrCursor = lstnrSettings.getCursor();
lstnrCursor.insertAfter("portNumber", new Integer((int)8888));
.
.
.
pipeCursor.insertAfter("listenerSettings", lstnrSettings);
.
.
.
In this example, the portNumber property takes a java.lang.Integer value.
wm.art.dev.listener:deleteListenerNode
This service deletes a specified listener node.
- You must disable the listener node before you delete it,
using the
pub.art.listener:disableListener service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
- The delete action is immediate and non-reversible, and returns no output data.
- You may assume that the service completed successfully if it does not throw a checked exception.
Input Parameters
| Name | Description |
|---|---|
| listenerName |
String. Required. Name of the listener in the format:
folder:node.
|
Output Parameters
None.
wm.art.dev.listener:fetchListenerTemplateMetadata
This service fetches all metadata supported by the listener template for a specified connection alias and listener template class path.
This service takes a valid connection alias and listener template class path, and returns an array of templateProperties structure each containing attributes such as systemName, parameterType, defaultValue, and isRequired.
Input Parameters
| Name | Description |
|---|---|
| connectionAlias |
String. Required. Name of an existing connection in
the format:
folder:node.
|
| listenerTemplate | String. Required. Fully qualified pathname of listener template class. |
Output Parameters
| Name | Description | |
|---|---|---|
| description | String. Required. Listener template description. Same as the value returned by WmDescriptor.getDisplayName method. | |
| displayName | String. Required. Listener template name displayed. Same as the value returned by WmDescriptor.getDescription method. | |
| listAllConnection | String. Default template metadata | |
| templateURL | String. Required. URL of the online help page for the listener. | |
| requiresConnection | Boolean. Specifies whether the listener requires a connection. | |
| indexMaps[i] | IData[]. Required. An i-dimensioned array of field maps. | |
| mapName | String. Field map name. | |
| isVariable | Boolean. Specifies whether the field map is variable length. | |
| disableAppendAll | Boolean. Disables all the buttons used for appending the rows for a field map in the Adapter Service Editor. | |
| templateProperties[n] | IData[]. Required. An n-dimensioned array of properties. | |
| systemName | String. Required. Internal property name. | |
| displayName | String. Required. External displayable property name. | |
| description | String. Required. Description of the property. | |
| parameterType |
String. Required. Data type of property.
|
|
| groupURL | String. URL of the group's help page. | |
| groupName | String. Name of the group to which the property belongs. | |
| tupleName | String. Name of the tuple to which the property belongs. | |
| treeName | String. Name of the tree to which the property belongs. | |
| treeDelimiter | String. Delimiter character used in the tree. | |
| resourceDomain | String. Resource domain name to which the property belongs. | |
| treeView | String. Property name for which values are displayed in the tree structure for selection. | |
| defaultValue | String. Default value of the property. | |
| isRequired | Boolean. Specifies whether the property is required. | |
| isHidden | Boolean. Specifies whether the property is displayable. | |
| isReadOnly | Boolean. Specifies whether the property can be modified. | |
| isFill | Boolean. Specifies whether the editors should pre-fill the property. | |
| isPassword | Boolean. Specifies whether the property is a password. | |
| isMultiline | Boolean. Specifies whether the property traverses multiple lines. | |
| isKey | Boolean. Specifies whether the property is a key field. | |
| minSeqLength | String. Lower bound of the sequence. | |
| maxSeqLength | String. Upper bound of the sequence. | |
| minStringLength | String. Minimum string length. | |
| maxStringLength | String. Maximum string length. | |
| useParam | String. Specifies whether the property is available for use. | |
wm.art.dev.listener:updateListenerNode
This service updates an existing listener node.
- You must disable the listener before updating its
properties, using the
pub.art.listener:disableListener service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
You must perform the following steps to populate the input pipeline:
- Use
wm.art.dev.listener:fetchListenerTemplateMetadata
service to identify the supported service template properties and configure the
listenerSettings input
parameter.
- The value of the systemName metadata attribute is the internal name of a property. Use this internal name as the key for setting a property's value when constructing the input parameter listenerSettings.
- Set only those properties that you want to change.
Note: This service attempts to overlay these new values on the listener's current property values. The resulting set of merged property values are used to reconfigure the listener.
- Update the property depending on the data type.
- If a property's data type is non-primitive (derived from
java.lang.Object), you may clear a
property's current value by setting its value to
null. - If a property's data type is Java primitive, then the property value cannot be cleared; however the property can be updated.
- If a property's data type is non-primitive (derived from
java.lang.Object), you may clear a
property's current value by setting its value to
- If you are providing explicit property values in listenerSettings parameter, then the values must conform to the underlying data types of those properties.
- Change the connection resource that the listener uses by
providing a new
connectionAlias input
parameter.
- If you omit the connectionAlias parameter, the listener continues to use its current connection resource.
- If you are changing only the connection resource, it is not necessary to provide the listenerSettings input parameter.
The resource domains registered by the listener templates are set in the listener's properties according to the interdependencies between the resource domains. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
For an example of setting an listener property, see the Java code example in wm.art.dev.listener:createListenerNode.
Input Parameters
| Name | Description | |
|---|---|---|
| listenerName |
String. Required. Name of an existing listener in the
format:
folder:node.
|
|
| connectionAlias |
String. Required. Name of the connection in the
format:
folder:node.
|
|
| listenerSettings | IData. Required. Structure for passing the listener's property values. | |
| systemName | String. Required. Internal property name.
|
|
| retryLimit | String. Required. Number of times that the system must attempt to start the listener if the initial attempt fails. | |
| retryBackoffTimeout | String. Required. Number of seconds the system must
wait between each attempt to start the listener. This field is irrelevant if
the value of
Retry Limit is
0.
|
|
Output Parameters
None.
wm.art.dev.listener:updateRegisteredNotifications
This service checks listener notifications, finds the linked listener, and then checks whether the listener notification is also registered for the same listener or not. If not, then the service registers the listener notification with the linked listener.
Input Parameters
| Name | Description |
|---|---|
| listenerNodeName |
String. Specifies the name of the WmART-based listener
for which the notifications must be updated.
|
Output Parameters
None.
Listener Notification Services
These services are located in the WmART.wm.art.dev.notification package.
| Service | Description |
|---|---|
| wm.art.dev.notification:analyzeListenerNotifications | Logs the data for listener notifications. |
| wm.art.dev.notification:createListenerNotificationNode | Creates a new instance of a synchronous or asynchronous listener notification in the specified package and folder from the specified notification template and connection alias. |
| wm.art.dev.notification:deleteListenerNotificationNode | Removes a specified instance of listener notification. |
| wm.art.dev.notification:fetchListenerNotificationTemplateMetadata | Returns all metadata for a specified listener notification template. |
| wm.art.dev.notification:updateListenerNotificationNode | Alters the values of an existing synchronous or asynchronous listener notification. |
wm.art.dev.notification:analyzeListenerNotifications
This service logs the data for listener notifications. The data includes the name of a listener to which a listener notification is linked, and the class name of the listener. The service also checks whether the listener notification is registered with the listener or not.
Input Parameters
None.
Output Parameters
None.
wm.art.dev.notification:createListenerNotificationNode
This service creates a new synchronous or asynchronous listener notification node in the specified package and folder from the specified notification template and connection alias, and initializes the listener notification node in a disabled state.
You must perform the following steps to populate the input pipeline:
- Use
wm.art.dev.notification:fetchListenerNotificationTemplateMetadata
service to identify the supported listener notification template properties and
configure the
notificationSettings input
parameter.
- Listener notification properties may or may not have
default values, depending on the specific adapter's implementation.
- Depending on the underlying data type of the property, it might not be possible to assign a default value to a property.
- You may use the default values or override them with values that conform to the underlying data types of the properties.
- The property values are not automatically set to their default values; you must explicitly set all the required properties.
- If you omit a property, then no attempt is made to locate and assign default values to the property.
- Listener notification properties may be optional or a
required property.
- A required property is identified when the
isRequired metadata attribute
is set to
true. - The absence of the isRequired attribute implies that the property is not required.
- If you fail to set a required property, the wm.art.dev.notification:createListenerNotificationNode service throws an exception.
- You may have properties that might be required, based on the current value of some other property.
- The number of properties to be
configured is adapter-dependent. At a minimum, set those properties whose
isRequired attribute is set to
true.
- A required property is identified when the
isRequired metadata attribute
is set to
- Listener notification properties may or may not have
default values, depending on the specific adapter's implementation.
- The particular combination of input parameters you specify determines whether you create a synchronous or an asynchronous listener notification as described in the section for input parameters. This service throws an exception if you specify invalid or ambiguous combinations of input parameters.
- When an asynchronous listener notification is triggered,
Integration Server generates a
runtime publishable output document.
- The names and types of the data fields in the publishable output document is predefined.
- Specify the names and types of the data fields in the publishable output document in the service's publishableRecordDef input parameter.
- The publishableRecordDef input parameter consists of fieldNames and fieldTypes properties.
- The data types of properties in the publishableRecordDef structure are arrays of java.lang.String type.
- The
fieldNames and
fieldTypes properties are an
array of
String. - A one-to-one correspondence exists between the elements in these fieldNames and fieldTypes arrays.
- The values assigned to the fieldNames and fieldTypes properties must correspond to fields that the listener notification class outputs in its runNotification method.
- The service execution may fail if an empty publishableRecordDef is specified.
- Activate the listener notification node using the
pub.art.notification:enableListenerNotification
service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
- This service does not validate that the fields in the publishable document are actually generated by the notification.
- This service creates a publishable document node in a notificationNamePublishDocument folder where notificationName is the value you specify for the notificationName input parameter. The name of publishable document is not configurable.
The resource domains registered by the listener notification templates are set in the listener notification's properties according to the interdependencies between the resource domains. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
- Synchronous listener notification classes must extend the WmSyncListenerNotification class.
- Asynchronous listener notifications must extend the WmAsyncListenerNotification class.
Input Parameters
| Name | Description | |
|---|---|---|
| notificationName |
String. Required. Name of the listener notification in
the format:
folder:node.
|
|
| packageName | String. Required. Package where the listener notification is installed. | |
| listenerNode |
String. Required. Name of the listener in the format:
folder:node.
|
|
| notificationTemplate | String. Required. Fully qualified pathname of the listener notification template class. | |
| notificationSettings | IData. Required. Structure for passing the listener notification's property values. | |
| systemName | String. Required. Internal name of the property.
|
|
| Properties applicable to synchronous listener notifications only | ||
| serviceName |
String. Required. Name of the service to invoke in the
format:
folder:node. This parameter must not be
null.
|
|
| executionMode | IData. Structure to identify whether a service defined in serviceName is invoked or a document is published. | |
| mode | String. Possible values are:
|
|
| local | Boolean. Enables publishing the document locally. | |
| waitTime | String. Time in millisecond to wait for the response in an synchronous listener notification. | |
| jmsSettings | IData. Structure specifying the JMS setting. | |
| isJMSConfigured | Boolean. Specifies whether the document is published to a JMS provider. | |
| ConnectionAliasName | String. Required. Connection name of the JMS provider.
This field is relevant if the value of
isJMSConfigured is
true.
|
|
| DestinationName |
String. Required. Name of the destination where the
document is published. This field is relevant if the value of
isJMSConfigured is
true.
|
|
| DestinationType |
String. Required. Type of destination where the
document is published. Possible values are:
true.
|
|
| requestRecordDef |
IData. Required. Structure specifying the definition
of the request document sent to
serviceName. This parameter
must not be
null, but may be empty. This property
contains the following fields:
|
|
| fieldNames | String[]. Names of the fields used in the listener notification's request document. | |
| fieldTypes | String[]. Data types of the fields used in the listener notification's request document. | |
| replyRecordDef |
IData. Required. Structure specifying the definition
of the reply document received from
serviceName. This parameter
must not be
null, but may be empty. This property
contains the following fields:
|
|
| fieldNames | String[]. Names of the fields used in the listener notification's reply document. | |
| fieldTypes | String[]. Data types of the fields used in the listener notification's reply document. | |
| Properties applicable to asynchronous listener notifications only | ||
| publishableRecordDef | IData. Required. Structure specifying the definition of the runtime publishable output document. This property contains the following fields: | |
| fieldNames | String[]. Names of the fields used in the listener notification's output document. | |
| fieldTypes | String[]. Data types of the fields used in the listener notification's output document. | |
Output Parameters
None.
Example
You must construct notificationSettings to create a listener notification node. The value of a property's systemName is the internal name of the property. When constructing the notificationSettings input parameter, you must use this internal name as the key for setting a property's value. For example, if a listener notification template defines a property named foo, then its systemName as returned by fetchListenerNotificationTemplateMetadata service is foo. If the caller is a Java application, it might then use this information to set this property's value as follows:
IData pipeline = IDataFactory.create();
IDataCursor pipeCursor = pipeline.getCursor();
.
.
.
IData ntfySettings = IDataFactory.create();
IDataCursor ntfyCursor = ntfySettings.getCursor();
ntfyCursor.insertAfter("foo", "bar");
.
.
.
pipeCursor.insertAfter("notificationSettings",
ntfySettings);
.
.
.
In this example, the foo property takes a java.lang.String value.
wm.art.dev.notification:deleteListenerNotificationNode
This service deletes the specified listener notification node.
- You must disable the listener notification node before you
delete it, using the
pub.art.notification:disableListenerNotification
service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
- The delete action is immediate and non-reversible, and returns no output data.
- Set the cascadeDelete flag to propagate the deletion across the Broker.
- You may assume that the service completed successfully if it does not throw a checked exception.
Input Parameters
| Name | Description |
|---|---|
| notificationName |
String. Required. Name of the listener notification
node in the format:
folder:node.
|
| cascadeDelete |
Boolean. Possible values are:
|
Output Parameters
None.
wm.art.dev.notification:fetchListenerNotificationTemplateMetadata
This service fetches all metadata supported by the listener notification template for a specified connection alias and listener notification template class path.
This service takes a valid listener node and listener notification template class path, and returns an array of templateProperties structure, each containing attributes such as systemName, parameterType, defaultValue, and isRequired.
Input Parameters
| Name | Description |
|---|---|
| listenerNode |
String. Required. Name of an existing listener in the
format:
folder:node.
|
| notificationTemplate | String. Required. Fully qualified pathname of listener notification template class. |
Output Parameters
| Name | Description | |
|---|---|---|
| description | String. Required. Listener template description. Same as the value returned by WmDescriptor.getDisplayName method. | |
| displayName | String. Required. Listener template name displayed. Same as the value returned by WmDescriptor.getDescription method. | |
| templateURL | String. Required. URL of the online help page for the listener. | |
| indexMaps[i] | IData[]. Required. An i-dimensioned array of field maps. | |
| mapName | String. Field map name. | |
| isVariable | Boolean. Specifies whether the field map is variable length. | |
| disableAppendAll | Boolean. Disables all the buttons used for appending the rows for a field map in the Adapter Service Editor. | |
| templateProperties[n] | IData. Required. An n-dimensioned array of properties. | |
| systemName | String Required. Internal property name. | |
| displayName | String Required. External property name displayed. | |
| description | String Required. Property description. | |
| parameterType |
String Required. Data type of property.
|
|
| groupURL | String. URL of the group's help page. | |
| groupName | String. Name of the group to which the property belongs. | |
| tupleName | String. Name of the tuple to which the property belongs. | |
| treeName | String. Name of the tree to which the property belongs. | |
| treeDelimiter | String. Delimiter character used in the tree. | |
| resourceDomain | String. Resource domain name to which the property belongs. | |
| treeView | String. Property name for which values are displayed in the tree structure for selection. | |
| defaultValue | String. Default value of the property. | |
| isRequired | Boolean. Specifies whether the property is required. | |
| isHidden | Boolean. Specifies whether the property is displayable. | |
| isReadOnly | Boolean. Specifies whether the property can be modified. | |
| isFill | Boolean. Specifies whether the editors should pre-fill the property. | |
| isPassword | Boolean. Specifies whether the property is a password. | |
| isMultiline | Boolean. Specifies whether the property traverses multiple lines. | |
| isKey | Boolean. Specifies whether the property is a key field. | |
| minSeqLength | String. Lower bound of the sequence. | |
| maxSeqLength | String. Upper bound of the sequence. | |
| minStringLength | String. Minimum string length. | |
| maxStringLength | String. Maximum string length. | |
| useParam | String. Specifies whether the property is available for use. | |
wm.art.dev.notification:updateListenerNotificationNode
This service updates the existing synchronous or asynchronous listener notification node.
- You must disable the listener notification node before
updating its properties, using the
pub.art.notification:disableListenerNotification
service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
You must perform the following steps to populate the input pipeline:
- Use
fetchListenerNotificationTemplateMetadata
service to identify the supported service template properties and configure the
listenerNode and
notificationSettings input
parameter.
- The value of the systemName metadata attribute is the internal name of a property. Use this internal name as the key for setting a property's value when constructing the input parameter notificationSettings.
- Set only those properties that you want to change.
This service attempts to overlay these new values on the listener notification's current property values. The resulting set of merged property values are used to reconfigure the listener.
- If you are providing explicit property values in notificationSettings parameter, then the values must conform to the underlying data types of those properties.
- Change the listener resource that the listener notification
uses by providing a new
listenerNode input parameter.
- If you omit the listenerNode parameter, the listener notification continues to use its current listener resource.
- If you are changing only the listener resource, it is not necessary to provide the notificationSettings or any other input parameter.
- A synchronous listener notification contains three additional
input parameters:
- serviceName. Specifies the node name of a separate service that is invoked by the notification at runtime. If you omit this parameter, the notifications still retains the current value of the parameter.
- requestRecordDef and replyRecordDef. Document record definitions that the notification uses to format messages when communicating with this service. You can modify either or both of these definitions.
- The requestRecordDef and replyRecordDef input parameters consists of fieldNames and fieldTypes properties.
- The
fieldNames and
fieldTypes properties are an
array of
java.lang.String. - A one-to-one correspondence exists between the elements in these fieldNames and fieldTypes arrays.
Note: This service cannot verify this assertion. If you configure either record definition incorrectly, the consequence may not manifest until runtime. - An asynchronous listener notification use the following input
parameters:
- publishableRecordDef. Redefine the structure of an asynchronous notification's output document.
- The publishableRecordDef input parameter consists of fieldNames and fieldTypes properties.
- The
fieldNames and
fieldTypes properties are an
array of
java.lang.String. - A one-to-one correspondence exists between the elements in these fieldNames and fieldTypes arrays.
- The values assigned to the fieldNames and fieldTypes properties must correspond to fields that the listener notification class outputs in its runNotification method.
Note: This service cannot verify this assertion. If you configure either record definition incorrectly, the consequence may not manifest until runtime. - The requestRecordDef, replyRecordDef, and publishableRecordDef input parameters can be replaced in their entirety. The service does not attempt to merge the values in these parameters with the notification's current values. For instance, if you want to redefine a synchronous notification's reply record definition, you must define the entire record in the replyRecordDef input parameter.
- The two listenerNode and notificationSettings input parameters apply to both synchronous and asynchronous listener notifications.
- You cannot convert a synchronous notification to an asynchronous notification.
- Similarly you cannot convert an asynchronous notification to a synchronous notification.
The resource domains registered by the listener notification templates are set in the listener notification's properties according to the interdependencies between the resource domains. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
Input Parameters
| Name | Description | |
|---|---|---|
| notificationName |
String. Required. Name of the existing listener
notification in the format:
folder:node.
|
|
| listenerNode |
String. Required. Name of the associated listener in
the format:
folder:node.
|
|
| notificationSettings | IData. Required. Structure for passing the listener notification's property values. | |
| systemName | String. Required. Internal property name.
|
|
| Properties applicable to synchronous listener notifications only | ||
| serviceName | String. Required. Name of
the service to invoke in the format:
folder:node. This parameter must not be
null.
|
|
| executionMode | IData. Structure to identify whether a service defined in serviceName is invoked or a document is published. | |
| mode | String. Possible values are:
|
|
| local | Boolean. Enables publishing the document locally. | |
| waitTime | String. Time in millisecond to wait for the response in an synchronous listener notification. | |
| jmsSettings | IData. Structure specifying the JMS settings. | |
| isJMSConfigured | Boolean. Specifies whether the document is published to a JMS provider. | |
| ConnectionAliasName | String. Required. Connection name of the JMS provider.
This field is relevant if the value of
isJMSConfigured is
true.
|
|
| DestinationName |
String. Required. Name of the destination where the
document is published. This field is relevant if the value of
isJMSConfigured is
true.
|
|
| DestinationType |
String. Required. Type of destination where the
document is published. Possible values are:
true.
|
|
| requestRecordDef |
IData. Required. Specifies the definition of the
request document sent to
serviceName. This parameter
must not be
null, but may be empty. This property
contains the following fields:
|
|
| fieldNames | String[]. Names of the fields used in the listener notification's request document. | |
| fieldTypes | String[]. Data types of the fields used in the listener notification's request document. | |
| replyRecordDef |
IData. Required. Specifies the definition of the reply
document received from
serviceName. This parameter
must not be
null, but may be empty.
|
|
| fieldNames | String[]. Names of the fields used in the listener notification's reply document. | |
| fieldTypes | String[]. Data types of the fields used in the listener notification's reply document. | |
| Properties applicable to asynchronous listener notifications only | ||
| publishableRecordDef | IData. Required. Specifies the definition of the runtime publishable output document. This property contains the following fields: | |
| fieldNames | String[]. Names of the fields used in the listener notification's output document. | |
| fieldTypes | String[]. Data types of the fields used in the listener notification's output document. | |
Output Parameters
None.
Polling Notification Services
These services are located in the WmART.wm.art.dev.notification package.
| Service | Description |
|---|---|
| wm.art.dev.notification:createPollingNotificationNode | Creates a new instance of a polling notification in the specified package and folder from the specified notification template and connection alias. |
| wm.art.dev.notification:deletePollingNotificationNode | Removes an instance of a specified polling notification. |
| wm.art.dev.notification:fetchPollingNotificationTemplateMetadata | Returns all metadata for a specified polling notification template, and returns any scheduling properties that are set for the notification. |
| wm.art.dev.notification:updatePollingNotificationNode | Alters the characteristics of an existing polling notification. |
wm.art.dev.notification:createPollingNotificationNode
This service creates a new instance of a polling notification in the specified package and folder from the specified notification template and connection alias, and initializes the new polling notification in a disabled state.
You must perform the following steps to populate the input pipeline:
- Use
fetchPollingNotificationTemplateMetadata
service to identify the supported polling notification template properties and
configure the input parameter
notificationSettings structure.
- Polling notification properties may or may not have
default values, depending on the specific adapter's implementation.
- Depending on the underlying data type of the property, it might not be possible to assign a default value to a property.
- You may use the default values or override them with values that conform to the underlying data types of the properties.
- The property values are not automatically set to their default values; you must explicitly set all the required properties.
- If you omit a property, then no attempt is made to locate and assign default values to the property.
- Polling notification properties may be optional or a
required property.
- A required property is identified when the
isRequired metadata attribute
is set to
true. - The absence of the isRequired attribute implies that the property is not required.
- If you fail to set a required property, the wm.art.dev.notification:createPollingNotificationNode service throws an exception.
- You may have properties that might be required, based on the current value of some other property.
- The number of properties to be
configured is adapter-dependent. At a minimum, set those properties whose
isRequired attribute is set to
true.
- A required property is identified when the
isRequired metadata attribute
is set to
- Polling notification properties may or may not have
default values, depending on the specific adapter's implementation.
- This service creates a publishable document node in a notificationNamePublishDocument folder where notificationName is the value you specify for the notificationName input parameter. The name of publishable document is not configurable.
- When a polling notification is triggered,
Integration Server generates a
runtime publishable output document.
- The names and types of the data fields in the publishable output document is predefined.
- Specify the names and types of the data fields in the publishable output document in the service's publishableRecordDef input parameter in notificationSettings parameter.
- The fieldNamesand fieldTypes properties of publishableRecordDef are an array of String. A one-to-one correspondence exists between the elements in these two arrays.
- The values assigned to the fieldNames and fieldTypes properties of publishableRecordDef must correspond to fields that the notification class outputs in its runNotification method.
- The service execution may fail if an empty publishableRecordDef is specified.
- A newly created polling notification is not assigned a delivery schedule. You must configure the polling notification's delivery schedule before enabling it. Provide a valid scheduleSettings input parameter in the call to createPollingNotificationNode or updatePollingNotificationNode service.
- You can activate the polling notification using the
pub.art.notification:enablePollingNotification
service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
The resource domains registered by the polling notification templates are set in the polling notification's properties according to the interdependencies between the resource domains. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
Input Parameters
| Name | Description | |
|---|---|---|
| notificationName |
String. Required. Name of the polling notification in
the format:
folder:node.
|
|
| packageName | String. Required. Package the polling notification is installed. | |
| connectionAlias |
String. Required. Name of the connection in the
format:
folder:node.
|
|
| notificationTemplate | String. Required. Fully qualified pathname of the polling notification template class. | |
| notificationSettings | IData. Required. Structure for passing the polling notification's property values. | |
| systemName | String. Required. Internal name of the property.
|
|
| scheduleSettings | IData. Required. Structure for specifying the scheduling properties. | |
| notificationInterval | Integer. Frequency to poll in seconds. | |
| notificationOverlap | Boolean. Specifies whether notifications can overlap. | |
| notificationImmediate | Boolean. Specifies whether to invoke the notification immediately. | |
| clusterProperties[k] | IData[]. A k-dimensioned array of cluster properties. | |
| systemName | String. Required. Internal property name | |
| parameterType | String. Required. Data type of the property | |
| publishableRecordDef | IData. Required. Structure for specifying the definition of the runtime publishable output document. | |
| fieldNames | String[]. Names of the fields used in the polling notification's output document. | |
| fieldTypes | String[]. Data types of the fields used in the polling notification's output document. | |
| jmsSettings | IData. Structure specifying the JMS setting. | |
| isJMSConfigured | Boolean. Specifies whether the document is published to a JMS provider. | |
| ConnectionAliasName | String. Required. Connection name of the JMS provider.
This field is relevant if the value of
isJMSConfigured is
true.
|
|
| DestinationName |
String. Required. Name of the destination where the
document is published. This field is relevant if the value of
isJMSConfigured is
true.
|
|
| DestinationType |
String. Required. Type of destination where the
document is published. Possible values are:
true.
|
|
Output Parameters
None.
Example
You must construct notificationSettings to create a polling notification node. The value of a property's systemName is the internal name of the property. When constructing the notificationSettings input parameter, you must use this internal name as the key for setting a property's value. For example, if a polling notification template defines a property named sqlCommand, then its systemName as returned by fetchPollingNotificationTemplateMetadata service is sqlCommand. If the caller is a Java application, it might then use this information to set this property's value as follows:
IData pipeline = IDataFactory.create();
IDataCursor pipeCursor = pipeline.getCursor();
.
.
.
IData ntfySettings = IDataFactory.create();
IDataCursor ntfyCursor = ntfySettings.getCursor();
ntfyCursor.insertAfter("sqlCommand", "SELECT * FROM fooTable");
.
.
.
pipeCursor.insertAfter("notificationSettings", ntfySettings);
.
.
.
In this example, the sqlCommand property takes a java.lang.String value.
wm.art.dev.notification:deletePollingNotificationNode
This service deletes the specified polling notification node. You must disable the notification before deleting it, using the disablePollingNotificationNode service. For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
- You must disable the polling notification node before you
delete it, using the
pub.art.notification:disablePollingNotificationNode
service.
For more information, see the IBM webMethods Integration Server Built-In Services Reference for your release.
- The delete action is immediate and non-reversible, and returns no output data.
- Set the cascadeDelete flag to propagate the deletion across Broker.
- You may assume that the service completed successfully if it does not throw a checked exception.
This action is immediate and non-reversible, and returns no output data. You may assume that the service completed successfully if it does not throw a checked exception.
Input Parameters
| Name | Description |
|---|---|
| notificationName |
String. Required. Name of the polling notification in
the format:
folder:node.
|
| cascadeDelete |
Boolean.
Boolean. Possible values are:
|
Output Parameters
None.
wm.art.dev.notification:fetchPollingNotificationTemplateMetadata
This service fetches all metadata supported by the polling notification template, and the scheduling properties for a specified connection alias and the polling notification template class path.
This service takes a valid connection alias and polling notification template class path, and returns an array of templateProperties and an array of scheduleProperties structure. Each polling notification template properties (templateProperties structure) includes systemName, parameterType, defaultValue, and isRequired attributes, which you can use to configure a new polling notification instance.
Input Parameters
| Name | Description |
|---|---|
| connectionAlias |
String. Required. Namespace name of an existing
connection in the format:
folder:node.
|
| notificationTemplate | String. Required. Fully qualified pathname of the polling notification template class. |
Output Parameters
| Name | Description | |
|---|---|---|
| description | String. Required. Polling notification template description. Same as the value returned by WmDescriptor.getDisplayName method. | |
| displayName | String. Required. Polling notification template name displayed. Same as the value returned by WmDescriptor.getDescription method. | |
| templateURL | String. Required. URL of the online help page for the polling notification. | |
| indexMaps[i] | IData[]. Required. An i-dimensioned array of field maps. | |
| mapName | String. Field map name. | |
| isVariable | Boolean. Specifies whether the field map is variable length. | |
| disableAppendAll | Boolean. Disables all the buttons used for appending the rows for a field map in the Adapter Service Editor. | |
| templateProperties[n] | IData. Required. An n-dimensioned array of properties. | |
| systemName | String Required. Internal property name. | |
| displayName | String Required. External property name displayed. | |
| description | String Required. Description of the property. | |
| parameterType |
String Required. Data type of property.
|
|
| groupURL | String. URL of the group's help page. | |
| groupName | String. Name of the group to which the property belongs. | |
| tupleName | String. Name of the tuple to which the property belongs. | |
| treeName | String. Name of the tree to which the property belongs. | |
| treeDelimiter | String. Delimiter character used in the tree. | |
| resourceDomain | String. Resource domain name to which the property belongs. | |
| treeView | String. Property name for which values are displayed in the tree structure for selection. | |
| defaultValue | String. Default value of the property. | |
| isRequired | Boolean. Specifies whether the property is required. | |
| isHidden | Boolean. Specifies whether the property is displayable. | |
| isReadOnly | Boolean. Specifies whether the property can be modified. | |
| isFill | Boolean. Specifies whether the editors should pre-fill the property. | |
| isPassword | Boolean. Specifies whether the property is a password. | |
| isMultiline | Boolean. Specifies whether the property traverses multiple lines. | |
| isKey | Boolean. Specifies whether the property is a key field. | |
| minSeqLength | String. Lower bound of the sequence. | |
| maxSeqLength | String. Upper bound of the sequence. | |
| minStringLength | String. Minimum string length. | |
| maxStringLength | String. Maximum string length. | |
| useParam | String. Specifies whether the property is available for use. | |
| scheduleProperties[j] | IData[]. A j-dimensioned array of scheduling properties. | |
| systemName | String. Required. Internal property name | |
| parameterType | String. Required. Data type of the property | |
| clusterProperties[k] | IData[]. A k-dimensioned array of cluster properties. | |
| systemName | String. Required. Internal property name | |
| parameterType | String. Required. Data type of the property | |
wm.art.dev.notification:updatePollingNotificationNode
This service updates the values of an existing polling notification. You must perform the following:
- You must disable the polling notification before updating its properties, using the pub.art.notification:disablePollingNotification service.
- You can modify the following items:
- Underlying connection resource used by the notification
- Metadata property values
- Schedule
- Signature of its publishable output document
You must perform the following steps to populate the input pipeline:
- Use wm.art.dev.notification:fetchPollingNotificationTemplateMetadata service to identify the supported service template properties and configure the connectionAlias, notificationSettings, scheduleSettings, and publishableRecordDef input parameter.
- Configure the connectionAlias, notificationSettings, scheduleSettings input parameters.
- Set only those properties that you want to change in
connectionAlias,
notificationSettings,
scheduleSettings input parameters.
This service attempts to overlay these new values on the polling notification's current property values. The resulting set of merged property values are used to reconfigure the polling notification. For instance, change the connection resource that the polling notification uses by providing a new connectionAlias input parameter. If you omit this parameter, the polling notification continues to use the current connection resource. If you are changing only the connection resource, it is not necessary to provide the notificationSettings,scheduleSettings, or publishableRecordDef input parameters.
- If you are providing explicit property values in notificationSettings parameter, then the values must conform to the underlying data types of those properties.
- Configuring the
publishableRecordDef.
- The publishableRecordDef input parameter must be replaced in its entirety. The service does not attempt to merge the values into the current publishable record definition. .
- The fieldNames and fieldTypes properties of publishableRecordDef are an array of String. A one-to-one correspondence exists between the elements in these two arrays.
- The values assigned to the
fieldNames and
fieldTypes properties of
publishableRecordDef must
correspond to fields that the notification class and the invoked service use to
communicate with each other.
Note: This service cannot verify this assertion. If you configure either record definition incorrectly, the consequence may not manifest until runtime.
- The value of the systemName metadata attribute is the internal name of a property. Use this internal name as the key for setting a property's value when constructing the input parameter notificationSettings.
- Update the property depending on the data type.
- If a property's data type is non-primitive (derived from
java.lang.Object), you may clear a
property's current value by setting its value to
null. - If a property's data type is Java primitive, then the property value cannot be cleared; however the property can be updated.
- If a property's data type is non-primitive (derived from
java.lang.Object), you may clear a
property's current value by setting its value to
The resource domains registered by the polling notification templates are set in the polling notification's properties according to the interdependencies between the resource domains. Knowledge of these interdependencies is adapter-specific, and beyond the scope of this service. This service does not interpret resource domains.
Input Parameters
| Name | Description | |
|---|---|---|
| notificationName |
String. Required. Namespace name of the existing
polling notification in the format:
folder:node.
|
|
| connectionAlias |
String. Required. Namespace name of the connection in
the format:
folder:node.
|
|
| notificationSettings | IData. Required. Structure for passing the polling notification's property values. | |
| systemName | String. Required. Internal property name.
|
|
| scheduleSettings | IData. Required. Specifies the scheduling properties. | |
| notificationInterval | Integer. Frequency to poll in seconds. | |
| notificationOverlap | Boolean. Specifies whether notifications can overlap. | |
| notificationImmediate | Boolean. Specifies whether to invoke the notification immediately. | |
| clusterProperties[k] | IData[]. A k-dimensioned array of cluster properties. | |
| systemName | String. Required. Internal property name | |
| parameterType | String. Required. Data type of the property | |
| publishableRecordDef | IData. Required. Specifies the definition of the runtime publishable output document. | |
| fieldNames | String[]. Names of the fields used in the polling notification's output document. | |
| fieldTypes | String[]. Data types of the fields used in the polling
notification's output document.
|
|
Output Parameters
None.