# 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>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.itconductor.com/user-guide/diagnostics/gateway-communication-dump-debug-mode.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
