Skip to main content
Kofax

Troubleshooting RoboServer start problems

Article # 3046724 - Page views: 129

Issue

RoboServer doesn't start; how to troubleshoot and find the cause?

Solution

  1. Establish RoboServer status after being started: did it throw an error, become unresponsive, exit the process, what exactly was being observed.
  2. What is the command that started RoboServer?
  3. What is the console output of the RoboServer? If RoboServer is running as a Windows service, this output can be found in Event Viewer (note: there are multiple events, one for each line of output)
  4. Was the RoboServer already in a Management Console cluster before it was started?
    • if yes, remove the listing of the RoboServer and try again see if the RoboServer is added into the cluster pool -- (this will show that RoboServer can connect and authenticate to Management Console over http(s))
  5. If the RoboServer is added to the Management Console cluster pool, is the RoboServer showing as online in the Management Console RoboServer list?
    • if yes, it works and you are done
    • if no, is the RoboServer IP in the cluster listing as expected?
    • if no: We auto detect the RoboServer IP but the server can have multiple and we might get the wrong one. To force the "callback host" you can add the command line flag -externalHost <External IP / hostname> to the RoboServer start command, putting in the IP on which the RoboServer should be connected.
      Or, if using only RoboServer Setttings Application, add the IP on the General tab > External Host.
    • if yes: from the Management Console machine use a telnet client to connect to the IP and port of RoboServer

Example: in this case we connect to a host named db_host on port 50000

Once the connection is established we can start typing random characters to prompt a response.

===========================================

Example 1: RoboServer responds - after a few seconds RoboServer will throw an error with the message "content not allowed in prologue"; this is good as this shows the Management Console can connect to the RoboServer and that the RoboServer can respond.

===========================================

$ telnet db_host 50000

Trying 127.0.0.1...

Connected to db_host.

Escape character is '^]'.

faskdlf

dsaflksdf

ldskf

klfa

<?xml veRoboServerion="1.0" encoding="UTF-8"?>

<!DOCTYPE rql PUBLIC "-//Kapow Technologies//DTD RoboSuite Robot Query Language 1.16//EN" "http://www.kapowtech.com/robosuite/r...guage_1_16.dtd">

<rql>

<server-error>

<message>com.kapowtech.robosuite.api.java.rql.io.RQLMessageFormatException: org.xml.sax.SAXPaRoboServereException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.</message>

<time>2022-02-15 14:48:04.753</time>

</server-error>

</rql>Connection closed by foreign host.

 

===========================================

Example 2: nothing is at this host and port

===========================================

$ telnet db_host 50000

Trying 127.0.0.1...

telnet: Unable to connect to remote host: Connection refused

===========================================

if the connection is refused its might be that the RoboServer is not listening on the port (e.g. RoboServer listening on another port; RoboServer not on this host)

if the connection just hangs it might be a firewall that loses what it's being sent.

 

If the RoboServer can connect to Management Console adding the listing and the Management Console machine can make a socket connection to the RoboServer then the next is what they are talking about. Add the --verbose to the RoboServer startup command, and make sure you capture what goes to system out such that any RoboServer communication will be logged.

 

below is an example of the first 20 sec of communication.

===========================================

Kofax RPA RoboServer 11.3.0.0 build on dev computer

(C) 1999-2022 Kofax.

 

RoboServer detected the following plugins:

Common Plugin 11.3.0.0 (compatible)

 

Starting RoboServer...

Starting RQL service 'Socket-based RQL Service. Port: 50000'...

Started RQL service 'Socket-based RQL Service. Port: 50000'.

RoboServer started.

RoboServer announced to the Production cluster. Awaiting activation.

Client (/10.149.1.180:44574) connected to RQL service 'Socket-based RQL Service. Port: 50000'.

Client (/10.149.1.180:44574) connected to RQL service 'Socket-based RQL Service. Port: 50000'.

PingRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

PingRQLResponse(_roboSuiteVeRoboServerion=11.3.0.0 build on dev computer, _ipAddress=10.149.1.180, _status=AWAITING_ACTIVATION, _maxConcurrentRobots=0, _maxQueueSize=20, _serverInstanceId=c0c48437-da08-4d22-a9d9-1cd47f2cb625, _memoryUsageAboveThreshold=false, _disAllowDocumentationRequsts=false, _settingsId=null, _kcuPoints=0, _portId=50000, _executionIds=[], _runningExecutionIds=[], _queuedExecutionIds=[], _licenseType=Not Activated, _uptime=15200, _commandLine=-service socket:50000 -Management ConsoleUrl http://admin:********@localhost:8080...agementConsole -verbose -cluster Production, _maxJVMMemory=1073741824, _cpuCount=12)

RoboServerActivationRequest(ipAddress=127.0.1.1, hostName=jens-kapow, kcuPoints=null, settingsId=86ea7d886766991fefa30bde72f1ba31)

PingRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

Could not connect to log database. This is not fatal and RoboServer is able to run robots. For details check application log found in log4j logs.

RoboServer successfully activated.

PingRQLResponse(_roboSuiteVeRoboServerion=11.3.0.0 build on dev computer, _ipAddress=10.149.1.180, _status=AWAITING_ACTIVATION, _maxConcurrentRobots=0, _maxQueueSize=20, _serverInstanceId=c0c48437-da08-4d22-a9d9-1cd47f2cb625, _memoryUsageAboveThreshold=false, _disAllowDocumentationRequsts=false, _settingsId=86ea7d886766991fefa30bde72f1ba31, _kcuPoints=0, _portId=50000, _executionIds=[], _runningExecutionIds=[], _queuedExecutionIds=[], _licenseType=Not Activated, _uptime=16148, _commandLine=-service socket:50000 -Management ConsoleUrl http://admin:********@localhost:8080...agementConsole -verbose -cluster Production, _maxJVMMemory=1073741824, _cpuCount=12)

StatusRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

kapow.robot.rqlserver.rql.StatusRQLResponse@7578796d

PingRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

RoboServerActivationRQLResponse(_external=RoboServerActivationResponse{_robosuiteVeRoboServerion='11.3.0.0 build on dev computer', _ipAddress='10.149.1.180', _status=0, _maxConcurrentRobots=20, _maxQueueSize=50, _serverInstanceId='c0c48437-da08-4d22-a9d9-1cd47f2cb625', _runningExecutionIds=[], _queuedExecutionIds=[], _licenseType='Production', _assignedKCU=100.0, _multipleActivations=false, uptime=16918, commandLine='-service socket:50000 -Management ConsoleUrl http://admin:********@localhost:8080...agementConsole -verbose -cluster Production', maxJvmMemory=1073741824, cpuCount=12, aboveMemoryThresholdMillis=0, currentlyAboveThreshold=false, tempProfilingEnabled=false, settingsId=86ea7d886766991fefa30bde72f1ba31, portId=50000, _serverName=})

PingRQLResponse(_roboSuiteVeRoboServerion=11.3.0.0 build on dev computer, _ipAddress=10.149.1.180, _status=RUNNING, _maxConcurrentRobots=20, _maxQueueSize=50, _serverInstanceId=c0c48437-da08-4d22-a9d9-1cd47f2cb625, _memoryUsageAboveThreshold=false, _disAllowDocumentationRequsts=false, _settingsId=86ea7d886766991fefa30bde72f1ba31, _kcuPoints=null, _portId=50000, _executionIds=[], _runningExecutionIds=[], _queuedExecutionIds=[], _licenseType=Production, _uptime=17149, _commandLine=-service socket:50000 -Management ConsoleUrl http://admin:********@localhost:8080...agementConsole -verbose -cluster Production, _maxJVMMemory=1073741824, _cpuCount=12)

StatusRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

kapow.robot.rqlserver.rql.StatusRQLResponse@7579b28d

StatisticsRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

ExecutionStatisticsResponse(_snapshots=[com.kapowtech.robosuite.api.java.rql.construct.statistics.ExecutionStatistics@d3e8691a], _tempSnapShot=com.kapowtech.robosuite.api.java.rql.construct.statistics.ExecutionStatistics@d437618e, _queuedRobots=[com.kapowtech.robosuite.api.java.rql.construct.statistics.MinMax@b1e7f1b], _executingRobots=[com.kapowtech.robosuite.api.java.rql.construct.statistics.MinMax@b1e7f1b], _clipSessions=[], _memoryUsage=[com.kapowtech.robosuite.api.java.rql.construct.statistics.MinMax@b1e7f1b], _cpuUsage=[], _kcuUsage=[], _waitTime=[], _tempQueuedRobots=DataPoint{value=0, time=1644933735173}, _tempExecutingRobots=DataPoint{value=0, time=1644933735173}, _tempClipSessions=DataPoint{value=0, time=0}, _tempMemoryUsage=DataPoint{value=49913, time=1644933735173}, _tempCpuUsage=DataPoint{value=0, time=1644933735173}, _tempKpuUsage=DataPoint{value=0, time=1644933735173}, _tempWaitTime=DataPoint{value=0, time=1644933735173})

PingRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

PingRQLResponse(_roboSuiteVeRoboServerion=11.3.0.0 build on dev computer, _ipAddress=10.149.1.180, _status=RUNNING, _maxConcurrentRobots=20, _maxQueueSize=50, _serverInstanceId=c0c48437-da08-4d22-a9d9-1cd47f2cb625, _memoryUsageAboveThreshold=false, _disAllowDocumentationRequsts=false, _settingsId=86ea7d886766991fefa30bde72f1ba31, _kcuPoints=null, _portId=50000, _executionIds=[], _runningExecutionIds=[], _queuedExecutionIds=[], _licenseType=Production, _uptime=18143, _commandLine=-service socket:50000 -Management ConsoleUrl http://admin:********@localhost:8080...agementConsole -verbose -cluster Production, _maxJVMMemory=1073741824, _cpuCount=12)

StatusRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

kapow.robot.rqlserver.rql.StatusRQLResponse@757a6d59

PingRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

PingRQLResponse(_roboSuiteVeRoboServerion=11.3.0.0 build on dev computer, _ipAddress=10.149.1.180, _status=RUNNING, _maxConcurrentRobots=20, _maxQueueSize=50, _serverInstanceId=c0c48437-da08-4d22-a9d9-1cd47f2cb625, _memoryUsageAboveThreshold=false, _disAllowDocumentationRequsts=false, _settingsId=86ea7d886766991fefa30bde72f1ba31, _kcuPoints=null, _portId=50000, _executionIds=[], _runningExecutionIds=[], _queuedExecutionIds=[], _licenseType=Production, _uptime=19150, _commandLine=-service socket:50000 -Management ConsoleUrl http://admin:********@localhost:8080...agementConsole -verbose -cluster Production, _maxJVMMemory=1073741824, _cpuCount=12)

StatusRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

kapow.robot.rqlserver.rql.StatusRQLResponse@757b61cd

PingRequest(ipAddress=127.0.1.1, hostName=jens-kapow)

===========================================

Please note the above messages:

  • RoboServer announced to the Production cluster. Awaiting activation.

    This message is going from the RoboServer to the Management Console. Seeing this means that the RoboServer was able to send a message to the Management Console that it has in its settings (Note: this doesn't mean the message is delivered successfully. The MC url might be wrong, the credentials might be wrong which would impact the outcome)
  • RoboServer successfully activated.

    This message means that the Management Console has received the message from the RoboServer and has "activated" it (i.e. given it a license).

These two messages together signal the RoboServer - Management Console connection works fine.

There might be other errors that don't impact this connection (e.g. Could not connect to log database)

Please see the related Knowledgebase article about RoboServer errors: https://knowledge.kofax.com/Robotic_Process_Automation/Troubleshooting/Most_frequent_errors_from_RoboServer

 

 

Level of Complexity 

 Moderate

 

Applies to  

Product Version Build Environment Hardware
RPA All      

References

Add any references to other internal or external articles

https://knowledge.kofax.com/Robotic_...rom_RoboServer

 

Article # 3046724