Connector Exception 2: Identifier with Format modelNumber | serialNumber on a Thing
The eMessage Connector cannot find an asset if an identifier has been set on its corresponding Thing in ThingWorx. The Connector rejects any message from the ThingWorx Platform if an identifier set — even if the identifier is set to the model number and serial number that the Connector uses to find the asset. The symptoms of this issue follow:
The lastConnected property for the Thing is not updating. Refer to Observation 1: eMessage Connector does not show up on the Monitoring > Connection Servers page.
An asset that had been communicating for a long time no longer appears to be communicating with ThingWorx Platform. Refer to Observation 2: The lastConnection property of the Thing does not update.
Here is a scenario that will result in this exception:
1. The File Transfer Subsystem is restarted to clear out any active transfer jobs.
2. The user sets the identifier property on a Thing to the model name and serial number of the asset.
3. The user restarts the Connector.
4. The agent is restarted and sends up a file upload message and several data item messages.
In this scenario, the Connector does not process any egress messages from the ThingWorx Platform. In addition, the Connector does not tell the agent to upload the file. The data item messages are processed. The log messages include the following lines:
protocol.emessage.EmessageCodec -
Unable to build egress response since device cannot be found:
egressEntityName=Weather1 target=registration
characteristic=Services functionType=INVOKE
... [NettyClient-NIO-3] ERROR ... WebSocket error: Unexpected
egress message for entity: entityName=Weather1, closing connection!
java.lang.IllegalArgumentException: Unexpected egress message for entity:
entityName=Weather1
...
[Thread-10] ERROR c.t.p.e.converters.EgressConverter -
Timeout waiting for 1 expected egress messages to arrive
for ThingName=*WeatherModel||Weather1
Was this helpful?