Troubleshooting IoT CygNet Link EIE Transactions
The IoT CygNet Link EIE provides some helpful keys which may be useful when troubleshooting transactions, for example, when you need to determine that the right transaction is returned from the ForeSite Edge device.
Timestamps
When you poll a data group on the CygNet on the Edge device, that transaction is published back to the mirrored device on the CygNet Enterprise (IoT CygNet Link EIE) device. When the transaction is received by the CygNet Enterprise device, it is a replica of the transaction on the CygNet Edge site, so the timestamp is a true representation of what happened out at the Edge. See the code samples below for an example of this.
_originalHdr
Each data group transaction returned from the ForeSite Edge device contains a transaction header (txHdr), which contains information about the transaction saved in the DDS, and includes an identifier, timestamp, transaction type, etc. Also included in the returned transaction is an _originalHdr (original Header) parameter showing what came through from the Edge side, allowing you to match transactions on both sides of the data flow.
The following code example shows the txHdr sent from the CygNet Enterprise (IoT CygNet Link EIE):
|
<txHdr dbKey="0000000083B0000001C0000011" timestamp="3/5/2025 16:20:38.755" timestampUtc="2025-02-06 00:20:38.755" txType="G" txTypeTxt="Get" userId="WFT\user.name" statusCode="3" statusCodeTxt="Succeeded" statusMsg="Succeeded" ver="1.1" dataSize="999" hdrDataSize="300" idx="" appdef1="0" appdef2="0" appdef3="0" appdef4="0" quality="U" qualityTxt="Unknown" partialData="0" cmprsSize="530" blobCnt="1"/> |
The following code example shows the txHdr returned from the CygNet on Edge, with a matching timestamp:
|
<txHdr dbKey="0000000003B0000023C0000009" timestamp="3/5/2025 16:20:38.755" timestampUtc="2025-02-06 00:20:38.755" txType="G" txTypeTxt="Get" userId="NT AUTHORITY\SYSTEM" statusCode="3" statusCodeTxt="Succeeded" statusMsg="Succeeded" ver="1.1" dataSize="407" hdrDataSize="220" idx="" appdef1="0" appdef2="0" appdef3="0" appdef4="0" quality="U" qualityTxt="Unknown" partialData="0" cmprsSize="220" blobCnt="0"/> |
Note: The userId is the Weatherford Link user that send the command, which is installed as a system service, hence the SYSTEM user.
The following code example shows the original Hdr returned from the CygNet on Edge, and includes in the original IoT CygNet Link txHdr:
|
<_originalHdr><txHdr dbKey="0000000003B0000023C0000009" timestamp="3/5/2025 16:20:38.755" txType="G" txTypeTxt="Get" userId="NT AUTHORITY\SYSTEM" statusCode="3" statusCodeTxt="Succeeded" statusMsg="Succeeded" ver="1.1" dataSize="407" hdrDataSize="220" idx="" appdef1="0" appdef2="0" appdef3="0" appdef4="0" partialData="false" cmprsSize="220" blobCnt="0" device="WF_EPROD_WELLPILOT" facility="WF_EPROD_WELLPILOT" dgType="AnlgScan" ordinal="0" quality="U" qualityTxt="Unknown" timestampUtc="2025-02-06 00:20:38.755" /></_originalHdr> |
IoTTxId
The IoT CygNet Link EIE supports a mechanism inside the UIS command parameters to ensure that the transaction sent is the transaction for which Weatherford Link issued a command to the source remote EIE.
The UIS command parameters section <UISCMDPRMS> of the transaction contains a parameter IoTTxId (IoT Transaction Id), which is a unique internal identifier within the UIS command itself, so you can identify that the transaction subscribed to matches up with the transaction that was sent:
|
<UISCMDPRMS>DGORD=0;DGTYPE=AnlgScan;IoTTxId=20250206002037489;</UISCMDPRMS> |
When the transaction is received back by the CygNet Enterprise side, the IoTTxId value must match the IoTTxId value on the transaction on the CygNet on Edge side.
In the situation where you might have multiple transactions occurring on the CygNet Edge side (e.g., a recurring polling cycle), you can use the IoTTxId parameter to confirm you have received the expected transaction.

