# Gateway Communication Dump Debug Mode

IT-Conductor provides a facility to dump all communication with the cloud servers into local files.

### Capturing The Data <a href="#gatewaycommunicationdumpdebugmode-capturingthedata" id="gatewaycommunicationdumpdebugmode-capturingthedata"></a>

To turn on the communication debug mode, please perform the following:

1\. Open an SSH or RDP session to the machine where the Gateway is installed.

2\. On Windows: Start a "notepad.exe" as administrator. Open Gateway config file, default at C:\Program Files\IT-Conductor\Agent\conf\AGENT.XML.

On Linux: vi \<install directory>/cont/AGENT.XML

3\. In the file, add/replace the following entries:

```
<entry key="itconductor.debug.level">4</entry>
<entry key="itconductor.output.directory">#dump directory#</entry>
```

"#dump directory#" specifies the directory/folder in the OS format.

* **Windows:** Z:\ITC-Logs
* **Linux:** /mnt/storage/...

4\. Save the file.

5\. Set the debug level of the Gateway object in the IT-Conductor.&#x20;

{% hint style="info" %}
**Note:** Please request [support](https://docs.itconductor.com/references/support). We limit the end user's ability to do so due to performance/space overhead complications.
{% endhint %}

6\. Restart the Gateway.

From now on, all communication messages (soap envelopes) will be stored in the specified directory:

```
04/20/2017 11:14 AM <DIR> .
04/20/2017 11:14 AM <DIR> ..
04/20/2017 11:34 AM 1,348 soap-0-input.xml
04/20/2017 11:34 AM 4,228 soap-0-output.xml
04/20/2017 11:57 AM 8,970 soap-100-input.xml
04/20/2017 11:57 AM 4,228 soap-100-output.xml
04/20/2017 11:57 AM 1,324 soap-101-input.xml
04/20/2017 11:57 AM 4,228 soap-101-output.xml
04/20/2017 11:57 AM 8,970 soap-102-input.xml
04/20/2017 11:57 AM 4,228 soap-102-output.xml
04/20/2017 11:57 AM 1,324 soap-103-input.xml
04/20/2017 11:57 AM 4,228 soap-103-output.xml
04/20/2017 11:57 AM 8,970 soap-104-input.xml
04/20/2017 11:57 AM 4,228 soap-104-output.xml
04/20/2017 11:57 AM 1,324 soap-105-input.xml
04/20/2017 11:57 AM 4,228 soap-105-output.xml
04/20/2017 11:57 AM 8,970 soap-106-input.xml
04/20/2017 11:57 AM 4,228 soap-106-output.xml
04/20/2017 11:57 AM 1,324 soap-107-input.xml
04/20/2017 11:57 AM 4,228 soap-107-output.xml
04/20/2017 11:57 AM 8,970 soap-108-input.xml
04/20/2017 11:57 AM 4,228 soap-108-output.xml
04/20/2017 11:57 AM 1,324 soap-109-input.xml
04/20/2017 11:57 AM 4,228 soap-109-output.xml
...
```

* **soap-\<n>-input.xml** stores the SOAP sent to IT-Conductor cloud servers from the Gateway.
* **soap-\<n>-output.xml** stores the SOAP received as a reply from IT-Conductor cloud servers on the Gateway.
* **\<n>** represents the sequential number of interactions. There is no guaranteed sequence as most of the interactions are performed in parallel in different threads.

### Analyzing the Data <a href="#gatewaycommunicationdumpdebugmode-analyzingthedata" id="gatewaycommunicationdumpdebugmode-analyzingthedata"></a>

The communication data dump does not mean providing contextual data, so the file names are unrelated to a specific monitored application or interaction.

However, there are ways to analyze the flow for particular applications and data types.

All objects creation/updates are performed but two types of soap envelopes (containing):

For Create:

```
<wsa:Action env:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/09/transfer/Create> 
```

For Update:

```
<wsa:Action env:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/09/transfer/Put>
```

The following fragment defines the type of objects created (Classes):

```
<wsman:ResourceURI env:mustUnderstand="true">object/Instance</wsman:ResourceURI>
```

Where **Instance** is one of the classes created, typically, classes are prefixed with application names like "SAP," "Oracle," etc.&#x20;

{% hint style="info" %}
**Note:** For a full class hierarchy, please request [support](https://docs.itconductor.com/references/support). Only administrators have access to it in IT-Conductor. We will provide the information on a pre-request basis.
{% endhint %}

Here is an example of an Object Update Envelope:

```
<env:Envelope
        xmlns:env="http://www.w3.org/2003/05/soap-envelope"
        xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
        xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
        xmlns:wsarole="http://schemas.xmlsoap.org/ws/2004/08/addressing/role"
        xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration"
        xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"
        xmlns:wsmancat="http://schemas.xmlsoap.org/ws/2005/06/wsmancat"
        xmlns:wxf="http://schemas.xmlsoap.org/ws/2004/09/transfer"
        xmlns:xop="https://www.w3.org/2004/08/xop/include">
    <env:Header>
        <wsman:ResourceURI env:mustUnderstand="true">object/Instance</wsman:ResourceURI>
        <wsa:To env:mustUnderstand="true">https://cloud.itconductor.com/ws/management</wsa:To>
        <wsa:ReplyTo>
                <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
        </wsa:ReplyTo>

        <wsa:Action env:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/09/transfer/Put>
        <wsa:MessageID>uuid:9ce7d4fc-f3c6-40b7-8632-82cf5a0e06ca</wsa:MessageID>
        <wsman:OperationTimeout>P0Y0M0DT0H1M0.000S</wsman:OperationTimeout>
        <wsman:SelectorSet>
        <wsman:Selector Name="OBJECT_Id">xxxxxxxxxxxxxxxxxxx</wsman:Selector>
        </wsman:SelectorSet>
    </env:Header>
    <env:Body>
        <Instance>
                <AGENT.RestartPending><![CDATA[false]]></AGENT.RestartPending>
                <AGENT.StartTime><![CDATA[2017-04-20 17:13:54.383]]></AGENT.StartTime>
                <DAEMON.StartTime><![CDATA[2017-04-20 17:13:54.383]]></DAEMON.StartTime>
                <AGENT.Build><![CDATA[20170420023536]]></AGENT.Build>
                <AGENT.WrapperVersion />
                <AGENT.ProxyAddress><![CDATA[DIRECT]]></AGENT.ProxyAddress>
                <AGENT.JREVersion><![CDATA[1.8.0_45]]></AGENT.JREVersion>
                <AGENT.OS><![CDATA[Windows 8.1]]></AGENT.OS>
                <AGENT.Arch><![CDATA[amd64]]></AGENT.Arch>
                <AGENT.RemoteIP><![CDATA[xxx.xxx.xxx.xxx]]></AGENT.RemoteIP>
        </Instance>
    </env:Body>
</env:Envelope>
```
