Invalid Binary Header on Replication

From EHS Help
Revision as of 12:33, 12 October 2012 by Admin (Talk | contribs)

Jump to: navigation, search

This is a Technical (IT) Helpdesk topic


Problem

The Aquila Replication software (aqrepl.exe) is unable to connect to the WinCGI app server module located at https://nwww.mdsas.nhs.uk/ibid/cgi-bin/aquilaweb.exe/bin.

The error message returned is "Invalid binary header. Either incompatible or not a binary message". This error is generated from the client-side channel component in aqrepl.exe when it does not received the correct format of reply from the app server. It is always followed by the first 500 characters of the actual reply received.

In this case the full error message is:

Error copying replication data to http://10.195.1.71/ibid/cgi-bin/aquilaweb.exe/bin
Invalid binary header. Either incompatible or not a  binary message.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
.<html xmlns="http://www.w3.org/1999/xhtml">
.<head>
.<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
.<title>500 - Internal server error.</title>
.<style type="text/css">
.body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
.fieldset{padding:0 15px 10px 15px;} 
.h1{font-size:2.4em;margin:0;color:#FFF;}
.h2{f


(Notice the actual response received is an HTML document entitled 500 - Internal Server Error)

Analysis

Programming

This problem is symptomatic of using an incorrect URI to access the app server. We have seen it occur when the /bin path is omitted from the URI for instance. However the same app server component (AquilaWeb.exe) is in use in other locations (including http://ibid.mdsas.com/cgi-bin/aquilaweb.exe/bin) without this problem occurring. We have also added additional "debug" output to the aqrepl.exe module that confirms the URI to be correct. Moreover, the URI is actually provided by a command line parameter so when running ther app manually one can provide _any_ URI.

Server Configuration

The above "programming" section seems to indicate that the problem is not programming related, due to the fact that the same app server module is in use successfully in other places. However, there is contradictory evidence in that it is entirely possible to run the AquilaCRS (IBID) desktop application to connect to the app server at nww.mdsas.com. Moreover, the same datatable that is being accessed by the aqrepl program (ILOG_REPL) can be successfully opened and manipulated by the AquilaCRS.exe client program.

Remove SSL

Paul Kelly removed SSL from the equation by using the URI http://10.195.1.71/ibid/cgi-bin/aquilaweb.exe/bin. This did not alter the error message, it was still "Invalid Binary Header", but it did alter the header that was returned. Compare:

Error copying replication data to http://10.195.1.71/ibid/cgi-bin/aquilaweb.exe/bin - Invalid binary header. Either incompatible or not a binary message.
<?xml version="1.0" encoding="utf-8"?>
.<Library Name="AquilaLibrary" UID="{E7D1248E-8205-4255-A2EB-206555CE7403}" Version="3.0">
.<Services>
.<Service Name="DataAbstractService" UID="{709489E3-3AFE-4449-84C3-305C2862B348}" Abstract="1">
.<Interfaces>
.<Interface Name="Default" UID="{4C2EC238-4FB4-434E-8CFF-ED25EEFF1525}">
.<Documentation><![CDATA[   Service WinFormsDAServerService. This service has been automatically generated using the RODL template you can find in the Templates directory.]]><

Note that although the error message is the same, the header returned is an XML file containing the service description.