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:

  1. 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.
    • 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.
  2. 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.
  3. 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
  • maximumPoolSize
  • poolIncrementSize
  • blockingTimeout
  • expireTimeout
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:
  • poolable
  • minimumPoolSize
  • maximumPoolSize
  • poolIncrementSize
  • blockingTimeout
  • expireTimeout
displayName String. Required. External property name displayed.
description String. Required. Description of the property.
parameterType String. Required. Data type of the property.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are not supported.
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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are not supported.
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:

  1. Use wm.art.dev.connection:fetchConnectionManagerMetadata service to identify the supported connection manager properties and configure the connectionManagerSettings input parameter.
  2. Use wm.art.dev.connection:fetchConnectionMetadata service to identify the connection-specific properties and configure the connectionSettings input parameter.
  3. 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.

  4. 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
  • maximumPoolSize
  • poolIncrementSize
  • blockingTimeout
  • expireTimeout
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:

  1. 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.

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:
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are supported.
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:
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are supported.
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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are not supported.
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:

  1. 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.
  2. 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.

  3. 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.
  4. If you are providing explicit property values in the adapterServiceSettings parameter, then the values must conform to the underlying data types of those properties.
  5. 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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are supported.
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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are supported.
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.

Note: A listener can be used by multiple listener notifications, but a listener notification will have only one listener node.
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:

  1. 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.
  2. 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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are not supported.
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:

  1. 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.
  2. 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.
  3. 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.
  4. If you are providing explicit property values in listenerSettings parameter, then the values must conform to the underlying data types of those properties.
  5. 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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are not supported.
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.

Note: A listener can be used by multiple listener notifications, but a listener notification has only one listener node.
Input Parameters
Name Description
listenerNodeName String. Specifies the name of the WmART-based listener for which the notifications must be updated.
  • Specify the listener node name to update a specific listener.
  • Specify * to update all the WmART-based listeners .
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.

Note: A listener can be used by multiple listener notifications, but a listener notification will have only one listener node.
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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Note:
  1. This service does not validate that the fields in the publishable document are actually generated by the notification.
  2. 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.

Note:
  1. Synchronous listener notification classes must extend the WmSyncListenerNotification class.
  2. 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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays of all the above data types are also supported.
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:
  • publishAndWait. Publish the document and wait for the response.
  • invokeService. Invoke the service defined in serviceName parameter.
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:
  • Queue
  • Topic
This field is relevant if the value of isJMSConfigured is 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:
  • true. Propagates the deletion across the Broker.
  • false. Default.
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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are not supported.
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:

  1. 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.
  2. 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.

  3. If you are providing explicit property values in notificationSettings parameter, then the values must conform to the underlying data types of those properties.
  4. 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.
  5. A synchronous listener notification contains three additional input parameters:
    1. 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.
    2. 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.
  6. An asynchronous listener notification use the following input parameters:
    1. 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.
  7. 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.
  8. The two listenerNode and notificationSettings input parameters apply to both synchronous and asynchronous listener notifications.
Note:
  1. You cannot convert a synchronous notification to an asynchronous notification.
  2. 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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays of all the above data types are also supported.
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:
  • publishAndWait. Publish the document and wait for the response.
  • invokeService. Invoke the service defined in serviceName parameter.
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:
  • Queue
  • Topic
This field is relevant if the value of isJMSConfigured is 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Note: This service does not validate that the fields in the publishable document are actually generated by the notification.

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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays of all the above data types are also supported.
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:
  • Queue
  • Topic
This field is relevant if the value of isJMSConfigured is 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:
  • true. Propagates the deletion across the Broker.
  • false. Default.
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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays are not supported.
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:

  1. Use wm.art.dev.notification:fetchPollingNotificationTemplateMetadata service to identify the supported service template properties and configure the connectionAlias, notificationSettings, scheduleSettings, and publishableRecordDef input parameter.
  2. Configure the connectionAlias, notificationSettings, scheduleSettings input parameters.
  3. 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.

  4. If you are providing explicit property values in notificationSettings parameter, then the values must conform to the underlying data types of those properties.
  5. 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.
  6. 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.
  7. 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.

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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays of all the above data types are also supported.
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.
  • The following Java data types are supported for connections: char, short, int, long, float, double, boolean, java.lang.String, java.lang.Character, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean.
  • Arrays of all the above data types are also supported.
Output Parameters

None.