Administrator Guide : Troubleshooting and support : Troubleshooting a problem : Tracing communication between client and server
  
Tracing communication between client and server
solidDB® provides the following tools for observing the communication between an application and a database server:
Network trace facility
Use the network trace facility when you want to know why a connection is not established to the solidDB® server.
Ping facility
Use the ping facility to determine how fast packets are transferred between an application and the solidDB® server.
Network trace facility: Network tracing can be done on the solidDB® node, on the application node, or concurrently on both nodes. The trace information is written to the default trace file or the file specified with the Com.TraceFile parameter.
The default name of the output file is soltrace.out. This file is created in the current working directory of the server or client depending on which end the tracing is started.
The file contains information about:
loaded DLLs
network addresses
possible errors
You can turn on the network trace facility in the following ways:
Use the Com.Trace and Com.TraceFile parameters.
Defining the TraceFile configuration parameter automatically turns on the Network trace facility.
Use the environment variables SOLTRACE and SOLTRACEFILE.
The environment variable settings override the definitions in the solid.ini file. Defining the SOLTRACEFILE environment variable automatically turns on the Network trace facility.
Use the option -t and/or -ofilename as a part of the network name.
– Option -t turns on the Network trace facility.
– Option -o turns on the facility and defines the name of the trace output file.
Defining trace parameters in the client-side configuration file
[Com]
Trace ={Yes|No}
; default No
TraceFile = file_name
; default soltrace.out
For example:
[Com]
Connect = nmp soliddb
Listen = nmp soliddb
Trace = Yes
Defining environment variables
set SOLTRACE = Yes
or
set SOLTRACEFILE = trace.out
Using network name options
[Com]
Connect = nmp -t soliddb
Listen = nmp -t soliddb
or
[Com]
Connect = nmp -oclient.out soliddb
Listen = nmp -oserver.out soliddb
Network trace facility output
Following is an excerpt from a trace file:
Scanning listening keyword Listen from section Com. No listening information found from section Com. Generating default listening info.
Parsing address 'TCP/IP 1964'. Address information:
fullname : 'TCP/IP 1964'
lisname : '1964'
protocol : 'tcp' (TCP/IP)
enabled : Yes
ping :0
trace : No
Reading communication configuration from file D:\solid\solid.ini.
Parsing address 'TCP/IP 1964'. Address information:
fullname : 'TCP/IP 1964'
lisname : '1964'
protocol : 'tcp' (TCP/IP)
enabled : Yes
ping :0
trace : No
Initialising protocol 'tcp' (TCP/IP).
Searching DLL 'DTCW3237'.
DLL s:\soldll\DTCW3237.DLL loaded.
SOLID version 03.70.0026, DLL interface version 4.
Build information Tue Oct 25 00:18:07 2002.
Initialization of protocol 'tcp' succeeded.
Protocol TCP/IP using configuration : MaxPhysMsgLen: 8192 ReadBufSize: 2048 WriteBufSize: 2048 SelectThread: Yes Trace: Yes MinWritePoolBuffers: 4 MaxWritePoolBuffers: -1 WritePoolIncrement: 1
SyncRead: No SyncWrite: No
26.07 15:12:21 Initializing server. Listen info 'TCP/IP 1964'. Starting the listening of 'TCP/IP 1964'.
Ping facility: The solidDB® ping facility can be used to test the performance and functionality of the network connection. The ping facility is built into all solidDB® client applications and is turned on with the network name option -p level .
The output file is written to the current working directory of the computer where the parameter is given. The default name of the output file is soltrace.out.
Clients can always use the ping facility at level 1. Levels 2, 3, 4 or 5 can be used only if the server is set to use the ping facility at least at the same level.
Setting
Function
Description
0
No operation
Do nothing, default
1
Check that server is alive
Exchange one 100 byte message
2
Basic functional test
Exchange messages of sizes 0.1K, 1K, 2K..30K, increment 1K
3
Basic speed test
Exchange 100 messages of sizes 0.1K, 1K, 8K and display each sub-result and total time
4
Heavy speed test
Exchange 100 messages of sizes 0.1K, 1K, 2K, 4K, 8K, 16K and display each sub-result and total time
5
Heavy functional test
Exchange messages of sizes 1..30K, increment 1 byte
Note If the solidDB® client does not have an existing server connection, you can use the SQLConnect() function with the connect string option -p1 (ping test, level 1) to check if solidDB® is listening in a certain address. Without logging in to solidDB®, SQLConnect() can then check the network layer and ensure solidDB® is listening. When used in this manner, SQLConnect() generates error code 21507, which means the server is alive.
Running ping facility at level 1
Turn on the ping facility by using the following network name syntax:
protocol_name -p level server_name
For example, to run the ping facility with solidDB® SQL Editor (solsql), use the following command:
solsql "tcp -p1 -oping.out 1964"
The above command runs the ping facility at the level 1 and outputs the results into soltrace.out. The ping facility checks if the server is alive and exchanges one 100 byte message to the server.
After the ping facility has been run, the client exits with the following message:
SOLID Communication return code xxx: Ping test successful/failed, results are in file FFF.XX
Com.Listen parameter and restrictions on the ping facility
The server-side ping level that is set with the Com.Listen parameter restricts the available ping levels on the client side. Clients can always use the ping facility at level 1 (0 is no operation/default). Levels 2, 3, 4 or 5 can be used only if the server is set to use the ping facility at least at the same level.
Note Ping clients running at level greater than 3 may cause heavy network traffic and may slow down any application that is using the network, including any SQL clients connected to the same solidDB®.
See also
Troubleshooting a problem